openmohaa/code/client/new/snd_main_new.cpp

621 lines
10 KiB
C++
Raw Permalink Normal View History

/*
===========================================================================
Copyright (C) 2023 the OpenMoHAA team
This file is part of OpenMoHAA source code.
OpenMoHAA source code is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
OpenMoHAA source code is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenMoHAA source code; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
===========================================================================
*/
2023-05-24 19:40:09 +02:00
#include "../snd_local.h"
#include "../client.h"
2023-05-24 19:40:09 +02:00
2024-08-21 18:35:06 +02:00
#if defined(NO_MODERN_DMA) && NO_MODERN_DMA
qboolean s_bSoundPaused = qfalse;
2023-05-24 21:45:26 +02:00
void S_Init2()
{
S_Init();
SND_setup();
2024-01-01 23:17:09 +01:00
// HACK: S_RegisterSound returns 0 when unsuccessful, or it returns the the sfx handle
// But the first sfx handle is also 0...
S_RegisterSound("sound/null.wav", qfalse);
Cmd_AddCommand("tmstart", S_TriggeredMusic_Start);
Cmd_AddCommand("tmstartloop", S_TriggeredMusic_StartLoop);
Cmd_AddCommand("tmstop", S_TriggeredMusic_Stop);
2023-05-24 21:45:26 +02:00
}
/*
=================
S_StartSound
=================
*/
void S_StartSound(const vec3_t origin, int entNum, int entChannel, sfxHandle_t sfxHandle, float volume, float minDist, float pitch, float maxDist, qboolean streamed)
{
S_StartSound((float*)origin, entNum, entChannel, sfxHandle);
// FIXME: partially implemented
}
/*
=================
S_AddLoopingSound
=================
*/
void S_AddLoopingSound(const vec3_t origin, const vec3_t velocity, sfxHandle_t sfxHandle, float volume, float minDist, float maxDist, float pitch, int flags)
{
if (!sfxHandle) {
return;
}
2023-05-24 21:45:26 +02:00
// FIXME: unimplemented
if (VectorCompare(origin, vec3_origin)) {
// Consider it to be a local sound, uses the player origin
S_AddLoopingSound(cl.snap.ps.clientNum, cl.snap.ps.origin, velocity, sfxHandle);
return;
}
2023-05-24 21:45:26 +02:00
S_AddLoopingSound(ENTITYNUM_WORLD, origin, velocity, sfxHandle);
}
/*
=================
S_StopAllSounds
=================
*/
void S_StopAllSounds2(qboolean stop_music)
2023-05-24 21:45:26 +02:00
{
// Call the original function
S_StopAllSounds();
// FIXME: stop music
}
/*
=================
S_ClearLoopingSounds
=================
*/
void S_ClearLoopingSounds(void)
{
S_ClearLoopingSounds(qtrue);
}
/*
=================
S_Respatialize
=================
*/
void S_Respatialize(int entityNum, const vec3_t origin,
vec3_t axis[3])
{
S_Respatialize(entityNum, origin, axis, 0);
}
2023-10-02 21:11:16 +02:00
2023-05-24 21:45:26 +02:00
/*
=================
2023-10-02 21:11:16 +02:00
S_StartLocalSoundChannel
2023-05-24 21:45:26 +02:00
=================
*/
void S_StartLocalSound(const char* sound_name, qboolean force_load)
{
2024-01-01 23:17:09 +01:00
sfxHandle_t h;
h = S_RegisterSound(sound_name, qfalse);
if (h) {
S_StartLocalSound(h, CHAN_LOCAL_SOUND);
}
2023-05-24 21:45:26 +02:00
}
2023-10-02 21:11:16 +02:00
/*
=================
S_StartLocalSound
=================
*/
void S_StartLocalSoundChannel(const char* sound_name, qboolean force_load, int channel)
{
// FIXME: unimplemented
}
2023-05-24 21:45:26 +02:00
sfxHandle_t S_RegisterSound(const char* sample, qboolean compressed, qboolean streamed) {
return S_RegisterSound(sample, compressed);
}
/*
=================
S_StopSound
=================
*/
void S_StopSound(int entnum, int channel)
{
// FIXME: unimplemented
}
2023-05-24 19:40:09 +02:00
/*
=================
S_IsSoundPlaying
=================
*/
qboolean S_IsSoundPlaying(int channelNumber, const char* name)
2023-05-24 19:40:09 +02:00
{
channel_t* v;
if (channelNumber >= MAX_CHANNELS) {
return qfalse;
}
v = &s_channels[channelNumber];
return v->thesfx ? qtrue : qfalse;
2023-05-24 19:40:09 +02:00
}
/*
=================
MUSIC_Pause
=================
*/
void MUSIC_Pause()
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_Unpause
=================
*/
void MUSIC_Unpause()
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_LoadSoundtrackFile
=================
*/
qboolean MUSIC_LoadSoundtrackFile(const char* filename)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
return qfalse;
}
/*
=================
MUSIC_SongValid
=================
*/
qboolean MUSIC_SongValid(const char* mood)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
return qfalse;
}
/*
=================
MUSIC_Loaded
=================
*/
qboolean MUSIC_Loaded(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
return qfalse;
}
/*
=================
Music_Update
=================
*/
void Music_Update(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_SongEnded
=================
*/
void MUSIC_SongEnded(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
S_StartSound
=================
*/
void MUSIC_NewSoundtrack(const char* name)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_UpdateMood
=================
*/
void MUSIC_UpdateMood(int current, int fallback)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
//STUB();
}
/*
=================
MUSIC_UpdateVolume
=================
*/
void MUSIC_UpdateVolume(float volume, float fade_time)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_StopAllSongs
=================
*/
void MUSIC_StopAllSongs(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_FreeAllSongs
=================
*/
void MUSIC_FreeAllSongs(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_Playing
=================
*/
qboolean MUSIC_Playing(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
return qfalse;
}
/*
=================
MUSIC_FindSong
=================
*/
int MUSIC_FindSong(const char* name)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
return 0;
}
/*
=================
MUSIC_CurrentSongChannel
=================
*/
int MUSIC_CurrentSongChannel(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
return 0;
}
/*
=================
MUSIC_StopChannel
=================
*/
void MUSIC_StopChannel(int channel_number)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_PlaySong
=================
*/
qboolean MUSIC_PlaySong(const char* alias)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
return qfalse;
}
/*
=================
MUSIC_UpdateMusicVolumes
=================
*/
void MUSIC_UpdateMusicVolumes(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
MUSIC_CheckForStoppedSongs
=================
*/
void MUSIC_CheckForStoppedSongs(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
2024-08-05 19:14:30 +02:00
/*
==============
S_CurrentSoundtrack
==============
*/
const char* S_CurrentSoundtrack()
{
return "";
}
2023-05-24 19:40:09 +02:00
/*
=================
S_IsSoundRegistered
=================
*/
qboolean S_IsSoundRegistered(const char* name)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
return qfalse;
}
/*
=================
S_GetSoundTime
=================
*/
float S_GetSoundTime(sfxHandle_t handle)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
return 0.0;
}
/*
=================
S_SetGlobalAmbientVolumeLevel
=================
*/
void S_SetGlobalAmbientVolumeLevel(float volume)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
S_SetReverb
=================
*/
void S_SetReverb(int reverb_type, float reverb_level)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
STUB();
}
/*
=================
S_EndRegistration
=================
*/
void S_EndRegistration(void)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
}
void S_UpdateEntity(int entityNum, const vec3_t origin, const vec3_t velocity, qboolean use_listener)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
2023-05-24 19:40:09 +02:00
}
void S_FadeSound(float fTime)
{
2023-07-21 20:30:11 +02:00
// FIXME: unimplemented
}
/*
==============
S_TriggeredMusic_Start
==============
*/
void S_TriggeredMusic_Start()
{
if (Cmd_Argc() != 2) {
Com_Printf("tmstart <sound file>\n");
return;
}
S_StartBackgroundTrack(Cmd_Argv(1), "");
}
/*
==============
S_TriggeredMusic_StartLoop
==============
*/
void S_TriggeredMusic_StartLoop()
{
if (Cmd_Argc() != 2) {
Com_Printf("tmstartloop <sound file>\n");
return;
}
S_StartBackgroundTrack(Cmd_Argv(1), Cmd_Argv(1));
}
/*
==============
S_TriggeredMusic_Stop
==============
*/
void S_TriggeredMusic_Stop()
{
S_StopBackgroundTrack();
}
/*
==============
S_TriggeredMusic_PlayIntroMusic
==============
*/
2023-07-21 20:30:11 +02:00
void S_TriggeredMusic_PlayIntroMusic() {
S_StartBackgroundTrack("sound/music/mus_MainTheme.mp3", "");
}
/*
==============
S_TriggeredMusic_SetupHandle
==============
*/
void S_TriggeredMusic_SetupHandle(const char* pszName, int iLoopCount, int iOffset, qboolean autostart) {
// FIXME: unimplemented
}
/*
==============
S_GetMusicFilename
==============
*/
const char* S_GetMusicFilename() {
// FIXME: unimplemented
return "";
}
/*
==============
S_GetMusicLoopCount
==============
*/
int S_GetMusicLoopCount() {
// FIXME: unimplemented
return 0;
}
/*
==============
S_GetMusicOffset
==============
*/
unsigned int S_GetMusicOffset() {
// FIXME: unimplemented
return 0;
}
/*
==============
callbackServer
==============
*/
void callbackServer(int entnum, int channel_number, const char* name) {
if (com_sv_running->integer) {
SV_SoundCallback(entnum, channel_number, name);
}
}
/*
==============
S_ChannelFree_Callback
==============
*/
void S_ChannelFree_Callback(channel_t* v) {
if (v->entnum & S_FLAG_DO_CALLBACK) {
callbackServer(v->entnum & ~S_FLAG_DO_CALLBACK, v - s_channels, v->thesfx->soundName);
}
2023-08-16 18:13:30 +02:00
}
/*
==============
S_LoadData
==============
*/
2023-08-16 18:13:30 +02:00
void S_LoadData(soundsystemsavegame_t* pSave) {
// FIXME: unimplemented
}
2023-09-05 20:17:51 +02:00
/*
==============
S_SaveData
==============
*/
2023-09-05 20:17:51 +02:00
void S_SaveData(soundsystemsavegame_t* pSave) {
// FIXME: unimplemented
}
/*
==============
S_ReLoad
==============
*/
void S_ReLoad(soundsystemsavegame_t* pSave) {
// FIXME: unimplemented
}
/*
==============
S_StopMovieAudio
==============
*/
void S_StopMovieAudio() {
}
/*
==============
S_CurrentMoviePosition
==============
*/
int S_CurrentMoviePosition() {
return 0;
}
/*
==============
S_SetupMovieAudio
==============
*/
void S_SetupMovieAudio(const char* pszMovieName) {
}
#endif