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

📄 spi_api.c

📁 三星ic 9980的源代码. 718版.
💻 C
📖 第 1 页 / 共 5 页
字号:

void VFD_state_refresh_3( )
{
      LCD_objectSendcommand(LCD_RC_256);
	LCD_objectSendcommand(LCD_SYS_EN);   
	//LCD_objectSendcommand(LCD_IRQ_DIS);
	LCD_objectSendcommand(LCD_BIAS);
	//LCD_objectSendcommand(DIS_TBT);
	//LCD_objectSendcommand(DIS_WDT);
	//LCD_objectSendcommand(LCD_OFF_TONE);
	LCD_objectSendcommand(LCD_LCD_ON);
	LCD_objectSendcommand(LCD_NORMAL);
#ifdef display_mode1
        VFD_next_state = VFD_state_refresh_01_plugin;//VFD_state_refresh_0;
#else
	VFD_next_state = VFD_state_refresh_0;
#endif
}
const unsigned char vfd_addr[12] = { 28,26,  24,22,  20,18,  16,15,  12,10,  8,6 };
void print_vfd_msg(unsigned char no, unsigned char data)
{
		
	if(SysGetSema(&gVfd_RWSema,SYS_NO_WAIT ) == SYS_RETURN_SUCCESS )
	{
        	 if (no%2==0){
             		FpBuf[vfd_addr[no]]&=(~0xf0);
             		FpBuf[vfd_addr[no]]|=(vfd_digit[data]);
        	}else {
                 	FpBuf[vfd_addr[no]]&=(~0x70);
                	FpBuf[vfd_addr[no]]|=(vfd_digit[data]);
        	} 
		SysReleaseSema(&gVfd_RWSema );
	}
}

void vfd_disc_turn(unsigned char mode)
	{
    	static unsigned char i = 0;
    	static unsigned char jj = 0;
    	
	if(SysGetSema(&gVfd_RWSema,SYS_NO_WAIT ) == SYS_RETURN_SUCCESS )
		{

	    	if(i >= 15) i = 0;
	    	if(i % 4 ==0){
	        	jj++;
	          if(jj >=8) jj = 0;
	       	 FpBuf[2]|= 0xf0;
	       	 FpBuf[32]|= 0xf0;
	       	  //vfd_dot(1,0x75);
						}
#if 0  //YDF
	    	if(mode)
	       	 {
	       	 if(jj<4)
	       	 	//FpBuf[2] &= ~(0x80 >> jj);
	       	 	FpBuf[2] &= ~(0x10 << jj);   //YDF
	       	 else 
			 	//FpBuf[32] &= ~(0x10 <<(jj-4));
			 	FpBuf[32] &= ~(0x80 >>(jj-4));  //YDF
		}
	else
	{
	        	 FpBuf[2]|= 0xf0;
	        	 FpBuf[32]|= 0xf0;
	    		}
#else  //HTS  
            if(mode)
             {

              if(jj<3)
					FpBuf[32] &=~(0x10<<jj);
			  else if((jj>=3)&&(jj<7))
			  	    FpBuf[2] &=~(0x80>>(jj-3));
			  else FpBuf[32] &=0x7f;
					
		}
	else
	{
	        	 FpBuf[2]|= 0xf0;
	        	 FpBuf[32]|= 0xf0;
	    		}
#endif
                
            
	   	 i++;
	    	switch (i) 
		{
	        	case 1:
	            		vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
				break;
	        	case 8:
	            		vfd_dot(VFD_DOT_OFF, VFD_DOT_COLON);
	            		break;
	        	case 2: 
					if( SUB1_TRACK_REPEAT_ALL == Vcd_GetSub1State())
						{
						vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
						}
					       break;
	        	case 9:
					if( SUB1_TRACK_REPEAT_ALL == Vcd_GetSub1State())
						{
						vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
						}
	            	//FpBuf[VFD_DOT_PLAY / 8] |= (1 << (VFD_DOT_PLAY % 8));
	           		//FpBuf[VFD_DOT_PAUSE / 8] &= (~(1 << (VFD_DOT_PAUSE % 8)));
				break;
			default:
				break;
		}

   		SysReleaseSema(&gVfd_RWSema );
	}
}

void vfd_open(void)
{
	FPClearFp();
    print_vfd_msg(7, CHAR_O*2+1);
    print_vfd_msg(6, CHAR_O*2);


    print_vfd_msg(5, CHAR_P*2+1);
    print_vfd_msg(4, CHAR_P*2);

    print_vfd_msg(3, CHAR_E*2+1);
    print_vfd_msg(2, CHAR_E*2);
	 
    print_vfd_msg(1, CHAR_N*2+1);
    print_vfd_msg(0, CHAR_N*2);
    VfdDiscTurnF = 0;
}
void vfd_close(void)
{
    print_vfd_msg(9, CHAR_C*2+1);
    print_vfd_msg(8, CHAR_C*2);

    print_vfd_msg(7, CHAR_L*2+1);
    print_vfd_msg(6, CHAR_L*2);

    print_vfd_msg(5, CHAR_O*2+1);
    print_vfd_msg(4, CHAR_O*2);

    print_vfd_msg(3, CHAR_S*2+1);
    print_vfd_msg(2, CHAR_S*2);

    print_vfd_msg(1, CHAR_E*2+1);
    print_vfd_msg(0, CHAR_E*2);
	}
	
