diff --git a/Global/Global.c b/Global/Global.c index 40ea37e..113b8b2 100644 --- a/Global/Global.c +++ b/Global/Global.c @@ -96,7 +96,8 @@ const Touch_AreaTypeDef Touch_Areas[] = { 185, 239, 280, 319, 0, UI0902_NAV_SETTING, GUI_NAV_BAR, NULL }, }; -int16_t MIC_VOL_MAP[10]= {-9000,-7000,-5000,-3000,-1000,1000,3000,5000,7000,9000}; +/* 推子 0~10 共 11 档;档10 取 AW816 上限附近 */ +int16_t MIC_VOL_MAP[11]= {-9000,-7000,-5000,-3000,-1000,1000,3000,5000,7000,9000,1200}; uint8_t TOUCH_AREA_NUM = (sizeof(Touch_Areas)/sizeof(Touch_AreaTypeDef)); diff --git a/Global/Global.h b/Global/Global.h index 955d255..1087ac1 100644 --- a/Global/Global.h +++ b/Global/Global.h @@ -177,7 +177,7 @@ extern uint8_t key_toggle[4]; extern bool StartFlag; -extern int16_t MIC_VOL_MAP[10]; +extern int16_t MIC_VOL_MAP[11]; extern const uint8_t Version[3]; extern uint8_t AutoCloseTime; extern uint16_t mAutoPowerOffCount; diff --git a/UI/UI_Idle.c b/UI/UI_Idle.c index 77e1590..9de7e4d 100644 --- a/UI/UI_Idle.c +++ b/UI/UI_Idle.c @@ -106,7 +106,7 @@ extern uint8_t channel; extern uint8_t level; extern bool powon; extern bool InModeFlag; -extern int16_t MIC_VOL_MAP[10]; +extern int16_t MIC_VOL_MAP[11]; extern int8_t delta; extern STRING_MIDI USE_MIDI; void LoadConfig(void) diff --git a/UI/UI_Mixer.c b/UI/UI_Mixer.c index f656f59..0dbe1d4 100644 --- a/UI/UI_Mixer.c +++ b/UI/UI_Mixer.c @@ -34,28 +34,22 @@ void DrawFader(Fader_t *f) f->prev_slider_y = slider_y; } +/* 四路推子写入 NVM 参数(仅 RAM;落盘由 save 调用方决定) */ +static void SyncMixerFadersToNvm(void) +{ + NvmParam_Type *nvm = drv_nvm_param_ptr(); + nvm->param.BandVol = faders[0].val; + nvm->param.StringVol = faders[1].val; + nvm->param.MIcVol = faders[2].val; + nvm->param.MicRev = faders[3].val; +} + void DrawAllFaders(void) { - NvmParam_Type * nvm = drv_nvm_param_ptr(); for (int i = 0; i < 4; i++) { DrawFader(&faders[i]); } - if(nvm->param.BandVol != faders[0].val) - { - nvm->param.BandVol = faders[0].val; - } - if(nvm->param.StringVol != faders[1].val) - { - nvm->param.StringVol = faders[1].val; - } - if(nvm->param.MIcVol != faders[2].val) - { - nvm->param.MIcVol = faders[2].val; - } - if(nvm->param.MicRev != faders[3].val) - { - nvm->param.MicRev = faders[3].val; - } + SyncMixerFadersToNvm(); drv_nvm_save_to_flash(); } @@ -150,6 +144,8 @@ void UpdateFaderByTouch(int idx, uint16_t y) AW816_Set_Reverb(f->val * 10); break; } + /* 即时生效同时更新 NVM 镜像;返回/关机时落盘 */ + SyncMixerFadersToNvm(); } // ============================================================ @@ -214,8 +210,11 @@ void UI_Mixer_Process(DisplayTaskMessage_Type msg) if( tx >= Touch_Mixer_Areas[i].x_min && tx <= Touch_Mixer_Areas[i].x_max && ty >= Touch_Mixer_Areas[i].y_min && ty <= Touch_Mixer_Areas[i].y_max ) { - if (Touch_Mixer_Areas[i].ID == GUI_CANCEL) + if (Touch_Mixer_Areas[i].ID == GUI_CANCEL) { + SyncMixerFadersToNvm(); + drv_nvm_save_to_flash(); MenuPage_SystemSetting_Proc(); + } break; } }