UFO: Alien Invasion
Loading...
Searching...
No Matches
s_music.cpp File Reference
Include dependency graph for s_music.cpp:

Go to the source code of this file.

Data Structures

struct  music_t

Macros

#define MUSIC_MAX_ENTRIES   64

Enumerations

enum  {
  MUSIC_MAIN , MUSIC_GEOSCAPE , MUSIC_BATTLESCAPE , MUSIC_AIRCOMBAT ,
  MUSIC_MAX
}

Functions

void M_ParseMusic (const char *name, const char **text)
 Parses music definitions for different situations.
void M_Stop (void)
static void M_Start (const char *file)
static void M_Play_f (void)
 Plays the music file given via commandline parameter.
static void M_RandomTrack_f (void)
 Sets the music cvar to a random track.
static bool M_PlayRandomByCategory (int category)
static void M_Change_f (void)
 Changes the music if it suits the current situation.
static int M_CompleteMusic (const char *partial, const char **match)
static void M_MusicStreamUpdate (void)
void M_Frame (void)
void M_Init (void)
void M_Shutdown (void)
static void M_MusicStreamCallback (musicStream_t *userdata, byte *stream, int length)
static void M_PlayMusicStream (musicStream_t *userdata)
void M_AddToSampleBuffer (musicStream_t *userdata, int rate, int samples, const byte *data)
 Add stereo samples with a 16 byte width to the stream buffer.
void M_StopMusicStream (musicStream_t *userdata)

Variables

static char * musicArrays [MUSIC_MAX][MUSIC_MAX_ENTRIES] = {{}, {}}
static int musicArrayLength [MUSIC_MAX] = {}
static music_t music = {{}, {}, nullptr, 0, nullptr, false, false, true}
static cvar_tsnd_music
static cvar_tsnd_music_volume
static cvar_tsnd_music_play
static const cmdList_t musicCmds []

Macro Definition Documentation

◆ MUSIC_MAX_ENTRIES

#define MUSIC_MAX_ENTRIES   64

Definition at line 61 of file s_music.cpp.

Referenced by M_ParseMusic().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MUSIC_MAIN 
MUSIC_GEOSCAPE 
MUSIC_BATTLESCAPE 
MUSIC_AIRCOMBAT 
MUSIC_MAX 

Definition at line 39 of file s_music.cpp.

Function Documentation

◆ M_AddToSampleBuffer()

void M_AddToSampleBuffer ( musicStream_t * userdata,
int rate,
int samples,
const byte * data )

Add stereo samples with a 16 byte width to the stream buffer.

Parameters
[in]samplesThe amount of stereo samples that should be added to the stream buffer (this is usually 1/4 of the size of the data buffer, one sample should have 4 bytes, 2 for each channel)
[in]dataThe stereo sample buffer
[in,out]userdataThe music stream
[in]rateThe sample rate

Definition at line 428 of file s_music.cpp.

References data, i, LittleShort, M_PlayMusicStream(), MAX_RAW_SAMPLES, s_env, musicStream_t::sampleBuf, musicStream_t::samplePos, and scale.

Referenced by CIN_OGM_LoadAudioFrame(), CIN_ROQ_DecodeSoundMono(), and CIN_ROQ_DecodeSoundStereo().

◆ M_Change_f()

void M_Change_f ( void )
static

Changes the music if it suits the current situation.

Todo
Make the music a scriptable list

Definition at line 256 of file s_music.cpp.

References CL_OnBattlescape(), Cmd_Argc(), Cmd_Argv(), Com_DPrintf(), Com_Printf(), DEBUG_SOUND, M_PlayRandomByCategory(), music, MUSIC_AIRCOMBAT, MUSIC_BATTLESCAPE, MUSIC_GEOSCAPE, MUSIC_MAIN, musicArrayLength, Q_streq, s_env, and type.

◆ M_CompleteMusic()

int M_CompleteMusic ( const char * partial,
const char ** match )
static

Definition at line 293 of file s_music.cpp.

References Cmd_GenericCompleteFunction(), Com_Printf(), and FS_NextFileFromFileList().

Referenced by M_Init().

◆ M_Frame()

◆ M_Init()

◆ M_MusicStreamCallback()

void M_MusicStreamCallback ( musicStream_t * userdata,
byte * stream,
int length )
static

◆ M_MusicStreamUpdate()

void M_MusicStreamUpdate ( void )
static

Definition at line 306 of file s_music.cpp.

References M_StopMusicStream(), and music.

Referenced by M_Frame().

◆ M_ParseMusic()

