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

📄 spi_api.c

📁 三星ic 9980的源代码. 718版.
💻 C
📖 第 1 页 / 共 5 页
字号:
       print_vfd_msg(5, CHAR_S);
       print_vfd_msg(6, CHAR_E);
	#if 0   
	print_vfd_msg(2, CHAR_C);
       print_vfd_msg(3, CHAR_L);
       print_vfd_msg(4, CHAR_O);
       print_vfd_msg(5, CHAR_S);
       print_vfd_msg(6, CHAR_E);

	   print_vfd_msg(2, CHAR_C);
       print_vfd_msg(3, CHAR_L);
       print_vfd_msg(4, CHAR_O);
       print_vfd_msg(5, CHAR_S);
       print_vfd_msg(6, CHAR_E);

	   print_vfd_msg(2, CHAR_C);
       print_vfd_msg(3, CHAR_L);
       print_vfd_msg(4, CHAR_O);
       print_vfd_msg(5, CHAR_S);
       print_vfd_msg(6, CHAR_E);

	   print_vfd_msg(2, CHAR_C);
       print_vfd_msg(3, CHAR_L);
       print_vfd_msg(4, CHAR_O);
       print_vfd_msg(5, CHAR_S);
       print_vfd_msg(6, CHAR_E);

	   print_vfd_msg(2, CHAR_C);
       print_vfd_msg(3, CHAR_L);
       print_vfd_msg(4, CHAR_O);
       print_vfd_msg(5, CHAR_S);
	   
       print_vfd_msg(6, CHAR_E);
	   #endif
       //print_vfd_msg(6, CHAR_DASH);
       //print_vfd_msg(7, CHAR_DASH);             	
}
void vfd_mp3(void)
{
	vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
#if LED1623_MODUL_2
	vfd_dot(VFD_DOT_ON, VFD_DOT_DB);
	vfd_dot(VFD_DOT_ON, VFD_DOT_DTS);
#endif
}
void vfd_repeatOne(void)
{
	vfd_dot(VFD_DOT_ON, VFD_DOT_REP);
}
void vfd_repeatAll(void)
{
	vfd_dot(VFD_DOT_ON, VFD_DOT_REP);
}
void vfd_repeatOff(void)
{
	vfd_dot(VFD_DOT_OFF, VFD_DOT_REP);
}
void vfd_GAME(void)
{
	   FPClearFp();

	   print_vfd_msg(6, CHAR_DASH);
       print_vfd_msg(5, CHAR_DASH);
       print_vfd_msg(4, CHAR_DASH);
       print_vfd_msg(3, CHAR_DASH);

       print_vfd_msg(2, CHAR_DASH);
       print_vfd_msg(1, CHAR_DASH);
}
void vfd_mp3_stop(void)
{
	vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
	VfdDiscTurnF = 0;
}
#if LED1623_MODUL_1
unsigned char FpKeyArray[]={                                                                /*temporarily*/
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//00-03
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//04-07
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//08-0b
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	  //0c-0f
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//10-17
	KEY_STOP,	KEY_AUDIO,	KEY_NULL,	KEY_PAUSE,
	KEY_OPEN_CLOSE
};
#endif

#if LED1623_MODUL_2
unsigned char FpKeyArray[]={                                                              
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//00-03
	KEY_OPEN_CLOSE,  KEY_SKIP_BACK,

	KEY_NULL,	KEY_AUDIO,	//04-07

	KEY_SKIP_NEXT //08-0b
};
#endif

#if LED1623_MODUL_4
#if 1 //HTS 3303
unsigned char FpKeyArray[]={                                                                /*temporarily*/
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//00-03
	KEY_OPEN_CLOSE,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//04-07
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//08-0b
	KEY_STOP,	KEY_SKIP_BACK,	KEY_NULL, KEY_PLAY_PAUSE, //0c-0f
	KEY_POWER_OFF,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//10-17
	KEY_STOP,	KEY_AUDIO,	KEY_NULL,	KEY_PAUSE,
	KEY_OPEN_CLOSE
};
#else  //3308
unsigned char FpKeyArray[]={                                                                /*temporarily*/
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//00-03
	KEY_AUDIO,	KEY_STOP,	KEY_NULL,	KEY_NULL,	//04-07
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//08-0b
	KEY_STOP,	KEY_SKIP_BACK,	KEY_NULL,	KEY_OPEN_CLOSE,  //0c-0f
#if SEPERATE_PLAY_PAUSE
	KEY_PLAY,
#else
	KEY_PLAY_PAUSE, 
#endif	
		 
		KEY_NULL,	KEY_NULL,	KEY_NULL,	//10-17
	KEY_STOP,	KEY_AUDIO,	KEY_NULL,	KEY_PAUSE,
	KEY_OPEN_CLOSE
};


#endif
#endif

#if 0 //HTS_C 1 LED1623_MODUL_2
unsigned char FpKeyArray[]={                                                              
	KEY_NULL,	KEY_NULL,	KEY_NULL,	KEY_NULL,	//00-03
	KEY_OPEN_CLOSE,
//#if SEPERATE_PLAY_PAUSE
	//KEY_PLAY,
//#else
	KEY_PLAY_PAUSE,	
//#endif

	KEY_NULL,	KEY_AUDIO,	//04-07

	KEY_NTSCPAL											//08-0b
};
#endif


#endif






#if HT1621
/********************************************************************
							LCD 1621
********************************************************************/
 void ShowVFD(OsdMsg_t  * vfd_msg)
 {

    	ULONG32	CurrentTime;
#if 0   //pwc block for test 2006.03.26
	if(gOpen_pressed)
	{
		EI();
		return;
	}
#endif
	CurrentTime = VcdGetCurSec();
	
	    vfd_audio_channel();
	    vfd_display_mode();
		
	switch(vfd_msg->mode){
		case DSP_VCD:
#if _SUPPORT_GAMECD
			if(gIsGameCD){
				vfd_dot(VFD_DOT_ON, VFD_DOT_PLAY);
				vfd_show_time(0, 0);
				VfdDiscTurnF = 1;
			}else
#endif
		{
		      
               #if 1
				vfd_dot(VFD_DOT_ON, VFD_DOT_VCD);
			   #else
			   vfd_dot(VFD_DOT_ON, VFD_DOT_DB);
               vfd_dot(VFD_DOT_ON, VFD_DOT_DVD);
			   vfd_dot(VFD_DOT_ON, VFD_DOT_DTS);
			   #endif
				//vfd_readtoc();
				VfdDiscTurnF = 0;
	}
			break;			
		case DSP_CDDA:
			vfd_dot(VFD_DOT_ON, VFD_DOT_CD);
			//vfd_readtoc();
			VfdDiscTurnF = 0;
			break;
		case DSP_PLAY:
			 vfd_play();
			break;
		case DSP_PAUSE:
			 vfd_pause();
			 VfdDiscTurnF = 0;
			break;
		case DSP_STOP:
			//vfd_show_time(gVcdTrackInfo.CurrTrack_no , CurrentTime);
			vfd_show_time(gVcdTrackInfo.Total_track_cnt, (gVcdTrackInfo.TrackLBAList[gVcdTrackInfo.Total_track_cnt]-gVcdTrackInfo.TrackLBAList[0])/75);
			VfdDiscTurnF = 0;
			vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
			vfd_dot(VFD_DOT_OFF, VFD_DOT_PAUSE);
			vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
			vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
			//vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
			//vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYA);
			//vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYB);
			   vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
			//vfd_dot(VFD_DOT_OFF, VFD_DOT_RAN);
					break;
		case DSP_PREV:
		case DSP_NEXT:
		case DSP_FR:
		case DSP_FF:
		case DSP_SR:
		case DSP_SF:
			vfd_show_time(gVcdTrackInfo.CurrTrack_no , CurrentTime);
			VfdDiscTurnF = 0;
					break;
			
		case DSP_REPEAT_TRK:
            		vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
					break;
		case DSP_REPEAT_ALL:
            		vfd_dot(VFD_DOT_ON, VFD_DOT_REPEAT);
            	    //vfd_dot(VFD_DOT_ON, VFD_DOT_REPALL);
			break;
#if _SUPPORT_REPEAT_AB
		case DSP_REPEAT_A:
            	//	vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYA);
					break;
		case DSP_REPEAT_AB:
            	//	vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYA);
            	//	vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYB);
					break;					
#endif				
		case DSP_REPEAT_OFF:
            		//vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYA);
            		//vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYB);
            		//vfd_dot(VFD_DOT_OFF, VFD_DOT_REP1);
           	       // vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);   
           	       vfd_dot(VFD_DOT_OFF, VFD_DOT_REPEAT);
					break;
		case DSP_ON:
			if( PBC_PROGRAM == Vcd_GetPBCState())
				vfd_dot(VFD_DOT_ON, VFD_DOT_PGM);
			else if(PBC_RANDOM == Vcd_GetPBCState()){
				vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
				vfd_dot(VFD_DOT_ON, VFD_DOT_RAN);
			}
			else{
				//vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
				//vfd_dot(VFD_DOT_OFF, VFD_DOT_RAN);
	}
		
			break;
		case DSP_NO_DISC:
			vfd_nodisc();
			break;
		case DSP_UNKNOW_DISC:
			vfd_unkowndisc();
			break;
/*		case DSP_NUM:
			if(gTrkSelectEnd_flag){
				vfd_show_time(gNumber_output , 0);

			}*/
					break;
		case DSP_RETURN:
#if _SUPPORT_GAMECD
			if(gIsGameCD){
				vfd_show_time(0, 0);
				VfdDiscTurnF = 1;
			}
#endif
					break;
        case DSP_DISPLAYMODE:
		    vfd_display_mode();
		     break;
		case DSP_AUDIO:
			 vfd_audio_channel();
			 break;
				default:
#if _SUPPORT_GAMECD
			if(!gIsGameCD)
#endif
			{
 				if(PBC_PBCON == Vcd_GetPBCState())
	            			vfd_dot(VFD_DOT_ON, VFD_DOT_PBC);
				else if(PBC_NORMAL== Vcd_GetPBCState())
					vfd_dot(VFD_DOT_OFF, VFD_DOT_PBC);
			}
					break;
			}
	switch(vfd_msg->control)
			{
		case CTRL_UPDATED_TIME:
			vfd_normal_state();
			VfdDiscTurnF = 1;
					break;
				default:
					break;
			}
	}

