Firelight Technologies FMOD Studio API
These output types are used with System::setOutput / System::getOutput, to choose which output method to use.
typedef enum {
FMOD_OUTPUTTYPE_AUTODETECT,
FMOD_OUTPUTTYPE_UNKNOWN,
FMOD_OUTPUTTYPE_NOSOUND,
FMOD_OUTPUTTYPE_WAVWRITER,
FMOD_OUTPUTTYPE_NOSOUND_NRT,
FMOD_OUTPUTTYPE_WAVWRITER_NRT,
FMOD_OUTPUTTYPE_DSOUND,
FMOD_OUTPUTTYPE_WINMM,
FMOD_OUTPUTTYPE_WASAPI,
FMOD_OUTPUTTYPE_ASIO,
FMOD_OUTPUTTYPE_OSS,
FMOD_OUTPUTTYPE_ALSA,
FMOD_OUTPUTTYPE_ESD,
FMOD_OUTPUTTYPE_PULSEAUDIO,
FMOD_OUTPUTTYPE_COREAUDIO,
FMOD_OUTPUTTYPE_XBOX360,
FMOD_OUTPUTTYPE_PS3,
FMOD_OUTPUTTYPE_AUDIOTRACK,
FMOD_OUTPUTTYPE_OPENSL,
FMOD_OUTPUTTYPE_WIIU,
FMOD_OUTPUTTYPE_AUDIOOUT,
FMOD_OUTPUTTYPE_MAX
} FMOD_OUTPUTTYPE;
FMOD_OUTPUTTYPE_AUTODETECT
Picks the best output mode for the platform. This is the default.
FMOD_OUTPUTTYPE_UNKNOWN
All - 3rd party plugin, unknown. This is for use with System::getOutput only.
FMOD_OUTPUTTYPE_NOSOUND
All - All calls in this mode succeed but make no sound.
FMOD_OUTPUTTYPE_WAVWRITER
All - Writes output to fmodoutput.wav by default. Use the 'extradriverdata' parameter in System::init, by simply passing the filename as a string, to set the wav filename.
FMOD_OUTPUTTYPE_NOSOUND_NRT
All - Non-realtime version of FMOD_OUTPUTTYPE_NOSOUND. User can drive mixer with System::update at whatever rate they want.
FMOD_OUTPUTTYPE_WAVWRITER_NRT
All - Non-realtime version of FMOD_OUTPUTTYPE_WAVWRITER. User can drive mixer with System::update at whatever rate they want.
FMOD_OUTPUTTYPE_DSOUND
Win32/Win64 - DirectSound output. (Default on Windows XP and below)
FMOD_OUTPUTTYPE_WINMM
Win32/Win64 - Windows Multimedia output.
FMOD_OUTPUTTYPE_WASAPI
Win - Windows Audio Session API. (Default on Windows Vista and above)
FMOD_OUTPUTTYPE_ASIO
Win32 - Low latency ASIO 2.0 driver.
FMOD_OUTPUTTYPE_OSS
Linux/Linux64 - Open Sound System output. (Default on Linux, third preference)
FMOD_OUTPUTTYPE_ALSA
Linux/Linux64 - Advanced Linux Sound Architecture output. (Default on Linux, second preference if available)
FMOD_OUTPUTTYPE_ESD
Linux/Linux64 - Enlightment Sound Daemon output.
FMOD_OUTPUTTYPE_PULSEAUDIO
Linux/Linux64 - PulseAudio output. (Default on Linux, first preference if available)
FMOD_OUTPUTTYPE_COREAUDIO
Mac - Macintosh CoreAudio output. (Default on Mac)
FMOD_OUTPUTTYPE_XBOX360
Xbox 360 - Native Xbox360 output. (Default on Xbox 360)
FMOD_OUTPUTTYPE_PS3
PS3 - Native PS3 output. (Default on PS3)
FMOD_OUTPUTTYPE_AUDIOTRACK
Android - Java Audio Track output. (Default on Android 2.2 and below)
FMOD_OUTPUTTYPE_OPENSL
Android - OpenSL ES output. (Default on Android 2.3 and above)
FMOD_OUTPUTTYPE_WIIU
Wii U - Native Wii U output. (Default on Wii U)
FMOD_OUTPUTTYPE_AUDIOOUT
PS4/PSVita - Audio Out output. (Default on PS4 and PS Vita)
FMOD_OUTPUTTYPE_MAX
Maximum number of output types supported.
To pass information to the driver when initializing fmod use the extradriverdata parameter in System::init for the following reasons.
Currently these are the only FMOD drivers that take extra information. Other unknown plugins may have different requirements.
Note! If FMOD_OUTPUTTYPE_WAVWRITER_NRT or FMOD_OUTPUTTYPE_NOSOUND_NRT are used, and if the System::update function is being called very quickly (ie for a non realtime decode) it may be being called too quickly for the FMOD streamer thread to respond to. The result will be a skipping/stuttering output in the captured audio.
To remedy this, disable the FMOD Studio streamer thread, and use FMOD_INIT_STREAM_FROM_UPDATE to avoid skipping in the output stream, as it will lock the mixer and the streamer together in the same thread.
Version 1.03.06 Built on Apr 17, 2014