1 #include "..\include\raMain.h" 11 sprintf(errstring,
"FMOD (%d) %s", result, FMOD_ErrorString(result));
22 m_format = FMOD_SOUND_FORMAT_PCM16;
29 unsigned int version = 0;
39 RINFO(
"Verwende alternative Sound Konfiguration");
45 m_Config->Sound.Bit = raConfigLoader::Instance().GetConfig().Sound.Bit;
46 m_Config->Sound.b3D = raConfigLoader::Instance().GetConfig().Sound.b3D;
47 m_Config->Sound.Channels = raConfigLoader::Instance().GetConfig().Sound.Channels;
48 m_Config->Sound.Driver = raConfigLoader::Instance().GetConfig().Sound.Driver;
49 m_Config->Sound.Hardware = raConfigLoader::Instance().GetConfig().Sound.Hardware;
50 m_Config->Sound.SampleRate = raConfigLoader::Instance().GetConfig().Sound.SampleRate;
51 m_Config->Sound.Soundkarte = raConfigLoader::Instance().GetConfig().Sound.Soundkarte;
56 result = FMOD::Memory_Initialize(raSystem::raMemManager::Instance().MemAlloc(toUseMemory), toUseMemory, 0, 0, 0);
59 result = FMOD::System_Create(&m_system);
62 result = m_system->getVersion(&version);
65 if (version < FMOD_VERSION)
67 MessageBox(GetForegroundWindow(),
"INCORRECT DLL VERSION!!",
"FMOD ERROR", MB_OK);
70 result = m_system->setPluginPath(
"raPlugins/x64");
72 result = m_system->setPluginPath(
"raPlugins/x86");
76 switch (m_Config->Sound.Driver)
80 m_system->setOutput(FMOD_OUTPUTTYPE_ASIO);
81 RINFO(
"SetOutput: ASIO");
86 m_system->setOutput(FMOD_OUTPUTTYPE_WINMM);
87 RINFO(
"SetOutput: WinMM");
92 m_system->setOutput(FMOD_OUTPUTTYPE_DSOUND);
93 RINFO(
"SetOutput: DSOUND");
98 m_system->setOutput(FMOD_OUTPUTTYPE_WASAPI);
99 RINFO(
"SetOutput: WASAPI");
106 switch(m_Config->Sound.Bit)
109 m_format = FMOD_SOUND_FORMAT_PCMFLOAT;
110 RINFO(
"SetSoundFormat: PCM_FLOAT");
113 m_format = FMOD_SOUND_FORMAT_PCM16;
114 RINFO(
"SetSoundFormat: PCM_16");
117 m_format = FMOD_SOUND_FORMAT_PCM24;
118 RINFO(
"SetSoundFormat: PCM_24");
121 m_format = FMOD_SOUND_FORMAT_PCM32;
122 RINFO(
"SetSoundFormat: PCM_32");
127 result = m_system->setSoftwareFormat(m_Config->Sound.SampleRate,
128 m_format, 0, 0, FMOD_DSP_RESAMPLER_LINEAR);
131 switch(m_Config->Sound.Channels)
134 m_speakermode = FMOD_SPEAKERMODE_MONO;
135 RINFO(
"SetChannelMode: Mono");
138 m_speakermode = FMOD_SPEAKERMODE_STEREO;
139 RINFO(
"SetChannelMode: Stereo");
142 m_speakermode = FMOD_SPEAKERMODE_QUAD;
143 RINFO(
"SetChannelMode: 4.0");
146 m_speakermode = FMOD_SPEAKERMODE_5POINT1;
147 RINFO(
"SetChannelMode: 5.1");
150 m_speakermode = FMOD_SPEAKERMODE_7POINT1;
151 RINFO(
"SetChannelMode: 7.1");
155 result = m_system->setSpeakerMode(m_speakermode);
158 result = m_system->setDriver(m_Config->Sound.Soundkarte);
162 result = m_system->init(32, FMOD_INIT_NORMAL, 0);
165 if(m_Config->Sound.b3D)
167 m_system->set3DSettings(1.0, DISTANCEFACTOR, 1.0f);
170 ROK(
"SoundEnginnee Erstellt");
185 if(!m_Cam)
return false;
187 if(m_Config->Sound.b3D)
191 result = m_system->set3DListenerAttributes(0, (FMOD_VECTOR*)m_Cam->GetEyePt(),
192 (FMOD_VECTOR*)m_Cam->GetVelocity(),
193 (FMOD_VECTOR*)m_Cam->GetWorldAhead(),
194 (FMOD_VECTOR*)m_Cam->GetWorldUp());
bool ERRCHECK(FMOD_RESULT result)
virtual bool Create(raConfig *altConfig=NULL, int toUseMemory=RASYSTEMEMMORYUSE)
void RAPI ROK(raString x)
void RAPI RINFO(raString x)
raFMODSystem(raCamera *Cam)
void RAPI RERROR(raString x)