void LCD_sendcmd(unsigned char cmd)
{
    unsigned char i;
     ClearVFDStb();
     for(i = 0;i<3;i++)
     {
	FP_Delay(LCD_CLOCK_DELAY);
	ClearVFDClk();
        if(cmd & 0x04)
	   SetVFDData();
	    else
	   ClearVFDData();
          cmd <<= 1;
        FP_Delay(LCD_CLOCK_DELAY);
	SetVFDClk();
     }
}

void LCD_objectSendcommand(unsigned char command)
{
    unsigned char i,j;
    LCD_sendcmd(LCD_COMMAND);
     j = command;
     for(i = 0;i<8;i++)
	{
	FP_Delay(LCD_CLOCK_DELAY);
	ClearVFDClk();
     if(j & 0x80)
	   SetVFDData();
	 else
	   ClearVFDData();
         
        j<<=1;
        FP_Delay(LCD_CLOCK_DELAY);
	SetVFDClk();
     }
     FP_Delay(LCD_CLOCK_DELAY);
     ClearVFDClk();
     // ClearVFDData();
   SetVFDStb();
     FP_Delay(LCD_CLOCK_DELAY);
     // SetVFDClk();
     // SetVFDStb();
}
#ifdef display_mode1
//BY May 060427
void LCD_objectSenddata_Plugin(unsigned char address)
{
	unsigned char i,j;
	unsigned char data;
        LCD_sendcmd(LCD_WRITE);
		
        for(i=0; i<6; i++) 
			{
    	   FP_Delay(LCD_CLOCK_DELAY);
    	   ClearVFDClk();
           if(address & 0x20) 
    		SetVFDData();
    	   else
    		ClearVFDData();
             
     	   FP_Delay(LCD_CLOCK_DELAY);
           address <<= 1;
    	   SetVFDClk();
        }

        for( j=0; j<FP_MAX_BUF; j++)
        	{
        		data = FpBuf[ j ];
       		 for(i=0; i<4; i++) 
		{
        			FP_Delay(LCD_CLOCK_DELAY);
			ClearVFDClk();
           		 if(data & 0x80) 
				SetVFDData();
		   	 else
				ClearVFDData();
			
	       		 FP_Delay(LCD_CLOCK_DELAY);
	 		SetVFDClk();
               		 data <<= 1;
		}
		}
		
	SetVFDStb();
}
#endif		
void LCD_objectSenddata(unsigned char address,unsigned char data)
{
	unsigned char i;
        LCD_sendcmd(LCD_WRITE);
        for(i=0; i<6; i++) 
			{
    	   FP_Delay(LCD_CLOCK_DELAY);
    	   ClearVFDClk();
           if(address & 0x20) 
    		SetVFDData();
    	   else
    		ClearVFDData();
             
     	   FP_Delay(LCD_CLOCK_DELAY);
           address <<= 1;
    	   SetVFDClk();
        }
		
        for(i=0; i<4; i++) 
			{
        	FP_Delay(LCD_CLOCK_DELAY);
		ClearVFDClk();
            if(data & 0x80) 
			SetVFDData();
		    else
			ClearVFDData();
			
	        FP_Delay(LCD_CLOCK_DELAY);
	 	SetVFDClk();
                data <<= 1;
	}
        SetVFDStb();
}

