Ejemplo n.º 1
0
int BEE::Sound::effect_add(int new_sound_effects) {
	if (is_loaded) {
		int old_sound_effects = sound_effects;
		sound_effects = new_sound_effects;

		if (is_music) {
			effect_remove_post(old_sound_effects ^ sound_effects);
			effect_set_post(sound_effects);
		} else {
			std::list<int> tmp_channels = current_channels;
			for (auto i=tmp_channels.begin(); i != tmp_channels.end(); ++i) {
				effect_remove(*i, old_sound_effects ^ sound_effects);
				effect_set(*i, sound_effects);
			}
		}

		return 0;
	}
	return 1;
}
Ejemplo n.º 2
0
static void effect_enable (PluginHandle * plugin, EffectPlugin * ep, bool_t
 enable)
{
    if (ep->preserves_format)
    {
        pthread_mutex_lock (& mutex);

        if (enable)
            effect_insert (plugin, ep);
        else
            effect_remove (plugin);

        pthread_mutex_unlock (& mutex);
    }
    else
    {
        AUDDBG ("Reset to add/remove %s.\n", plugin_get_name (plugin));
        output_reset (OUTPUT_RESET_EFFECTS_ONLY);
    }
}
Ejemplo n.º 3
0
static void effect_enable (PluginHandle * plugin, EffectPlugin * ep, bool_t
 enable)
{
    if (ep->preserves_format)
    {
        pthread_mutex_lock (& mutex);

        if (enable)
            effect_insert (plugin, ep);
        else
            effect_remove (plugin);

        pthread_mutex_unlock (& mutex);
    }
    else
    {
        AUDDBG ("Reset to add/remove %s.\n", plugin_get_name (plugin));
        int time = playback_get_time ();
        bool_t paused = playback_get_paused ();
        playback_stop ();
        playback_play (time, paused);
    }
}