@@ -820,19 +820,72 @@ static void menu_audio(void)
820820
821821 ImGui::Separator ();
822822
823- if (ImGui::MenuItem (" Mute PSG" , " " , &config_audio. mute_psg , config_audio.enable ))
823+ if (ImGui::MenuItem (" Mute PSG" , " " , &gui_audio_mute_psg , config_audio.enable ))
824824 {
825- emu_audio_mute_psg ( config_audio.mute_psg );
825+ emu_audio_psg_volume (gui_audio_mute_psg ? 0 : config_audio.psg_volume );
826826 }
827827
828- if (ImGui::MenuItem (" Mute CD-ROM" , " " , &config_audio. mute_cd , config_audio.enable ))
828+ if (ImGui::MenuItem (" Mute CD-ROM" , " " , &gui_audio_mute_cdrom , config_audio.enable ))
829829 {
830- emu_audio_mute_cdrom ( config_audio.mute_cd );
830+ emu_audio_cdrom_volume (gui_audio_mute_cdrom ? 0 : config_audio.cdrom_volume );
831831 }
832832
833- if (ImGui::MenuItem (" Mute ADPCM" , " " , &config_audio. mute_adpcm , config_audio.enable ))
833+ if (ImGui::MenuItem (" Mute ADPCM" , " " , &gui_audio_mute_adpcm , config_audio.enable ))
834834 {
835- emu_audio_mute_adpcm (config_audio.mute_adpcm );
835+ emu_audio_adpcm_volume (gui_audio_mute_adpcm ? 0 : config_audio.adpcm_volume );
836+ }
837+
838+ ImGui::Separator ();
839+
840+ if (ImGui::BeginMenu (" PSG Volume" , config_audio.enable ))
841+ {
842+ ImGui::PushItemWidth (200 .0f );
843+ if (ImGui::SliderFloat (" ##psg_volume" , &config_audio.psg_volume , 0 .0f , 2 .0f , " Volume = %.2f" ))
844+ {
845+ emu_audio_psg_volume (config_audio.psg_volume );
846+ }
847+ ImGui::PopItemWidth ();
848+ if (ImGui::IsItemHovered ())
849+ {
850+ ImGui::BeginTooltip ();
851+ ImGui::Text (" Anything above 1.00 may cause clipping." );
852+ ImGui::EndTooltip ();
853+ }
854+ ImGui::EndMenu ();
855+ }
856+
857+ if (ImGui::BeginMenu (" CD-ROM Volume" , config_audio.enable ))
858+ {
859+ ImGui::PushItemWidth (200 .0f );
860+ if (ImGui::SliderFloat (" ##cdrom_volume" , &config_audio.cdrom_volume , 0 .0f , 2 .0f , " Volume = %.2f" ))
861+ {
862+ emu_audio_cdrom_volume (config_audio.cdrom_volume );
863+ }
864+ ImGui::PopItemWidth ();
865+ if (ImGui::IsItemHovered ())
866+ {
867+ ImGui::BeginTooltip ();
868+ ImGui::Text (" Anything above 1.00 may cause clipping." );
869+ ImGui::EndTooltip ();
870+ }
871+ ImGui::EndMenu ();
872+ }
873+
874+ if (ImGui::BeginMenu (" ADPCM Volume" , config_audio.enable ))
875+ {
876+ ImGui::PushItemWidth (200 .0f );
877+ if (ImGui::SliderFloat (" ##adpcm_volume" , &config_audio.adpcm_volume , 0 .0f , 2 .0f , " Volume = %.2f" ))
878+ {
879+ emu_audio_adpcm_volume (config_audio.adpcm_volume );
880+ }
881+ ImGui::PopItemWidth ();
882+ if (ImGui::IsItemHovered ())
883+ {
884+ ImGui::BeginTooltip ();
885+ ImGui::Text (" Anything above 1.00 may cause clipping." );
886+ ImGui::EndTooltip ();
887+ }
888+ ImGui::EndMenu ();
836889 }
837890
838891 ImGui::Separator ();
0 commit comments