void M_ParseMusic ( const char * name,
const char ** text )

Parses music definitions for different situations.

Note
We have lists for geoscape, battlescape, main and aircombat

Definition at line 73 of file s_music.cpp.

References cl_genericPool, Com_Error(), Com_ParseList(), Com_Printf(), ERR_DROP, i, LIST_Delete(), Mem_PoolStrDup, MUSIC_AIRCOMBAT, MUSIC_BATTLESCAPE, MUSIC_GEOSCAPE, MUSIC_MAIN, MUSIC_MAX_ENTRIES, musicArrayLength, musicArrays, name, linkedList_t::next, and Q_streq.

Referenced by CL_ParseClientData().

◆ M_Play_f()

void M_Play_f ( void )
static

Plays the music file given via commandline parameter.

Definition at line 203 of file s_music.cpp.

References Cmd_Argc(), Cmd_Argv(), Cvar_GetString(), Cvar_Set(), and M_Start().

◆ M_PlayMusicStream()

void M_PlayMusicStream ( musicStream_t * userdata)
static

Definition at line 407 of file s_music.cpp.

References M_MusicStreamCallback(), M_Stop(), music, and musicStream_t::playing.

Referenced by M_AddToSampleBuffer().

◆ M_PlayRandomByCategory()

bool M_PlayRandomByCategory ( int category)
static

◆ M_RandomTrack_f()

void M_RandomTrack_f ( void )
static

Sets the music cvar to a random track.

Definition at line 214 of file s_music.cpp.

References Com_DPrintf(), Com_Printf(), Com_SkipPath(), Cvar_Set(), DEBUG_SOUND, FS_BuildFileList(), FS_NextFileFromFileList(), music, and s_env.

◆ M_Shutdown()

void M_Shutdown ( void )

Definition at line 369 of file s_music.cpp.

References Cmd_TableRemoveList(), M_Stop(), and musicCmds.

Referenced by S_Shutdown().

◆ M_Start()

void M_Start ( const char * file)
static

◆ M_Stop()

void M_Stop ( void )
See also
M_Start

Definition at line 114 of file s_music.cpp.

References FS_FreeFile(), and music.

Referenced by M_Frame(), M_PlayMusicStream(), M_Shutdown(), and M_Start().

◆ M_StopMusicStream()

void M_StopMusicStream ( musicStream_t * userdata)

Definition at line 462 of file s_music.cpp.

References music, and musicStream_t::playing.

Referenced by CIN_OGM_CloseCinematic(), CIN_ROQ_CloseCinematic(), and M_MusicStreamUpdate().

Variable Documentation

◆ music

◆ musicArrayLength

int musicArrayLength[MUSIC_MAX] = {}
static

Definition at line 63 of file s_music.cpp.

Referenced by M_Change_f(), M_ParseMusic(), and M_PlayRandomByCategory().

◆ musicArrays

char* musicArrays[MUSIC_MAX][MUSIC_MAX_ENTRIES] = {{}, {}}
static

Definition at line 62 of file s_music.cpp.

Referenced by M_ParseMusic(), and M_PlayRandomByCategory().

◆ musicCmds

const cmdList_t musicCmds[]
static
Initial value:
= {
{"music_play", M_Play_f, "Plays a music track."},
{"music_change", M_Change_f, "Changes the music theme (valid values:battlescape/geoscape/main/aircombat)."},
{"music_stop", M_Stop, "Stops currently playing music track."},
{"music_randomtrack", M_RandomTrack_f, "Plays a random music track."},
{nullptr, nullptr, nullptr}
}
static void M_RandomTrack_f(void)
Sets the music cvar to a random track.
Definition s_music.cpp:214
void M_Stop(void)
Definition s_music.cpp:114
static void M_Change_f(void)
Changes the music if it suits the current situation.
Definition s_music.cpp:256
static void M_Play_f(void)
Plays the music file given via commandline parameter.
Definition s_music.cpp:203

Definition at line 348 of file s_music.cpp.

Referenced by M_Init(), and M_Shutdown().

◆ snd_music

cvar_t* snd_music
static

Definition at line 65 of file s_music.cpp.

Referenced by M_Frame(), M_Init(), and M_PlayRandomByCategory().

◆ snd_music_play

cvar_t* snd_music_play
static

Definition at line 67 of file s_music.cpp.

Referenced by M_Frame(), and M_Init().

◆ snd_music_volume

cvar_t* snd_music_volume
static

Definition at line 66 of file s_music.cpp.

Referenced by M_Frame(), and M_Init().