174 lines
7.1 KiB
C
174 lines
7.1 KiB
C
#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<TOUCH_AREA_NUM; k++)
|
||
{
|
||
if( msg.HiByte >= 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:
|
||
// if(usb_charging_state)
|
||
// {
|
||
// Draw_Battery_Icon(180, 5, msg.DataU16[1], 1, GREEN, BLACK, GREEN);
|
||
// }else
|
||
// {
|
||
// Draw_Battery_Icon(180, 5, msg.DataU16[1], 1, WHITE, BLACK, WHITE);
|
||
// }
|
||
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<TOUCH_AREA_NUM; k++)
|
||
{
|
||
if( msg.HiByte >= 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; /* 使用正确<E6ADA3>??? 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();
|
||
}
|
||
|