Create RARCH_CMD_AUDIO_MUTE_TOGGLE

This commit is contained in:
twinaphex 2014-10-08 16:07:19 +02:00
parent 57cc2ea18d
commit 35cda4b78b
3 changed files with 26 additions and 25 deletions

View File

@ -108,6 +108,7 @@ enum basic_event
RARCH_CMD_AUTOSAVE_STATE, RARCH_CMD_AUTOSAVE_STATE,
RARCH_CMD_AUDIO_STOP, RARCH_CMD_AUDIO_STOP,
RARCH_CMD_AUDIO_START, RARCH_CMD_AUDIO_START,
RARCH_CMD_AUDIO_MUTE_TOGGLE,
RARCH_CMD_OVERLAY_INIT, RARCH_CMD_OVERLAY_INIT,
RARCH_CMD_OVERLAY_DEINIT, RARCH_CMD_OVERLAY_DEINIT,
RARCH_CMD_OVERLAY_SET_SCALE_FACTOR, RARCH_CMD_OVERLAY_SET_SCALE_FACTOR,

View File

@ -2307,6 +2307,30 @@ bool rarch_main_command(unsigned cmd)
driver.audio_active = false; driver.audio_active = false;
} }
break; break;
case RARCH_CMD_AUDIO_MUTE_TOGGLE:
{
const char *msg = !g_extern.audio_data.mute ?
"Audio muted." : "Audio unmuted.";
if (!driver.audio_data || !driver.audio_active)
return;
g_extern.audio_data.mute = !g_extern.audio_data.mute;
msg_queue_clear(g_extern.msg_queue);
msg_queue_push(g_extern.msg_queue, msg, 1, 180);
if (g_extern.audio_data.mute)
rarch_main_command(RARCH_CMD_AUDIO_STOP);
else if (!rarch_main_command(RARCH_CMD_AUDIO_START))
{
RARCH_ERR("Failed to unmute audio.\n");
driver.audio_active = false;
}
RARCH_LOG("%s\n", msg);
}
break;
case RARCH_CMD_OVERLAY_DEINIT: case RARCH_CMD_OVERLAY_DEINIT:
#ifdef HAVE_OVERLAY #ifdef HAVE_OVERLAY
if (driver.overlay) if (driver.overlay)

View File

@ -24,30 +24,6 @@
#include "frontend/menu/menu_common.h" #include "frontend/menu/menu_common.h"
#endif #endif
static void check_mute(void)
{
const char *msg = !g_extern.audio_data.mute ?
"Audio muted." : "Audio unmuted.";
if (!driver.audio_data || !driver.audio_active)
return;
g_extern.audio_data.mute = !g_extern.audio_data.mute;
msg_queue_clear(g_extern.msg_queue);
msg_queue_push(g_extern.msg_queue, msg, 1, 180);
if (g_extern.audio_data.mute)
rarch_main_command(RARCH_CMD_AUDIO_STOP);
else if (!rarch_main_command(RARCH_CMD_AUDIO_START))
{
RARCH_ERR("Failed to unmute audio.\n");
driver.audio_active = false;
}
RARCH_LOG("%s\n", msg);
}
static void set_volume(float gain) static void set_volume(float gain)
{ {
char msg[256]; char msg[256];
@ -425,7 +401,7 @@ static int do_state_checks(
rarch_main_command(RARCH_CMD_TAKE_SCREENSHOT); rarch_main_command(RARCH_CMD_TAKE_SCREENSHOT);
if (BIT64_GET(trigger_input, RARCH_MUTE)) if (BIT64_GET(trigger_input, RARCH_MUTE))
check_mute(); rarch_main_command(RARCH_CMD_AUDIO_MUTE_TOGGLE);
if (BIT64_GET(input, RARCH_VOLUME_UP)) if (BIT64_GET(input, RARCH_VOLUME_UP))
set_volume(0.5f); set_volume(0.5f);