📄 uiflow.c
字号:
{
case MSPL10Key_PowerOff:
G_EVENT=P_STOP;
break;
case MSPL10Key_FR2:
G_EVENT=P_FR;
break;
case MSPL10Key_FF2: //
G_EVENT=P_FF;
break;
case MSPL10Key_Menu: //Menu Function for Delete file/Format Disc ...
G_EVENT=P_MODE;
break;
case MSPL10Key_EQ:
G_EVENT=P_VOLUP;
break;
case MSPL10Key_PLAYNO://Play all repeat
G_EVENT=P_PLAY;
break;
case MSPL10Key_AB:
G_EVENT=P_VOLDOWN;
break;
default:
break;
}*/
}//2
else if(G_SPressingKey) //short term
{//2
G_EVENT=SPL10Key_Table[G_SPressingKey&0x0f];
/*switch(G_SPressingKey)
{
case MSPL10Key_FF:
G_EVENT=R_FF;
break;
case MSPL10Key_FR:
G_EVENT=R_FR;
break;
case MSPL10Key_Play://Play&REC one,Play one repeat
G_EVENT=R_PLAY;
break;
case MSPL10Key_VolUp:
G_EVENT=R_VOLUP;
break;
case MSPL10Key_VolDown:
G_EVENT=R_VOLDOWN;
break;
case MSPL10Key_Mode: // Mode Switch function: MP3->Voice->Record->MP3 ...
G_EVENT=R_MODE;
break;
case MSPL10Key_Stop://now stop key is EQ key
G_EVENT=R_STOP;
break;
default:
break;
}*/
}//2
else
{//2
G_EVENT=0;
}//2
//xyq add 021226 for display
if(G_EVENT) G_DisplayEvent_Happened=1;
G_SPressingKey=0x00;
//}//1
#endif
}
//----------------------------------------------------------------------------------
void VolUpDown()
{
if(G_EVENT==R_VOLUP || G_EVENT==P_VOLUP)
{
if(G_DSP_Volume<K_DSP_VolumeMax) G_DSP_Volume++;
}else{
if(G_DSP_Volume) G_DSP_Volume--;
}
L2_DSP_setVolume(G_DSP_Volume*2);
LCD10_Disp_VOL_LEVEL(G_DSP_Volume);
G_Busy_Timer = 16; //two seconds
G_ShowNowSongNumberFG=true;
}
//
void UI_GetFileTotalTime(void)
{
USHORT bitrate;
#if (SPCA757_OPTION==0)
ULONG stortmp;
#endif
if(G_UIMODE==0x01)
{
if(_G723==FALSE)//ADPCM
G_FileTotalSecond=((G_total_sectorNUM+1)*125)/1000;
else //if(_G723==TRUE)//G723
G_FileTotalSecond = (((G_total_sectorNUM)*54)/100);
}
#if (SPCA757_OPTION==0)
else if(_WMA==TRUE)
{//WMA
stortmp = L2_DSP_Read_DMem24(DSP_MPEGst);
stortmp = stortmp & 0x0FFFFF;
bitrate = (stortmp>>8)/10;
//=== total sec ===//
G_FileTotalSecond=(((G_DOS_FileSize/bitrate)<<3)/1000);
}
#endif
else
{//MP3
L2_DSP_Write_DMem16(DSP_CmdReady,0);
L2_DSP_SendCommandSet(DCMD_AskBitrate); //bitrate index: 0xC0
while(L2_DSP_Read_DMem16(DSP_CmdReady)!=1);
bitrate=L2_DSP_Read_DMem16(DSP_MP3BitRate);
G_FileTotalSecond = (G_DOS_FileSize>>7)/bitrate;
//((G_total_sectorNUM+1)<<2)/bitrate;
}
}
//----------------------------------------------------------------------------------
void UI_FastForBackward()
{//@@chchang_012203
UCHAR sts;
USHORT tmp;
USHORT bitrate;
#if (SPCA757_OPTION==0)
ULONG stortmp;
#endif
if(!_FastFFFR)
{
_FastFFFR=TRUE;
G_STATE=STATE_FF;
if((G_UIMODE==0x00)&(_WMA==FALSE))
{
G_DSPPrimeMODE=KDSP_MP3_MODE;
}
#if (SPCA757_OPTION==0)
else if((G_UIMODE==0x00)&(_WMA==TRUE))
{
G_DSPPrimeMODE=KDSP_WMA_MODE;
}
#endif
else if(G_UIMODE==0x01)
{
G_DSPPrimeMODE=KDSP_DVRD_MODE;
}
L2_DSP_CheckSongTime(G_DSPPrimeMODE); //@@chchang /decodemode
G_Currtotalsecond=(G_DISPLAY_Min*60)+G_DISPLAY_Sec;
UI_GetFileTotalTime();
//check command ready
L2_DSP_Write_DMem16(DSP_CmdReady, 0);
//patch2.2.1@chamber
if(G_DSPPrimeMODE==KDSP_DVRD_MODE)
L2_DSP_DVRD_StopCommand();
else
L2_DSP_SendCommandSet(DCMD_Stop);
//end of patch2.2.1@chamber
do
{
tmp = L2_DSP_Read_DMem16(DSP_CmdReady);
}while(tmp!=1);
ForBackWord_SecondCount=0;//add by xyq
}
//===================================
//Fast forward&backward time's count
//===================================
if(G_EVENT)
{
ForBackWord_SecondCount++;//add by xyq
if(!(ForBackWord_SecondCount%6))
{
if(G_LongKey_Speed<12) G_LongKey_Speed++;
}
}
if(G_EVENT==P_FF)
{
G_Currtotalsecond += 1;
if(G_Currtotalsecond>G_FileTotalSecond)
{
G_STATE=STATE_IDLE;
//G_EVENT=0;
_FastFFFR=FALSE;
// DbgPrint("TIME is over\n");
return;
}
}
else if(G_EVENT==P_FR)
{
G_Currtotalsecond -= 1;
if((G_Currtotalsecond<=0)||(G_Currtotalsecond>=0xFFFE))
{
G_STATE=STATE_IDLE;
//G_EVENT=0;
_FastFFFR=FALSE;
// DbgPrint("TIME is 0\n");
return;
}
}
//==========================
//Count the current Min&Sec
//==========================
G_DISPLAY_Min=G_Currtotalsecond/60;
G_DISPLAY_Sec=G_Currtotalsecond%60;
//====================================
//test release point and restart play
//====================================
// if(_G_L10Key_Pressed==0 && _G_ADCKey_Pressed==0) //@@chchang_021203
if(_G_Key_Pressed==0)
{
// DbgPrint("Dbg\n");
if((G_UIMODE==0x00)&(_WMA==FALSE))
{//MP3 default
L2_DSP_SendCommandSet(DCMD_AskBitrate);
bitrate=L2_DSP_Read_DMem16(DSP_MP3BitRate);
G_sectorNUM=((ULONG)G_Currtotalsecond*(bitrate>>2));
}
#if (SPCA757_OPTION==0)
else if((G_UIMODE==0x00)&(_WMA==TRUE))
{//WMA //@@chchang_012903
stortmp=L2_DSP_Read_DMem24(DSP_MPEGst); //MPEG STATUS
stortmp=stortmp & 0x0FFFFF;//@@
bitrate=(stortmp>>8);
stortmp=((ULONG)bitrate*100)>>3;
G_sectorNUM=(((ULONG)G_Currtotalsecond)*stortmp)>>9;
G_sectorNUM+=10; //@@chchang_021103
}
#endif
else if((G_UIMODE==0x01)&(_G723==FALSE))
{//ADPCM
G_sectorNUM=((ULONG)G_Currtotalsecond*1000)/125;
}
else if((G_UIMODE==0x01)&(_G723==TRUE))
{//G723
G_sectorNUM=((ULONG)G_Currtotalsecond*100)/54;
}
//===================
//Search new cluster
//===================
G_searchCluster = USR_File_Seek(G_sectorNUM); //@@chchang_021003
#if (SPCA757_OPTION==0)
if(_WMA!=1)
#endif
L2_DSP_SetDecodeMode(G_DSPPrimeMODE);
MCUSTDAdress = 0;
//Play continue
sts = L2_DSP_SendCommandSet(DCMD_Play);
#if (SPCA757_OPTION==0)
if(_WMA==1)
{//@@chchang_021103
L2_DSP_Write_DMem16(DSP_WMACrtlReg0,0);
L2_DSP_Write_DMem16(DSP_WMARndAcc,1);
L2_DSP_Write_DMem16(DSP_WMAPageCnt,G_sectorNUM);
}
#endif
G_STATE=STATE_PLAY;
// G_EVENT=0;
_FastFFFR=FALSE;
G_LongKey_Speed=9;//add by xyq
}
}
//----------------------------------------------------------------------------------
/*void LED_Blink(bit BlinkLEDA,bit BlinkLEDB)
{
if(!G_LED_Blink_On_Timer || !G_USBReadWriteCount)//turn on LED
{
G_USBReadWriteCount=3;
if(G_LED_BlinkFG)
{
if(BlinkLEDA) DbgP16=0;//A LED ON MP3 Mode
if(BlinkLEDB) DbgP17=0;//B LED ON DVR Mode
G_LED_Blink_On_Timer=1;//LED ON 1*125mS
}else{
if(BlinkLEDA) DbgP16=1;//A LED OFF MP3 Mode
if(BlinkLEDB) DbgP17=1;//B LED OFF DVR Mode
G_LED_Blink_On_Timer=3;//LED OFF 3*125mS
}
G_LED_BlinkFG=~G_LED_BlinkFG;
}
}*/
//----------------------------------------------------------------------------------
//@@chchang_012203 void Rep_AB_Goto_Apoint_To_Play();
void Rep_AB() USING_0
{//@@chchang_021103
G_AB_Cnt=(G_AB_Cnt+1)%3;
switch(G_AB_Cnt)
{
case 0: //Clear A-B Play
LCD10_Disp_Apoint(OFF);
LCD10_Disp_Bpoint(OFF);
break;
case 1: //repeat A playing
G_ASectorNUM = L2_DSP_Read_DMem16(DSP_ResBuffer); //buffer status
G_ASectorNUM = (G_ASectorNUM>>8); //count the buffer sector number
G_SPL_BlinkTimer = 0;
G_ASectorNUM = G_sectorNUM-G_ASectorNUM; // Keep the current sector Num for A
G_AsearchCluster = USR_File_Seek(G_ASectorNUM); // Keep the Current searchCluster
if(G_DSPPrimeMODE==KDSP_DVRD_MODE)
{
G_AFrameCnt = L2_DSP_Read_DMem24(DSP_PlayDvrFrac);
}
else if (G_DSPPrimeMODE==KDSP_MP3_MODE)
{
G_AFrameCnt = L2_DSP_Read_DMem24(DSP_FrameCnt);
}
LCD10_Disp_Apoint(ON);
break;
case 2: //repeat B playing
G_BSectorNUM = G_sectorNUM; // Keep the current sector Num for B
G_BsearchCluster = G_searchCluster; // Keep the Current searchCluster
Rep_AB_Goto_Apoint_To_Play();
LCD10_Disp_Bpoint(ON);
break;
default:
break;
}
}
//----------------------------------------------------------------------------------
void Playing_To_Stop()
{
File_Close(1, NULL, K_DOS_ReadFile, 0); //chamber@030120
//patch2.2.1@chamber
if(G_DSPPrimeMODE==KDSP_DVRD_MODE)
L2_DSP_DVRD_StopCommand();
else
L2_DSP_SendCommandSet(DCMD_Stop);
//end of patch2.2.1@chamber
#if (SPCA757_OPTION==0)
if(_WMA)
{
G_DSP_MIPSClock = L2K_DSP24MIPS; //@@chchang_020603
L2_DSP_MIPSSelect(G_DSP_MIPSClock);
_WMA=0; //@@chchang_012803
}
#endif
//L2_Clear_DSP_PCMBuffer(G_DSPPrimeMODE);
}
//----------------------------------------------------------------------------------
void Reset_LED()
{
//if(G_UIMODE==0x00)
// {
//MP3 mode
// DbgP16=0;//A LED ON MP3 Mode
// DbgP17=1;//B LED OFF DVR Mode
// }else{
//DVRD mode
DbgP16=1;//A LED OFF MP3 Mode
// DbgP17=0;//B LED ON DVR Mode
// }
}
//------------------------------------------------------------------------
//
void Get_Free_Time(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -