2018-11-15 23:31:39 +00:00
|
|
|
/*****************************************************************************\
|
|
|
|
Snes9x - Portable Super Nintendo Entertainment System (TM) emulator.
|
|
|
|
This file is licensed under the Snes9x License.
|
|
|
|
For further information, consult the LICENSE file in the root directory.
|
|
|
|
\*****************************************************************************/
|
2010-09-25 15:46:12 +00:00
|
|
|
|
|
|
|
#ifndef IS9XSOUNDOUTPUT_H
|
|
|
|
#define IS9XSOUNDOUTPUT_H
|
|
|
|
#include "../port.h"
|
|
|
|
|
|
|
|
/* IS9xSoundOutput
|
|
|
|
Interface for the sound output.
|
|
|
|
*/
|
|
|
|
|
|
|
|
class IS9xSoundOutput {
|
|
|
|
public:
|
|
|
|
// InitSoundOutput should initialize the sound output but not start playback
|
|
|
|
virtual bool InitSoundOutput(void)=0;
|
|
|
|
|
|
|
|
// DeInitSoundOutput should stop playback and uninitialize the output
|
|
|
|
virtual void DeInitSoundOutput(void)=0;
|
|
|
|
|
|
|
|
// SetupSound should apply the current sound settings for outputbuffers/devices and
|
|
|
|
// (re)start playback
|
|
|
|
virtual bool SetupSound()=0;
|
|
|
|
|
2017-11-24 23:10:44 +00:00
|
|
|
// SetVolume should set a new volume level (between 0.0 and 1.0)
|
|
|
|
virtual void SetVolume(double volume) = 0;
|
|
|
|
|
2010-09-25 15:46:12 +00:00
|
|
|
// ProcessSound should call S9xFinalizeSamples and queue new available samples into the
|
|
|
|
// Host sound system. If the sound system is callback based, ProcessSound should do a syncronized
|
|
|
|
// S9xFinalizeSamples and return.
|
|
|
|
virtual void ProcessSound()=0;
|
|
|
|
};
|
|
|
|
|
2018-11-15 23:31:39 +00:00
|
|
|
#endif
|