void Systems::SoundSystem::Initialize() { EVENT_SUBSCRIBE_MEMBER(m_EComponentCreated, &SoundSystem::OnComponentCreated); EVENT_SUBSCRIBE_MEMBER(m_EPlaySFX, &SoundSystem::PlaySFX); EVENT_SUBSCRIBE_MEMBER(m_EPlayBGM, &SoundSystem::PlayBGM); EVENT_SUBSCRIBE_MEMBER(m_EStopSound, &SoundSystem::StopSound); m_isPlaying = false; m_TransformSystem = m_World->GetSystem<Systems::TransformSystem>(); FMOD_System_Create(&m_System); FMOD_RESULT result = FMOD_System_Init(m_System, 32, FMOD_INIT_3D_RIGHTHANDED | FMOD_INIT_ENABLE_PROFILE, 0); if(result != FMOD_OK) { LOG_ERROR("Did initialized load FMOD correctly"); } else { LOG_INFO("FMOD initialized successfully"); } FMOD_System_Set3DSettings(m_System, 0.f, 1.f, 1.f); //dopplerScale, distancefactor, rolloffscale }
int main(int argc, char **argv) { setup_ui(&argc, &argv); FMOD_SOUND *soundtrack; FMOD_CHANNEL *channel1; FMOD_VECTOR position = { 0, 0, 0 }; FMOD_VECTOR velocity = { 0, 0, 0 }; FMOD_VECTOR forward = { 0, 0, 1 }; FMOD_VECTOR up = { 0, 1, 0 }; FMOD_System_Create(&fsystem); FMOD_System_Init(fsystem, 100, FMOD_INIT_NORMAL, NULL); FMOD_System_Set3DSettings(fsystem, 1.0f, 1.0f, 1.0f); FMOD_System_CreateSound(fsystem, argc < 2 ? "../sounds/blast.wav" : argv[1], FMOD_3D | FMOD_LOOP_NORMAL, 0, &soundtrack); FMOD_System_PlaySound(fsystem, soundtrack, NULL, 1, &channel1); FMOD_Channel_Set3DAttributes(channel1, &position, &velocity, NULL); FMOD_Channel_SetPaused(channel1, 0); FMOD_System_Set3DListenerAttributes(fsystem, 0, &position, &velocity, &forward, &up); FMOD_System_Update(fsystem); gtk_main(); /*int i = 0; while (i < 500) { i++; FMOD_System_Update(fsystem); struct timespec sleepTime = { 0, 50 * 1000 * 1000 }; nanosleep(&sleepTime, NULL); }*/ FMOD_Sound_Release(soundtrack); FMOD_System_Close(fsystem); FMOD_System_Release(fsystem); }