void SSVisualizer::Shutdown( SubsystemCollection* const subsystemCollection ) {
	// Perform Cleanup here (Don't forget to set shutdown order priority!)
	FMOD_Sound_Release(m_Song);
	FMOD_System_Close(m_SoundSystem);
	FMOD_System_Release(m_SoundSystem);
	if (m_Allocator) delete m_Allocator;
}
Esempio n. 2
0
/**
 * @brief Releases audio resources from fmod
 * The audio api won't be usable after calling
 * this method.
 *
 **/
void SoundManagerFMOD::end()
{
    // If theres no system, skip release
    if( !m_system )
        return;

    // Messsage
    // TODO Leads to error. Logger has been probably released
    // PrintOnConsole( "Releasing shared audio resources..." );

		// Clear the container (note: we cannot call here end() for the sounds, because we would
		// need to iterate through the m_systemSounds container, and sounds, call the unregisterSound during their end()
		// which modifies the m_systemSounds container. BE CAREFULL
		m_systemSounds.clear();

    // Try to release (show any error releasing)
    FMOD_RESULT result = FMOD_System_Release( m_system );
    if( failedFMODResultCode( result ) ) {
        // Show message
        LOG_ERROR( getFmodMessageFromCode( result ) );
    }
    m_system = 0; // done

    // Bye!
    // TODO Leads to error. Logger has been probably released
    // PrintOnConsole( "Shared audio resources released" );

}
void FSAPI gaugecall(PGAUGEHDR pgauge, int service_id, UINT32 extra_data)
{
	// Added to call all lookups and the license check routine //
	switch(service_id)
	{
	case PANEL_SERVICE_CONNECT_TO_WINDOW:
	{ // Add here, all inicializations and conections.
		OpenLinkFsUIPC();
		InitializeIFlyVariables();
		break;
	}
	case PANEL_SERVICE_PRE_INSTALL:
		InitializeIFlyVariables();
		break;
	case PANEL_SERVICE_PRE_UPDATE:
		break;
	case PANEL_SERVICE_DISCONNECT:
	{ // free resouces and close conections.
		FSUIPC_Close();

		/*
        Shut down
		*/
		//FMOD_Sound_Release(sound);
		FMOD_System_Close(systemFMOD);
		FMOD_System_Release(systemFMOD);
		break;
	}
	case PANEL_SERVICE_PRE_KILL:
	break;
	}
}
Esempio n. 4
0
void Audio::nettoyer() {
	resultat = FMOD_System_Close(_systeme);
	erreur(resultat, 2);

	resultat = FMOD_System_Release(_systeme);
	erreur(resultat, 3);
}
Esempio n. 5
0
void FMOD_Shutdown (void)
{
	if (COM_CheckParm("-nosound"))
	{
		SND_Initialised = false;
		SND_InitialisedCD = false;
		return;
	}

	if (SND_MusicChannel.channel)
		FMOD_Channel_Stop(SND_MusicChannel.channel);

	CDA_Shutdown();


	if (fmod_music)
		FMOD_Sound_Release(fmod_music);

	if (fmod_system)
	{
		result = FMOD_System_Close(fmod_system);
		FMOD_ERROR(result, true, false);
		result = FMOD_System_Release(fmod_system);
		FMOD_ERROR(result, true, false);
	}

	SND_Initialised = false;
	SND_InitialisedCD = false;
}
Esempio n. 6
0
void    music_close(t_music *m)
{
  m->DUCK_isPlaying = 0;
  FMOD_Sound_Release(m->music);
  FMOD_System_Close(m->system);
  FMOD_System_Release(m->system);
}
cSoundSystemFmod::~cSoundSystemFmod(){
	if(mpSystem){
		result = FMOD_System_Close(mpSystem);
		ERRCHECK(result);
		result = FMOD_System_Release(mpSystem);
		ERRCHECK(result);
	}
}
Esempio n. 8
0
void Audio::quit(){
    if(System){
        SoundCache.clear();
        FMOD_System_Release(System);

        System = NULL;
    }
}
Esempio n. 9
0
CFModExDriver::~CFModExDriver()
{


    //dtor
    FMOD_System_Close(_audioSystem);
    FMOD_System_Release(_audioSystem);
}
Esempio n. 10
0
/*
=======================================
    释放 FMODEx 系统对象
=======================================
*/
CR_API void_t
fmodex_kill (void_t)
{
    if (s_fmodex != NULL) {
        FMOD_System_Release(s_fmodex);
        s_fmodex = NULL;
    }
}
Esempio n. 11
0
int main(void)
{
	SDL_Surface *screen = NULL, *viseur = NULL;
	SDL_Event event;
	SDL_Rect position;
	FMOD_SYSTEM *system;
	FMOD_SOUND *tir = NULL;
	FMOD_RESULT resultat;
	int continuer = 1;

	/*Initiation de FMOD pour le tir du pistolet*/
	FMOD_System_Create(&system);
	FMOD_System_Init(system, 2, FMOD_INIT_NORMAL, NULL);

	resultat = FMOD_System_CreateSound(system,"gun_shot.mp3",FMOD_CREATESAMPLE, 0, &tir);
	if(resultat != FMOD_OK)
	{
		fprintf(stderr, "Impossible de lire gun_shot.mp3");
		exit(EXIT_FAILURE);
	}
	/*Initiation de la SDL*/
	SDL_Init(SDL_INIT_VIDEO);
	SDL_ShowCursor(SDL_DISABLE);
	screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
	SDL_WM_SetCaption("Gestion du son avec FMOD", NULL);
	viseur = IMG_Load("cible.png");

	SDL_EnableKeyRepeat(10, 10);
	while(continuer)
	{
		SDL_WaitEvent(&event);

		switch(event.type)
		{
			case SDL_QUIT:
				continuer = 0;
				break;
			case SDL_MOUSEBUTTONDOWN:
				FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, tir, 0, NULL);
				break;
			case SDL_MOUSEMOTION:
				position.x = event.motion.x - (viseur->w / 2);
				position.y = event.motion.y - (viseur->h / 2);
				break;
		}
		SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
		SDL_BlitSurface(viseur, NULL, screen, &position);
		SDL_Flip(screen);
	}

	SDL_FreeSurface(viseur);
	SDL_Quit();
	FMOD_Sound_Release(tir);
	FMOD_System_Close(system);
	FMOD_System_Release(system);

	return EXIT_SUCCESS;
}
Esempio n. 12
0
	Audio::~Audio()
	{
		//release all samples
		for (Iterator i = samples.begin(); i != samples.end(); ++i)
		{
			(*i) = NULL;
		}
		FMOD_System_Release(system);
	}