void vfd_nodisc(void)
{
    print_vfd_msg(11, CHAR_N*2+1);
    print_vfd_msg(10, CHAR_N*2);

    print_vfd_msg(9, CHAR_O*2+1);
    print_vfd_msg(8, CHAR_O*2);

    print_vfd_msg(7, CHAR_D*2+1);
    print_vfd_msg(6, CHAR_D*2);

    print_vfd_msg(5, CHAR_I*2+1);
    print_vfd_msg(4, CHAR_I*2);

    print_vfd_msg(3, CHAR_S*2+1);
    print_vfd_msg(2, CHAR_S*2);

    print_vfd_msg(1, CHAR_C*2+1);
    print_vfd_msg(0, CHAR_C*2);
}

void vfd_unkowndisc(void)
{
    print_vfd_msg(11, CHAR_U*2+1);
    print_vfd_msg(10, CHAR_U*2);

    print_vfd_msg(9, CHAR_N*2+2);
    print_vfd_msg(8, CHAR_N*2);

    print_vfd_msg(7, CHAR_D*2+1);
    print_vfd_msg(6, CHAR_D*2);

    print_vfd_msg(5, CHAR_I*2+1);
    print_vfd_msg(4, CHAR_I*2);

    print_vfd_msg(3, CHAR_S*2+1);
    print_vfd_msg(2, CHAR_S*2);

    print_vfd_msg(1, CHAR_C*2+1);
    print_vfd_msg(0, CHAR_C*2);
}
#if over_100  
void vfd_show_over100(USHORT number)
{
   USHORT T_number;
   T_number=number;
	if(T_number==1)
		{
			FpBuf[6] |=0x80;
			FpBuf[10] &=0x7f;
			FpBuf[15] &=0x7f;
			FpBuf[31] &=0x8f;
			FpBuf[31] |=0x40;
		}

   else if(T_number==2)
		{
		    FpBuf[6] &=0x7f;
			FpBuf[10] |=0x80;
			FpBuf[15] &=0x7f;
			FpBuf[31] &=0x8f;
			FpBuf[31] |=0x70;	
    	}
	else
		{
		FpBuf[15] &=0x7f;
		FpBuf[31] &=0x8f;
		FpBuf[10] &=0x7f;
		 FpBuf[6] &=0x7f;
		}
		}

#endif
void vfd_show_time(USHORT cd_disp_trk , ULONG32 time)
{
    	unsigned char cd_disp_hh,cd_disp_mm,cd_disp_ss;
    	ULONG32	CurrentTime;
		if(Vcd_GetMainState()==MAIN_STOP)
    	CurrentTime = time;
		else{
		if( TRK_ELAPSE_TIME == gVcdDisplayTime)
				CurrentTime = VcdGetCurSec();
			else if( TRK_REMAIN_TIME == gVcdDisplayTime)
				CurrentTime = VcdGetRemSecInTrk();
			else
				CurrentTime = VcdGetRemSecInDisc();
			}


    	
	//cd_disp_hh =  (unsigned char) (CurrentTime/3600);
	//cd_disp_mm =  (unsigned char) ((CurrentTime%3600)/60);
	cd_disp_mm =  (unsigned char) ((CurrentTime)/60);
	cd_disp_ss =  (unsigned char) (CurrentTime%60);
	//cd_disp_trk = (unsigned char) (gVcdTrackInfo.CurrTrack_no);
#if over_100
    
     if(cd_disp_trk>99)  //for MP3
        {
        vfd_show_over100(cd_disp_trk/100);

        print_vfd_msg(11, ((cd_disp_trk-100) / 10)*2+1);
        print_vfd_msg(10, ((cd_disp_trk-100) / 10)*2);

        print_vfd_msg(9, ((cd_disp_trk-100) % 10)*2+1);
        print_vfd_msg(8, ((cd_disp_trk-100) % 10)*2);
        	}
	else
		{
		 if(VcdGetTrackType()==DATA_CD_TRACK)
     	{
		vfd_show_over100(0);
		}
#endif

        print_vfd_msg(11, (cd_disp_trk / 10)*2+1);
        print_vfd_msg(10, (cd_disp_trk / 10)*2);

        print_vfd_msg(9, (cd_disp_trk % 10)*2+1);
        print_vfd_msg(8, (cd_disp_trk % 10)*2);
#if over_100		
		}
#endif
        print_vfd_msg(7, (cd_disp_mm / 10)*2+1);
        print_vfd_msg(6, (cd_disp_mm / 10)*2);

        print_vfd_msg(5, (cd_disp_mm % 10)*2+1);
        print_vfd_msg(4, (cd_disp_mm % 10)*2);

        print_vfd_msg(3, (cd_disp_ss / 10)*2+1);
        print_vfd_msg(2, (cd_disp_ss / 10)*2);

        print_vfd_msg(1, (cd_disp_ss % 10)*2+1);
        print_vfd_msg(0, (cd_disp_ss % 10)*2);
}



void vfd_normal_state(void)
{
    	ULONG32	CurrentTime;
	    	CurrentTime = VcdGetCurSec();
            	vfd_show_time(gVcdTrackInfo.CurrTrack_no , CurrentTime);
             	//vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
             	//vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
}
void vfd_readtoc(void)
{
	FPClearFp();
  #if 0
	print_vfd_msg(0, CHAR_DASH*2);
       print_vfd_msg(2, CHAR_DASH*2);
       print_vfd_msg(4, CHAR_DASH*2);
       print_vfd_msg(6, CHAR_DASH*2);

       print_vfd_msg(8, CHAR_DASH*2);
       print_vfd_msg(10, CHAR_DASH*2);
       //print_vfd_msg(6, CHAR_DASH);
       //print_vfd_msg(7, CHAR_DASH);             	
 #else
    print_vfd_msg(9, CHAR_C*2+1);
    print_vfd_msg(8, CHAR_C*2);

    print_vfd_msg(7, CHAR_L*2+1);
    print_vfd_msg(6, CHAR_L*2);

    print_vfd_msg(5, CHAR_O*2+1);
    print_vfd_msg(4, CHAR_O*2);

    print_vfd_msg(3, CHAR_S*2+1);
    print_vfd_msg(2, CHAR_S*2);

    print_vfd_msg(1, CHAR_E*2+1);
    print_vfd_msg(0, CHAR_E*2);
#endif
}



void vfd_mp3(void)
{
	vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
}

void vfd_repeatOne(void)
	{
	vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
	}
void vfd_repeatAll(void)
{

}
void vfd_repeatOff(void)
{
	vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
}
void vfd_mp3_stop(void)
{
  #if Mp3_Total
    vfd_show_time(gMp3TotalFile,0);
  #endif
	vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
	VfdDiscTurnF = 0;
}
#if 0//KeLong VCD-2000
unsigned char FpKeyArray[]={
	KEY_NUM1,	KEY_SCAN_REV,	KEY_NULL,	KEY_NTSCPAL,	
	KEY_NUM4,	KEY_SKIP_BACK,	KEY_STOP,	KEY_OPEN_CLOSE,	//00-07
	
	KEY_NUM7,	KEY_NUM0, KEY_NUM7,	KEY_SKIP_NEXT,
		
	KEY_NUM8,	  KEY_10PLUS,	KEY_NUM9,
	
	#if SEPERATE_PLAY_PAUSE   //08-0F
	KEY_PLAY,
	#else
    KEY_PLAY_PAUSE, 
    #endif		
         
	
	
    KEY_NUM5, KEY_SKIP_NEXT,	KEY_NUM6,	KEY_AUDIO,	//10-17
	KEY_NUM2,  KEY_SCAN_FWD,	KEY_NUM3,	KEY_NULL,

	KEY_NULL,	KEY_NUM5,	KEY_NULL,	KEY_NULL,	//18-1F
	KEY_NULL,	KEY_NUM2,	KEY_NULL,	KEY_NUM3,
#if 0
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//20-27
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//28-2F
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//30-37
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
#endif
};
#endif 

#if 0//KeLong VCD-S638
unsigned char FpKeyArray[]={
	
 #if SEPERATE_PLAY_PAUSE
	 KEY_PLAY,
 #else
	 KEY_PLAY_PAUSE, 
 #endif		 
	
	KEY_SCAN_REV,	KEY_NULL,	KEY_NTSCPAL,	
	KEY_NUM4,	KEY_SKIP_BACK,	KEY_STOP,	KEY_OPEN_CLOSE,	//00-07
	
	KEY_NUM7,	KEY_5PLUS_FP,	
	#if SEPERATE_PLAY_PAUSE
	KEY_PLAY,
	#else
	KEY_PLAY_PAUSE, 
   #endif		
#if SEPERATE_PLAY_PAUSE
			KEY_PLAY,
#else
			KEY_PLAY_PAUSE, 
#endif	
		
	KEY_NULL,	  KEY_AUDIO,	KEY_STOP,
	
	#if SEPERATE_PLAY_PAUSE   //08-0F
	KEY_PLAY,
	#else
    KEY_PLAY_PAUSE, 
    #endif		
         
	
	
    KEY_5PLUS_FP, KEY_SKIP_NEXT,	KEY_5PLUS_FP,	KEY_AUDIO,	//10-17
	KEY_STOP,  KEY_SCAN_FWD,	KEY_NTSCPAL,	KEY_NULL,

	KEY_NULL,	KEY_NUM5,	KEY_NULL,	KEY_NULL,	//18-1F
	KEY_NULL,	KEY_NUM2,	KEY_NULL,	KEY_NUM3,
#if 0
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//20-27
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//28-2F
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//30-37
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
#endif
};
#endif 

