//----------------------------------------------------------------------------- // // Copyright 1993-1996 id Software // Copyright 1999-2016 Randy Heit // Copyright 2002-2016 Christoph Oelckers // // This program 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 3 of the License, or // (at your option) any later version. // // This program 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 this program. If not, see http://www.gnu.org/licenses/ // //----------------------------------------------------------------------------- // // DESCRIPTION: // The not so system specific sound interface. // //----------------------------------------------------------------------------- #ifndef __S_MUSIC__ #define __S_MUSIC__ #include "zstring.h" #include "tarray.h" #include "name.h" void S_CreateStream(); void S_PauseStream(bool pause); void S_StopStream(); void S_SetStreamVolume(float vol); // void S_InitMusic (); void S_StartMusic (); // Start music using bool S_StartMusic (const char *music_name); // Start music using , and set whether looping bool S_ChangeMusic (const char *music_name, int order=0, bool looping=true, bool force=false); // Start playing a cd track as music bool S_ChangeCDMusic (int track, unsigned int id=0, bool looping=true); void S_RestartMusic (); void S_MIDIDeviceChanged(int newdev); int S_GetMusic (const char **name); // Stops the music for sure. void S_StopMusic (bool force); // Stop and resume music, during game PAUSE. void S_PauseMusic (); void S_ResumeMusic (); // // Updates music & sounds // void S_UpdateMusic (); struct MidiDeviceSetting { int device; FString args; }; typedef TMap MusicAliasMap; typedef TMap MidiDeviceMap; typedef TMap MusicVolumeMap; extern MusicAliasMap MusicAliases; extern MidiDeviceMap MidiDevices; extern MusicVolumeMap MusicVolumes; class MusInfo; struct MusPlayingInfo { FString name; MusInfo* handle; int baseorder; bool loop; FString LastSong; // last music that was played }; extern MusPlayingInfo mus_playing; extern float relative_volume, saved_relative_volume; #endif