⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uiflow.c

📁 凌阳MP3 spSPCA755yuanma
💻 C
📖 第 1 页 / 共 3 页
字号:
	    {
	       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 + -