mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Merge pull request #106415 from YeldhamDev/desobey_your_master
Ignore changes in "Master" bus while in the Audio Importer
This commit is contained in:
commit
9d7663398a
2 changed files with 37 additions and 0 deletions
|
@ -226,6 +226,28 @@ void AudioStreamImportSettingsDialog::_preview_zoom_offset_changed(double) {
|
||||||
_indicator->queue_redraw();
|
_indicator->queue_redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AudioStreamImportSettingsDialog::_reset_master() {
|
||||||
|
master_state.bypass = AudioServer::get_singleton()->is_bus_bypassing_effects(0);
|
||||||
|
master_state.mute = AudioServer::get_singleton()->is_bus_mute(0);
|
||||||
|
master_state.volume = AudioServer::get_singleton()->get_bus_volume_db(0);
|
||||||
|
|
||||||
|
AudioServer::get_singleton()->set_bus_bypass_effects(0, true); // We don't want effects interfering.
|
||||||
|
AudioServer::get_singleton()->set_bus_mute(0, false);
|
||||||
|
AudioServer::get_singleton()->set_bus_volume_db(0, 0);
|
||||||
|
|
||||||
|
// Prevent the modifications from being saved.
|
||||||
|
AudioServer::get_singleton()->set_edited(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AudioStreamImportSettingsDialog::_load_master_state() {
|
||||||
|
AudioServer::get_singleton()->set_bus_bypass_effects(0, master_state.bypass);
|
||||||
|
AudioServer::get_singleton()->set_bus_mute(0, master_state.mute);
|
||||||
|
AudioServer::get_singleton()->set_bus_volume_db(0, master_state.volume);
|
||||||
|
|
||||||
|
// Prevent the modifications from being saved.
|
||||||
|
AudioServer::get_singleton()->set_edited(false);
|
||||||
|
}
|
||||||
|
|
||||||
void AudioStreamImportSettingsDialog::_audio_changed() {
|
void AudioStreamImportSettingsDialog::_audio_changed() {
|
||||||
if (!is_visible()) {
|
if (!is_visible()) {
|
||||||
return;
|
return;
|
||||||
|
@ -237,12 +259,16 @@ void AudioStreamImportSettingsDialog::_audio_changed() {
|
||||||
|
|
||||||
void AudioStreamImportSettingsDialog::_play() {
|
void AudioStreamImportSettingsDialog::_play() {
|
||||||
if (_player->is_playing()) {
|
if (_player->is_playing()) {
|
||||||
|
_load_master_state();
|
||||||
|
|
||||||
// '_pausing' variable indicates that we want to pause the audio player, not stop it. See '_on_finished()'.
|
// '_pausing' variable indicates that we want to pause the audio player, not stop it. See '_on_finished()'.
|
||||||
_pausing = true;
|
_pausing = true;
|
||||||
_player->stop();
|
_player->stop();
|
||||||
_play_button->set_button_icon(get_editor_theme_icon(SNAME("MainPlay")));
|
_play_button->set_button_icon(get_editor_theme_icon(SNAME("MainPlay")));
|
||||||
set_process(false);
|
set_process(false);
|
||||||
} else {
|
} else {
|
||||||
|
_reset_master();
|
||||||
|
|
||||||
_player->play(_current);
|
_player->play(_current);
|
||||||
_play_button->set_button_icon(get_editor_theme_icon(SNAME("Pause")));
|
_play_button->set_button_icon(get_editor_theme_icon(SNAME("Pause")));
|
||||||
set_process(true);
|
set_process(true);
|
||||||
|
@ -250,6 +276,8 @@ void AudioStreamImportSettingsDialog::_play() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioStreamImportSettingsDialog::_stop() {
|
void AudioStreamImportSettingsDialog::_stop() {
|
||||||
|
_load_master_state();
|
||||||
|
|
||||||
_player->stop();
|
_player->stop();
|
||||||
_play_button->set_button_icon(get_editor_theme_icon(SNAME("MainPlay")));
|
_play_button->set_button_icon(get_editor_theme_icon(SNAME("MainPlay")));
|
||||||
_current = 0;
|
_current = 0;
|
||||||
|
|
|
@ -77,6 +77,15 @@ class AudioStreamImportSettingsDialog : public ConfirmationDialog {
|
||||||
String importer;
|
String importer;
|
||||||
String path;
|
String path;
|
||||||
|
|
||||||
|
struct MasterState {
|
||||||
|
bool mute = false;
|
||||||
|
bool bypass = false;
|
||||||
|
float volume = 0;
|
||||||
|
} master_state;
|
||||||
|
|
||||||
|
void _reset_master();
|
||||||
|
void _load_master_state();
|
||||||
|
|
||||||
void _audio_changed();
|
void _audio_changed();
|
||||||
|
|
||||||
static AudioStreamImportSettingsDialog *singleton;
|
static AudioStreamImportSettingsDialog *singleton;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue