void SFXManager::play_sfx(const string &ident, float volume) const { auto sfx = effects.find(ident); if (sfx == end(effects)) throw runtime_error("Invalid SFX!"); auto duped = make_shared<Audio::PCMStream>(sfx->second); duped->volume(volume); auto& mixer = get_mixer(); if (mixer.enabled()) mixer.add_stream(duped); }
void on_volume_hscale_value_changed(GtkRange * range, gpointer user_data) { mixer_set_volume(get_mixer(app), gtk_range_get_value(range)); update_ui_volume(app); }
void server_base::event_model_updated() { ++update_count_; if (mixer::mixer* m = get_mixer()) { m->updated(); } }
void on_volume_up_activate(GtkAction * action, gpointer user_data) { mixer_volume_up(get_mixer(app)); update_ui_volume(app); }