#include "includes.h" void UI_FreeMode_Init(void) { // CurrentMode = 2; mGuiData[GUI_TAB_INDEX].Current = 2; mGuiData[GUI_TAB_LAST_INDEX].Current = mGuiData[GUI_TAB_INDEX].Current; //mGuiData[GUI_AUTOBAND_SW].Current = 1; Show_home_UI(); pCurrentTouch_Area = Touch_Areas; } void UI_FreeMode_Process(DisplayTaskMessage_Type msg) { NvmParam_Type * nvm = drv_nvm_param_ptr(); switch(msg.MessageType) { case MSG_ID_TOUCH: for(uint8_t k=0; k= pCurrentTouch_Area[k].x_min && msg.HiByte <= pCurrentTouch_Area[k].x_max && msg.LoByte >= pCurrentTouch_Area[k].y_min && msg.LoByte <= pCurrentTouch_Area[k].y_max ) { Touch_Action(pCurrentTouch_Area[k].Flag,pCurrentTouch_Area[k].ID,k,pCurrentTouch_Area[k].Value); ResetAutoPowerCount(); break; } } break; case MSG_ID_BATTERY_VALUE: Draw_Status_Battery_Icon(percentage); break; case MSG_ID_TAP_SPEED: { //uint8_t last_value = mGuiData[GUI_SPEED].Current; mGuiData[GUI_SPEED].Current = msg.ID; if (!UI_SetFocus(GUI_SPEED)) Refresh_Transpose(&UI_Label[GUI_SPEED], &mGuiData[GUI_SPEED]); uint8_t Speed[6] = {0xF0, 0x51, 0x03, 0x00, 0x00, 0xF7}; Speed[3] = mGuiData[GUI_SPEED].Current / 128; Speed[4] = mGuiData[GUI_SPEED].Current % 128; USART4_SendData(Speed,sizeof(Speed)); //AutoBandTop1_ChangeBPM(mGuiData[GUI_SPEED].Current); // AutoBand 模块未加入工程 ResetAutoPowerCount(); } break; case MSG_ID_EC_VOL: //LCD_ShowString(200, 0, Num_To_String(msg.DataU16[1],buff,3), RED, WHITE, 16, 0); // uint8_t vol = msg.DataU16[1]; //// uint8_t level; // if (vol <= 5) level = 0; // else if (vol <= 35) level = 1; // else if (vol <= 65) level = 2; // else if (vol <= 95) level = 3; // else if (vol <= 115) level = 4; // else level = 5; // Draw_Volume_Bar(5, 5, level, 1, WHITE, GRAY); // uint8_t mMasterSysExVolume[12] = { 0xF0, 0x41, 0x00, 0x42, 0x12, 0x40, 0x00, 0x04, 0x64, 0x00, 0x00,0xF7}; // memset(mMasterSysExVolume+8,msg.DataU16[1],1); // SendMidiDataToDreamDSP(mMasterSysExVolume,12); // ResetAutoPowerCount(); break; case MSG_ID_TOUCH_LONG_REPEAT: { for(uint8_t k=0; k= pCurrentTouch_Area[k].x_min && msg.HiByte <= pCurrentTouch_Area[k].x_max && msg.LoByte >= pCurrentTouch_Area[k].y_min && msg.LoByte <= pCurrentTouch_Area[k].y_max ) { if(pCurrentTouch_Area[k].ID == GUI_SPEED) { int flag = pCurrentTouch_Area[k].Flag; uint8_t last = mGuiData[GUI_SPEED].Current; if(flag == 1) { if(mGuiData[GUI_SPEED].Current < 260) { mGuiData[GUI_SPEED].Current += 10; if(mGuiData[GUI_SPEED].Current > 260) mGuiData[GUI_SPEED].Current = 260; } else { break; } } else if(flag == -1) { if(mGuiData[GUI_SPEED].Current > 40) { mGuiData[GUI_SPEED].Current -= 10; if(mGuiData[GUI_SPEED].Current < 40) mGuiData[GUI_SPEED].Current = 40; }else { break; } } // 只有数值真正改变,才执行全套刷新、串口、伴奏更新 if(last != mGuiData[GUI_SPEED].Current) { Refresh_Transpose(&UI_Label[GUI_SPEED], &mGuiData[GUI_SPEED]); if(nvm->param.BPM != mGuiData[GUI_SPEED].Current) { nvm->param.BPM = mGuiData[GUI_SPEED].Current; } uint8_t Speed[6] = {0xF0, 0x51, 0x03, 0x00, 0x00, 0xF7}; Speed[3] = mGuiData[GUI_SPEED].Current / 128; Speed[4] = mGuiData[GUI_SPEED].Current % 128; USART4_SendData(Speed,sizeof(Speed)); //AutoBandTop1_ChangeBPM(mGuiData[GUI_SPEED].Current); } // 超时计数无论变不变都可以重置,看你需求 ResetAutoPowerCount(); } break; } } } break; case MSG_ID_BP_TRANSPOSE: { //uint8_t lastvalue = mGuiData[GUI_TRANSPOSE].Current; if(mGuiData[GUI_TRANSPOSE].Current != msg.ID) { mGuiData[GUI_TRANSPOSE].Current = msg.ID; if (!UI_SetFocus(GUI_TRANSPOSE)) Refresh_Transpose(&UI_Label[GUI_TRANSPOSE], &mGuiData[GUI_TRANSPOSE]); } if(nvm->param.Transpose != mGuiData[GUI_TRANSPOSE].Current) { nvm->param.Transpose = mGuiData[GUI_TRANSPOSE].Current; } // delta = new_trans - lastvalue; /* 使用正确�??? lastvalue */ // // USE_MIDI.Midi_1 += delta; // USE_MIDI.Midi_2 += delta; // USE_MIDI.Midi_3 += delta; // USE_MIDI.Midi_4 += delta; // USE_MIDI.Midi_5 += delta; // USE_MIDI.Midi_6 += delta; // if(/*KEY_ID_1629 != 0 && */KEY_ID_1629 != 22 && KEY_ID_1629 != 23) // { // if(StartFlag) // { uint8_t midi = 0x3c; midi += mGuiData[GUI_TRANSPOSE].Current; //AutoBandTop1_Note_On(midi,0x3c); // AutoBand 模块未加入工程 // uint8_t midi_note_buff[4] = {0,}; // AutoBandTop1_StartWithNotes(midi_note_buff,GetChordNotesByType(KEY_ID_1629,chord_type_index_map[KEY_ID_1629].type,midi_note_buff)); //} // } ResetAutoPowerCount(); } break; } //drv_nvm_save_to_flash(); }