尝试在发现耳机插入后切换音频输出设备

This commit is contained in:
anod 2022-11-23 12:25:50 +08:00
parent 15a8ab234b
commit ef72e9772a
3 changed files with 12 additions and 15 deletions

View File

@ -55,9 +55,4 @@ void CODEC_wakeup(void);
*/
bool CODEC_getRawAdcData(CdcAdcData *data);
/**
* @brief Get the headphone connect state
*
* @return Returns true if headphone is connected
*/
u8 CODEC_isHeadsetUsing(void);
void CODEC_soundSwitchOutput(void);

View File

@ -759,7 +759,14 @@ bool CODEC_getRawAdcData(CdcAdcData *data)
return false;
}
u8 CODEC_isHeadsetUsing(void)
void CODEC_soundSwitchOutput(void)
{
return readReg(CDC_REG_100_44) & 3u;
static u8 headset = 0;
u8 state = readReg(CDC_REG_100_44) & 3u;
if( state != headset )
{
headset = state;
if( headset ) maskReg( CDC_REG_HEADSET_SEL, HEADSET_SEL_HP, 0xff);
else maskReg( CDC_REG_HEADSET_SEL, HEADSET_SEL_SP, 0xff);
}
}

View File

@ -168,7 +168,6 @@ static atp_error_t config_item( atp_callerdata_t, atp_counter_t index, atp_itemc
{
const char *scaler_val[] = {"上屏无缩放", "上屏GPU放大", "上屏DMA放大", "下屏无缩放"};
const char *savetype_name[] = {"和卡带序列号一致", "读取ROM的特定标记", "汉化带SRAM补丁", "自行决定"};
const char *headphone_name[] = {"", "", "", ""};
static char buf[16];
cfg->extra_text_color = ATP_COLOR_GREEN;
if( index == 0 )
@ -194,11 +193,6 @@ static atp_error_t config_item( atp_callerdata_t, atp_counter_t index, atp_itemc
cfg->text = "存档方案";
cfg->extra_text = savetype_name[g_oafConfig.savePolicy];
}
else
{
cfg->text = "耳机状态";
cfg->extra_text = headphone_name[CODEC_isHeadsetUsing()];
}
cfg->value = index;
return ATP_SUCCESS;
}
@ -262,7 +256,7 @@ atp_error_t oaf_config_page()
title, sizeof(title),
"参数配置           当前电量:%3d%%"
"每次开机存档方案重置为“和卡带序列号一致”,这个方案会优先使用游戏最后一次启动时设置的存档类型", MCU_getBatteryLevel());
atp_error_t res = atp_select( title, 5, config_item, config_adjust, NULL, 0, 0, NULL );
atp_error_t res = atp_select( title, 4, config_item, config_adjust, NULL, 0, 0, NULL );
if( res == ATP_NO_ACTION )
{
memcpy( &g_oafConfig, prev, sizeof(g_oafConfig) );
@ -785,6 +779,7 @@ static void gbaGfxHandler(void *args)
GFX_swapFramebufs();
//if(hidKeysDown() == (KEY_Y | KEY_SELECT)) dumpFrameTex();
CODEC_soundSwitchOutput();
}
taskExit();