Esempio n. 13
0
static void close_sound_system(FMOD_SYSTEM *system)
{
	FMOD_RESULT result;

	result = FMOD_System_Close(system);
	ERRCHECK(result);
	result = FMOD_System_Release(system);
	ERRCHECK(result);
}
Esempio n. 14
0
	void AudioPlayer::cleunup()
	{
		if ( mFmodSys )
		{
			FMOD_CHECK( FMOD_System_Close( mFmodSys ) );
			FMOD_CHECK( FMOD_System_Release( mFmodSys ) );
			mFmodSys = NULL;
		}
	}
SoundManager::~SoundManager()
{
	if (mSpectrum != 0)
		delete mSpectrum;

	FMOD_Sound_Release(mMusic);
	FMOD_System_Close(mSystem);
	FMOD_System_Release(mSystem);
}
Esempio n. 16
0
void Java_org_fmod_realtimestitching_Example_cEnd(JNIEnv *env, jobject thiz)
{
	FMOD_RESULT result = FMOD_OK;

	result = FMOD_Sound_Release(gSound); /* Freeing a parent subsound also frees its children. */
	CHECK_RESULT(result);

	result = FMOD_System_Release(gSystem);
	CHECK_RESULT(result);
}
Esempio n. 17
0
void Java_org_fmod_fsb_Example_cEnd(JNIEnv *env, jobject thiz)
{
	FMOD_RESULT result = FMOD_OK;
	unsigned int i = 0;

	result = FMOD_Sound_Release(gFSB);
	CHECK_RESULT(result);

	result = FMOD_System_Release(gSystem);
	CHECK_RESULT(result);
}
Esempio n. 18
0
void I_ShutdownSound(void)
{
	I_Assert(sound_started);
	sound_started = false;

#ifdef HAVE_LIBGME
	if (gme)
		gme_delete(gme);
#endif
	FMR(FMOD_System_Release(fsys));
}
Esempio n. 19
0
void whitgl_sound_shutdown()
{
	WHITGL_LOG("Shutdown fmod");
	FMOD_RESULT result;
	int i;
	for(i=0; i<num_sounds; i++)
		FMOD_Sound_Release(sounds[i].sound);
	result = FMOD_System_Close(fmodSystem);
	_whitgl_sound_errcheck("FMOD_System_Close", result);
	result = FMOD_System_Release(fmodSystem);
	_whitgl_sound_errcheck("FMOD_System_Release", result);
}
Esempio n. 20
0
int fmod_cleanup(void)
{
	int i;
	FMOD_RESULT result;
	for (i=0; i<NSOUNDS; i++) {
		result = FMOD_Sound_Release(sound[i]);
		if (ERRCHECK(result)) return 1;
	}
	result = FMOD_System_Close(xsystem);
	if (ERRCHECK(result)) return 1;
	result = FMOD_System_Release(xsystem);
	if (ERRCHECK(result)) return 1;
	return 0;
}
Esempio n. 21
0
void Java_org_fmod_playsound_Example_cEnd(JNIEnv *env, jobject thiz)
{
	FMOD_RESULT result = FMOD_OK;
	unsigned int i = 0;

	for (i = 0; i < NUM_SOUNDS; i++)
	{
		result = FMOD_Sound_Release(gSound[i]);
		CHECK_RESULT(result);
	}

	result = FMOD_System_Release(gSystem);
	CHECK_RESULT(result);
}
Esempio n. 22
0
Ultra::~Ultra()
{
	FMOD_Sound_Release(hold);
	FMOD_Sound_Release(move);
	FMOD_Sound_Release(drop);
	FMOD_Sound_Release(deletion);
	
	FMOD_Sound_Release(marathonMusic);
	FMOD_Sound_Release(sprintMusic);
	FMOD_Sound_Release(ultraMusic);
	
	FMOD_System_Close(system);
	FMOD_System_Release(system);
}
Esempio n. 23
0
OBJECT_ID fmod_Close(VM_ID vm,TUPLE_ID locals,TUPLE_ID kw_locals)
{
	object *self = GetItem((object*)locals,0);
	unicode_object *sys_name = CreateUnicodeObject(str_Copy("__fmod_sys__"));
	object *sys = GetAttribute(self,sys_name);
	gc_IncRefCount(sys_name);
	gc_DecRefCount(sys_name);
	FMOD_RESULT result;
	result = FMOD_System_Close(((tag_object*)sys)->tag);
	ERRCHECK(result);
	result = FMOD_System_Release(((tag_object*)sys)->tag);
	ERRCHECK(result);
	object *tmp =CreateEmptyObject(TYPE_NONE);
	return (tmp);	
}
Esempio n. 24
0
void AudioManager::Deallocate()
{
	// Shutdown audio system.

		if( Initialized )
		{
			for( size_t Index = 0; Index < MaxAudioTypes; Index++ )
				AudioMaps[ Index ].Instance.clear();

			if( FMOD_System_Release( SystemInstance ) != FMOD_OK )
				throw exception();

			Initialized = false;
		}
}
Esempio n. 25
0
Game::~Game()
{
	FMOD_Sound_Release(hold);
	FMOD_Sound_Release(move);
	FMOD_Sound_Release(drop);
	FMOD_Sound_Release(deletion);
	
	FMOD_Sound_Release(marathonMusic);
	FMOD_Sound_Release(sprintMusic);
	FMOD_Sound_Release(ultraMusic);
	
	//FMOD_Channel_Stop(channel);
	//FMOD_Channel_Stop(musicChannel);
	
	FMOD_System_Close(system);
	FMOD_System_Release(system);
}
Esempio n. 26
0
FMCSounds::~FMCSounds()
{
    qDeleteAll(m_sound_map);
    m_sounds_cfg->saveToFile();
    delete m_sounds_cfg;

#ifdef USE_FMOD
    MYASSERT(FMOD_System_Close(m_fmod_system) == FMOD_OK);
    MYASSERT(FMOD_System_Release(m_fmod_system) == FMOD_OK);
#endif

#ifdef USE_OPENAL
    /*alcMakeContextCurrent(m_oldContext);
    alcDestroyContext(m_alContext);
    alcCloseDevice(m_alDevice);
    alutExit();*/
#endif
}
Esempio n. 27
0
void stopMusic (void)
{
		  if (sounds)
		  {
					 Log("about to free sounds\n");
					 free(sounds);
		  }
		  if (sys)
		  {
					 Log("releasing fmod system\n");
					 result = FMOD_System_Close(sys);
					 ERRCHECK(result);
					 result = FMOD_System_Release(sys);
					 ERRCHECK(result);
		  }

		  return;
}
Esempio n. 28
0
unsigned int JiwokFMODWrapper::GetLength(const char *filename)
{
    
	FMOD_SYSTEM     *system;
	FMOD_SOUND      *sound;
	FMOD_RESULT       result;
	unsigned int      version;
	
	result = FMOD_System_Create(&system);
	ERRCHECK(result);
	
	result = FMOD_System_GetVersion(system, &version);
	ERRCHECK(result);
	
	if (version < FMOD_VERSION)
	{
		//printf("Error!  You are using an old version of FMOD %08x.  This program requires %08x\n", version, FMOD_VERSION);
		return 0;
	}
	
	result = FMOD_System_Init(system, 1, FMOD_INIT_NORMAL, 0);
	
	ERRCHECK(result);
	
	result = FMOD_System_CreateStream(system,filename, FMOD_OPENONLY | FMOD_ACCURATETIME, 0, &sound);
	// ERRCHECK(result);
	
	unsigned int length = 0;
	
	result = FMOD_Sound_GetLength(sound, &length, FMOD_TIMEUNIT_MS);
	ERRCHECK(result);

	
	result = FMOD_Sound_Release(sound);
	ERRCHECK(result);
	result = FMOD_System_Close(system);
	ERRCHECK(result);
	result = FMOD_System_Release(system);
	ERRCHECK(result);
	
	return length;
}
Esempio n. 29
0
void End()
{
	FMOD_RESULT result = FMOD_OK;

	if (gSound)
	{
		result = FMOD_Sound_Release(gSound);
		CHECK_RESULT(result);

		gSound = 0;
	}

	if (gSystem)
	{
		result = FMOD_System_Release(gSystem);
		CHECK_RESULT(result);

		gSystem = 0;
	}
}
Esempio n. 30
0
void Sound::Terminate()
{
	for(int i = 0; i < MAX_SOUNDS; i++)
	{
		Sound* sound = sounds[i];
		if(sound == nullptr) continue;
		delete sound;
	}

	FMOD_RESULT s_result = FMOD_OK;

	s_result = FMOD_SoundGroup_Release(musicGroup);
	check_error(s_result);
	s_result = FMOD_SoundGroup_Release(noiseGroup);
	check_error(s_result);

	s_result = FMOD_System_Close(fmodSystem);
	check_error(s_result);
	s_result = FMOD_System_Release(fmodSystem);
	check_error(s_result);
}