void VFD_state_init()
		{

        unsigned char i;
	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);
	

#if Test_Mode  // pwc 2005.12.28
 	for(i=0;i<FP_MAX_BUF;i++)
		FpBuf[i]=0;
	    vfd_dot(1,dot);
	 if(flash_lcd)  
	 	{
	       for(i = 0;i <=FP_MAX_BUF; i ++)
            LCD_objectSenddata(i,0xff);  //light all   
	 	}
	 else
	 	{
	       for(i = 0;i <=FP_MAX_BUF; i ++)
             LCD_objectSenddata(i,FpBuf[i]);     	 
	 if (dot > 0x110)	
	 	   dot = 0;	
	 	}
 	return;
			
		
#else
	for(i = 0;i <=FP_MAX_BUF; i ++){
		FpBuf[i] = FpBufBak[i] = 0;
              LCD_objectSenddata(i,0x00); 
 	}

	vfd_readtoc();
#ifdef display_mode1
       VFD_next_state =VFD_state_refresh_01_plugin; //VFD_state_refresh_0;
 #else
     VFD_next_state = VFD_state_refresh_0;
#endif
#endif		
		}
			
void VFD_state_refresh_0(void)
		{
 #if 0													//test front panel
 	static  int dot = 0;
 	unsigned char i ;
 	//FPClearFp();	
 	for(i=0;i<FP_MAX_BUF;i++)
		FpBuf[i]=0;
	//FpBuf[dot / 8] |= (1 << (dot % 8));
	vfd_dot(1,dot);
	 //dot ++;
	
	for(i = 0;i <=FP_MAX_BUF; i ++){
              LCD_objectSenddata(i,FpBuf[i]); 
              //LCD_objectSenddata(i,0xff);  //light all   
		}
	dot ++;    // pwc breakpoint
	 if (dot > 0x110)	dot = 0;	
 	//LCD_objectSenddata(2,1<<4); 
 	return;
#else
	unsigned char i,j;
	VFDRefreshPtr = 0;
	for (i = 0; i < FP_MAX_BUF; i++)
		{	
		if(FpBuf[i] != FpBufBak[i] ){
			FpBufBak[i] =  FpBuf[i];
			VFDRefreshPtr ++;
			//j = VFDRefreshPtr;
			VFDRefreshStack[VFDRefreshPtr].position = i;
			VFDRefreshStack[VFDRefreshPtr].data = FpBuf[i];	
	
		}
		}
	if(VFDRefreshPtr){
		VFD_next_state = VFD_state_refresh_1;
	}else
		VFD_next_state = VFD_state_refresh_2;
#endif
	}

void VFD_state_refresh_1(void)
{
	for( ;VFDRefreshPtr>0; VFDRefreshPtr--){
		 LCD_objectSenddata(VFDRefreshStack[VFDRefreshPtr].position, VFDRefreshStack[VFDRefreshPtr].data); 
	}
	VFD_next_state = VFD_state_refresh_2;
}
#ifdef display_mode1
void VFD_state_refresh_01_plugin(void)//by May 060427
{
	 LCD_objectSenddata_Plugin(0); 
	VFD_next_state = VFD_state_refresh_2;
}
#endif
void VFD_state_refresh_2(void)
{
	if(VfdDiscTurnF){
		if(OsdGetStatus() == DSP_PROG)
			vfd_normal_state();
		vfd_disc_turn(1);                                                 
	}
	//VFD_next_state = VFD_state_refresh_0;
	VFD_next_state =VFD_state_refresh_3;
}

⌨️ 快捷键说明

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