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

📄 vfd_o.c

📁 Sunplus 8202S source code.
💻 C
字号:
/*
** FILE
** vfd.c
**
** DESCRIPTION
** handle VFD functions.
*/
#include "user_init.h"
#include "config.h"
#include "global.h"
#include "memmap.h"
#include "sio.h"
//#include "epp.h"

//#include "fastmath.h"
//#include "auctrl.h"
//#include "user_init.h"
//#include "vfd.h"
#include "vfdfunc.h"
//#include "vfd_7seg.h"//kenny mark 2001/10/23
//#include "vfd_p.h"//kenny mark 2001/10/23
#include "ircode.h"
#include "ircmd.h"
#include "func.h"
//#include "sig.h"
//#include "fs96602.h"//kenny mark 2001/10/23
#include "osd.h"

#include "avd.h"                                //zyf 2000/11/22
//#include "vfd_prg.h"//kenny mark 2001/10/23
//#include "reverse.h"

#include "gpio.h"
#include "iop.h"
#include "cd.h"

#ifdef USE_VFDPORT_TRANDATA         //add by linrc 2004-3-24 21:56 for minidvd receive
    #include "8200_51MCU.c"     //program introduce in the /IR_VFD/8200_51MCU.c file
#endif    

UINT32  get_rtc_val();

//#ifdef P9c9_Panel //jacky 2003/10/23 07:35PM
#ifdef USE_VFD_CONTROL_P9C9_LED_ON_OFF      //gerry,2004-1-30 18:11
int led_flash_interval=0;
int led_flash_time=0;
#endif 

//#define     VFD_DBG     1
//#define VFD_KEY_TEST
#ifdef  BBK_DVD   //fengjl add  4-2-3 20:22
extern tv_output_vfd_time;  
#endif



static UINT16  counter, index;
BYTE    vfd_state = 0;
extern UINT32 save_srn_start_t;

#include "vfd_mod.c"

#ifdef HT1621_PANNEL//nono 4-5-9 23:56
const BYTE vfd_keycode[]={};
#endif//HT1621_PANNEL

#ifdef NEW_JPEG
extern BYTE bJpgVFDPause;
#else
#ifndef SHARE_NAV_VAR
extern BYTE bJpgVFDPause;               //Jeff 20020523
#else
#define bJpgVFDPause (pFsJpeg->bJpgVFDPause)
#endif
#endif

extern UINT16 Is_JPEG_SlideMode(void);

#if defined(SLEEP_WHEN_POWER_ON)&&defined(TONIC_DVD)//20040206
extern int power_on_flag;   //zhg 2004-1-4 15:46
#endif


#ifdef TWO_FUN_IN_ONE_VFD_KEY
UINT32 keycode_to_num(UINT32 key_data)
{
    UINT32 temp;
    UINT8   i;
    for(i = 0; i < 24; i++)
    {
        temp = 0x01 << i;
        if(key_data & temp)
        {
            if (key_data > temp) 
            {
                return 0;
            }
            else
            {
                key_data = i + 1;
                break;
            }
        }
    }
    return key_data; 
}
#endif //TWO_FUN_IN_ONE_VFD_KEY

#ifdef TEST_VFD                                 //shawn add at 910131

UINT8   SC_1 = 15;
UINT8   COMMAND_MODE = 2;

void update_vfd_dot_inc(void)       //shawn add at 910131
{
    if(SC_1 < 40)
        SC_1++;
    printf("\n SC_1(BYTE_INC)=%d\n\n", SC_1);
    
#ifdef VFD2OSD_DBG_TXD                  //nono 2-8-9 14:39
    psprintf(RegionValStr[REGION1], "SC_1 BYTE_INC: %d", SC_1);
    PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
#endif
}


void update_vfd_dot_dec(void)       //shawn add at 910131
{
    UINT8   a;
    
    for(a = SC_1; a <= 25; a++)
        vfd_mem[a] = 0x00;
    if(SC_1 > 0)
        SC_1--;
    printf("\n SC_1(BYTE_DEC)=%d\n\n", SC_1);
    
#ifdef VFD2OSD_DBG_TXD                  //nono 2-8-9 14:39
    psprintf(RegionValStr[REGION1], "SC_1 BYTE_DEC: %d", SC_1);
    PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
#endif
}

void update_vfd_mod_inc(void)       //shawn add at 910131
{
    //counter++;
    
    if(COMMAND_MODE < 16)
        COMMAND_MODE++;
    
    printf("\n COMMAND_MODE(INC)=%d\n\n", COMMAND_MODE);
    
#ifdef VFD2OSD_DBG_TXD                  //nono 2-8-9 14:40
    psprintf(RegionValStr[REGION3], "COMMAND_MODE INC: %d", COMMAND_MODE);
    PrintOsdMsg(STR_OS_SPACE, REGION3, 1, 1);
    
#endif
    
    reset_vfd();
}

void update_vfd_mod_dec(void)       //shawn add at 910131
{
    //counter--;
    
    if(COMMAND_MODE > 0)
        COMMAND_MODE--;
    printf("\n COMMAND_MODE(DEC)=%d\n\n", COMMAND_MODE);
    
#ifdef VFD2OSD_DBG_TXD                  //nono 2-8-9 14:40
    psprintf(RegionValStr[REGION1], "COMMAND_MODE DEC: %d", COMMAND_MODE);
    PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
#endif
    
    reset_vfd();
}

void update_vfd_inc(void)               //shawn modify at 910131
{
    counter++;
}

void update_vfd_dec(void)               //shawn modify at 910131
{
    counter--;
}

#endif //TEST_VFD

#ifdef SHOW_VOL_ON_VFD //huziqin 2004-4-29.if setting channel volume.
extern  BYTE subvol_time_out;
#endif

#ifdef SUPPORT_VFD//nono 20031124
void update_vfd_data(void)
{

#ifdef VFD_SHOW_LOAD_TOGGLE//nono 2003-10-17 18:23      
static BYTE load_toggle_flag;
#endif//#ifdef VFD_SHOW_LOAD_TOGGLE

#ifdef SHOW_VOL_ON_VFD
    if(subvol_time_out)
        {
        show_amp_vol_on_vfd();
        return;
        }
#endif


#ifdef TEST_VFD
    UINT8   by, bit, i;                     //,j;            //shawn modify at 910131
    
    
    index++;
    if(index % 10)
        return;
    
    
    
    by = counter / 8;
    bit = counter % 8;
    
    #ifdef YADAI_PT6554_PANNEL
        for(i = 0; i < SC_1; i++)
        {
            if((i==5)||(i==11)||(i==17)||(i==23))
            {
                vfd_mem[i] = 0x00;
            }
            else
            {           
        vfd_mem[i] = 0xff;
            }
        }
    #else
    
        for(i = 0; i < SC_1; i++)               
        vfd_mem[i] = 0xff;  
    
    #endif  
    
    
    vfd_mem[by] = ~(0x01 << bit);
    
    
    //vfd_set_str(STR_OS_CLOSE,"");
    
    printf("BYTE:%d BIT:%d\n", by, bit);
    //psprintf(linebuf,"BYTE:%d BIT:%d",by,bit);
    
#ifdef VFD2OSD_DBG_TXD                  //nono 2-8-9 14:40
    psprintf(RegionValStr[REGION1], "BYTE:%d BIT:%d", by, bit);
    PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
#endif
    //ShowOsdMsg(linebuf,0);
    return;
#endif
    
#ifdef BBK_DV961_DVD//zhaoyanhua add to show VFD Message for VGA/INTERLACE/P_SCAN  3-11-27 9:50
    if(tv_output_vfd_time != 0)
    {
        tv_output_vfd_time--; 
        switch(tv_out_id)
        {
            case INTERLACE:
                vfd_set_str(0,"1-    ");
                break;
            case PC_VGA:
                vfd_set_str(0,"2-    ");
                break;
            case P_SCAN:
                vfd_set_str(0,"3-    ");
                break;
        
        }
        
        //turn off ":"(min)":"(sec)
        vfd_reset_dot(VFD_DOT_MINSEC);
        vfd_reset_dot(VFD_DOT_MIN);
        return;
    }
#endif  
    
    
    if(play_state != VCD_STATE_TUNER)
    {
        //===========================================
#ifdef HUAJIA_DVD
#define INTV_TM 20
#else
#define INTV_TM 10
#endif  
        counter++;
        
        
        if(adv_search_time > 0)
        {
            if(counter % (INTV_TM / adv_search_time))
                return;
        }
        else if(adv_search_time < 0)
        {
            if(counter % (INTV_TM / (-adv_search_time)))
                return;
        }
        else if(video_slow)
        {
            {
                UINT8   rate = (UINT8) video_slow;
                
                if(counter % (INTV_TM * rate))
                    return;
            }
        }
        else if(play_state != VCD_STATE_CLOSE)
        {
                if(counter % INTV_TM)

                    return;
        }
        else if(counter % (INTV_TM / 2))
            return;
        counter = 0;
    }
    
    /********************************************************/
    // try the function by chichang 2001 6/5
    /********************************************************/
    /*
    vfd_mem[36]=0xff;
    vfd_mem[37]=0xff;
    
      vfd_set_dot(VFD_DOT_PLAY);
      vfd_set_dot(vfd_disc[index]);
      //vfd_set_str(0,"WELCOME");
      
        
          if(index>=11)
          {
          index=0;
          }else
          index++;
          vfd_reset_dot(vfd_disc[index]);
    */
    //===========================================================//
    // process the vfd display of volume and tone   2002-07-03 freyman
    /************************************************************/
#ifdef VFD_VOLUME_DISPLAY
    //  if(vfd_mode_state != DVD_NORMAL_MODE)
    if(timeout_vfd != 0)
        return;
#endif
    /************************************************************/
    // start the vfd program
    /************************************************************/
    #ifdef VOL_LED
    write_vfd_led(0xff);
    #endif

    #ifdef GBM_USE_VFD_CONTROL_LED      //GERRY,2004/2/12 04:14

⌨️ 快捷键说明

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