#if 1//KeLong VCD-S588
unsigned char FpKeyArray[]={
	KEY_NUM1,	KEY_SCAN_REV,	KEY_NULL,	KEY_NTSCPAL,	
	KEY_NUM2,	KEY_SKIP_BACK,	KEY_STOP,	KEY_OPEN_CLOSE,	//00-07
	
	KEY_NUM7,	KEY_5PLUS_FP,	
	//#if SEPERATE_PLAY_PAUSE
	//KEY_PLAY,
	//#else
	KEY_PLAY_PAUSE, 
  // #endif		
//#if SEPERATE_PLAY_PAUSE
		//	KEY_PLAY,
//#else
			KEY_PLAY_PAUSE, 
//#endif	
		
	KEY_NULL,	  KEY_5PLUS_FP,	KEY_STOP,
	
	//#if SEPERATE_PLAY_PAUSE   //08-0F
	//KEY_PLAY,
	//#else
    KEY_PLAY_PAUSE, 
   // #endif		
         
	
	
    KEY_NUM3, KEY_SKIP_NEXT,	KEY_5PLUS_FP,	KEY_AUDIO,	//10-17
	KEY_NUM2,  KEY_SCAN_FWD,	KEY_NUM1,	KEY_NULL,

	KEY_NULL,	KEY_NUM5,	KEY_NULL,	KEY_NULL,	//18-1F
	KEY_NULL,	KEY_NUM2,	KEY_NULL,	KEY_NUM3,
#if 0
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//20-27
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//28-2F
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//30-37
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
#endif
};
#endif 

#if 0//KeLong VCD-S182
unsigned char FpKeyArray[]={
	KEY_NUM1,	KEY_SCAN_REV,	KEY_NULL,	KEY_NTSCPAL,	
	KEY_NUM4,	KEY_SKIP_BACK,	KEY_STOP,	KEY_OPEN_CLOSE,	//00-07
	
	KEY_NUM7,	KEY_SKIP_NEXT,	
	#if SEPERATE_PLAY_PAUSE
	KEY_PLAY,
	#else
	KEY_PLAY_PAUSE, 
   #endif		
#if SEPERATE_PLAY_PAUSE
			KEY_PLAY,
#else
			KEY_PLAY_PAUSE, 
#endif	
		
	KEY_NULL,	  KEY_PBC,	KEY_SKIP_BACK,
	
	#if SEPERATE_PLAY_PAUSE   //08-0F
	KEY_PLAY,
	#else
    KEY_PLAY_PAUSE, 
    #endif		
         
	
	
    KEY_NUM5, KEY_SKIP_NEXT,	KEY_5PLUS_FP,	KEY_AUDIO,	//10-17
	KEY_NUM2,  KEY_SCAN_FWD,	KEY_NUM3,	KEY_NULL,

	KEY_NULL,	KEY_NUM5,	KEY_NULL,	KEY_NULL,	//18-1F
	KEY_NULL,	KEY_NUM2,	KEY_NULL,	KEY_NUM3,
#if 0
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//20-27
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//28-2F
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//30-37
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,
#endif
};
#endif 

#if 0//THS_A1 normal 5+ 2005-11-28
unsigned char FpKeyArray[]={
	KEY_NUM1,	KEY_SCAN_REV,	KEY_NULL,	KEY_NTSCPAL,	
	KEY_NUM4,	KEY_SKIP_BACK,	KEY_STOP,	KEY_OPEN_CLOSE,	//00-07
	
	KEY_NUM7,	KEY_5PLUS_FP,	
	#if SEPERATE_PLAY_PAUSE
	KEY_PLAY,
	#else
	KEY_PLAY_PAUSE, 
   #endif		
#if SEPERATE_PLAY_PAUSE
			KEY_PLAY,
#else
			KEY_PLAY_PAUSE, 
#endif	
		
	KEY_NULL,	  KEY_5PLUS_FP,	KEY_STOP,
	
	#if SEPERATE_PLAY_PAUSE   //08-0F
	KEY_PLAY,
	#else
    KEY_PLAY_P

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -