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

📄 vfdspec.h

📁 MTK1389D dvd原程序
💻 H
📖 第 1 页 / 共 4 页
字号:
// *********************************************************************
// VFD control mode
// *********************************************************************



#ifdef VFD_32
#define  VFD_MODE       0x02

// *********************************************************************
// Predefined ANODE
// *********************************************************************
#define  ANODE_EMPTY    GET_NODE_WORD(0x0C,0x01)
#define  ICON_EMPTY     {0x0C,0x01}

// *********************************************************************
// Refresh Table
// *********************************************************************
BYTE pbVfdRefresh[] = {
    0x00, 0x01, 0x02, 0x03,
    0x04, 0x05, 0x06, 0x07,
    0x08, 0x09, 0x0a, 0x0b
};

strucVfdIcon prVfdWheel[] = {
{0x08, 0x04},{ 0x08, 0x08},{ 0x08, 0x10}, {0x08, 0x20}, {0x08, 0x40}, {0x08, 0x80},
{0x09, 0x01}, {0x09, 0x02}, {0x09, 0x04}, {0x09, 0x08}, {0x09, 0x10}, {0x09, 0x20},
{0x09, 0x40}
// 0x0c, 0x02, 0x0a, 0x02, 0x02, 0x02, 0x00, 0x02,0x06, 0x02, 0x08, 0x02,
// 0x04, 0x02, 0x00, 0x01
};

// *********************************************************************
// Panel/Controller Attributes
// *********************************************************************
#define VFD_CHAR_SEG_SZ         8

#include "vfd_char.h"

#define VFD_SHADOW_LEN           VFD_REFRESH_TBL_SZ

#define VFD_FIELD_MAX   9

BYTE pbVfdMsgPosition[] = {
    VFD_TITLE+1, VFD_TRACK,  VFD_TRACK+1, VFD_MIN100, VFD_MINUTE,
    VFD_MINUTE+1, VFD_SECOND, VFD_SECOND+1
};

typedef struct structVfdSegment
{
  WORD pwSeg[VFD_CHAR_SEG_SZ];
} strucVfdSegment;

#define SEG_TRACK_HIGH { \
GET_NODE_WORD(0x06, 0x40),\
GET_NODE_WORD(0x06, 0x20),\
GET_NODE_WORD(0x06, 0x04),\
GET_NODE_WORD(0x06, 0x01),\
GET_NODE_WORD(0x06, 0x02),\
GET_NODE_WORD(0x06, 0x10),\
GET_NODE_WORD(0x06, 0x08),\
  ANODE_EMPTY \
}

#define SEG_TRACK_LOW  { \
GET_NODE_WORD(0x05, 0x40),\
GET_NODE_WORD(0x05, 0x20),\
GET_NODE_WORD(0x05, 0x04),\
GET_NODE_WORD(0x05, 0x01),\
GET_NODE_WORD(0x05, 0x02),\
GET_NODE_WORD(0x05, 0x10),\
GET_NODE_WORD(0x05, 0x08),\
  ANODE_EMPTY \
}

#define SEG_MINUTE_HIGH { \
GET_NODE_WORD(0x03, 0x40),\
GET_NODE_WORD(0x03, 0x20),\
GET_NODE_WORD(0x03, 0x04),\
GET_NODE_WORD(0x03, 0x01),\
GET_NODE_WORD(0x03, 0x02),\
GET_NODE_WORD(0x03, 0x10),\
GET_NODE_WORD(0x03, 0x08),\
ANODE_EMPTY \
}

#define SEG_MINUTE_LOW { \
GET_NODE_WORD(0x02, 0x40),\
GET_NODE_WORD(0x02, 0x20),\
GET_NODE_WORD(0x02, 0x04),\
GET_NODE_WORD(0x02, 0x01),\
GET_NODE_WORD(0x02, 0x02),\
GET_NODE_WORD(0x02, 0x10),\
GET_NODE_WORD(0x02, 0x08),\
ANODE_EMPTY \
}

#define SEG_SECOND_HIGH { \
GET_NODE_WORD(0x01, 0x20),\
GET_NODE_WORD(0x01, 0x10),\
GET_NODE_WORD(0x01, 0x02),\
GET_NODE_WORD(0x00, 0x80),\
GET_NODE_WORD(0x01, 0x01),\
GET_NODE_WORD(0x01, 0x08),\
GET_NODE_WORD( 0x01, 0x04),\
ANODE_EMPTY \
}

#define SEG_SECOND_LOW { \
GET_NODE_WORD(0x00, 0x40),\
GET_NODE_WORD(0x00, 0x20),\
GET_NODE_WORD(0x00, 0x04),\
GET_NODE_WORD(0x00, 0x01),\
GET_NODE_WORD(0x00, 0x02),\
GET_NODE_WORD(0x00, 0x10),\
GET_NODE_WORD(0x00, 0x08),\
ANODE_EMPTY \
}

#define SEG_HOUR { \
GET_NODE_WORD(0x04, 0x40),\
GET_NODE_WORD(0x04, 0x20),\
GET_NODE_WORD(0x04, 0x04),\
GET_NODE_WORD( 0x04, 0x01),\
GET_NODE_WORD(0x04, 0x02),\
GET_NODE_WORD(0x04, 0x10),\
GET_NODE_WORD( 0x04, 0x08),\
ANODE_EMPTY \
}

#define SEG_TITLE_HIGH { \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY \
}

#define SEG_TITLE_LOW { \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY, \
  ANODE_EMPTY \
}

strucVfdSegment prVfdCharSegments[] = {
    SEG_TRACK_HIGH,
    SEG_TRACK_LOW,
    SEG_MINUTE_HIGH,
    SEG_MINUTE_LOW,
    SEG_SECOND_HIGH,
    SEG_SECOND_LOW,
    SEG_HOUR,
    SEG_TITLE_HIGH,
    SEG_TITLE_LOW,
};

#define VFD_MSG_CHAR_NUM  10

typedef struct structVfdMsg {
    char * pcName;
    WORD pwMsg[VFD_MSG_CHAR_NUM];
} strucVfdMsg;

strucVfdMsg prVfdMsg[] = {
  {"stop",    {CHAR_, CHAR_, CHAR_, CHAR_S,CHAR_t,CHAR_O,CHAR_P,CHAR_, CHAR_end}},
  {"root",    {CHAR_, CHAR_, CHAR_, CHAR_R,CHAR_O,CHAR_O,CHAR_t,CHAR_, CHAR_end}},
  {"title",   {CHAR_, CHAR_, CHAR_, CHAR_t,CHAR_I,CHAR_t,CHAR_L,CHAR_E,CHAR_end}},
  {"nodisc",  {CHAR_, CHAR_n,CHAR_O,CHAR_, CHAR_d,CHAR_I,CHAR_S,CHAR_C,CHAR_end}},
  {"undisc",  {CHAR_, CHAR_U,CHAR_n,CHAR_, CHAR_d,CHAR_I,CHAR_S,CHAR_C,CHAR_end}},
  {"open",    {CHAR_, CHAR_, CHAR_, CHAR_O,CHAR_P,CHAR_E,CHAR_n,CHAR_, CHAR_end}},
  {"close",   {CHAR_, CHAR_, CHAR_, CHAR_C,CHAR_L,CHAR_O,CHAR_S,CHAR_E,CHAR_end}},
  {"vcd",     {CHAR_, CHAR_, CHAR_, CHAR_U,CHAR_C,CHAR_d,CHAR_, CHAR_, CHAR_end}},
  {"svcd",    {CHAR_, CHAR_, CHAR_, CHAR_S,CHAR_U,CHAR_C,CHAR_d,CHAR_, CHAR_end}},
  {"loading", {CHAR_, CHAR_, CHAR_, CHAR_L,CHAR_O,CHAR_A,CHAR_d,CHAR_, CHAR_end}},
  {"off",     {CHAR_, CHAR_, CHAR_, CHAR__,CHAR_O,CHAR_F,CHAR_F,CHAR__,CHAR_end}},
  {"hello",   {CHAR_, CHAR_, CHAR_, CHAR_H,CHAR_E,CHAR_L,CHAR_L,CHAR_O,CHAR_end}},
  {"jpeg",    {CHAR_, CHAR_, CHAR_, CHAR_J,CHAR_P,CHAR_E,CHAR_g,CHAR_, CHAR_end}},
  {"p_cd",    {CHAR_, CHAR_, CHAR_, CHAR_P,CHAR__,CHAR_c,CHAR_d,CHAR_, CHAR_end}},
  {"pbc_play",{CHAR_, CHAR_P,CHAR_b,CHAR_C,CHAR_P,CHAR_L,CHAR_A,CHAR_y,CHAR_end}},
  {"digest",  {CHAR_ ,CHAR_ ,CHAR_ ,CHAR_d,CHAR_g,CHAR_S,CHAR_t,CHAR_, CHAR_end}},
  {"err",     {CHAR_ ,CHAR_ ,CHAR_ ,CHAR_E,CHAR_R,CHAR_R,CHAR_, CHAR_, CHAR_end}},
  {"upg",     {CHAR_ ,CHAR_ ,CHAR_ ,CHAR_U,CHAR_P,CHAR_g,CHAR_, CHAR_, CHAR_end}},
  {"clearall",{CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_end}}
};
/*
strucVfdMsg prVfdMsg[] = {
  {"stop",    {CHAR_, CHAR_, CHAR_, CHAR_S,CHAR_t,CHAR_O,CHAR_P,CHAR_, CHAR_end}},
  {"root",    {CHAR_, CHAR_, CHAR_, CHAR_R,CHAR_O,CHAR_O,CHAR_t,CHAR_, CHAR_end}},
  {"title",   {CHAR_, CHAR_, CHAR_, CHAR_t,CHAR_I,CHAR_t,CHAR_L,CHAR_E,CHAR_end}},
  {"nodisc",  {CHAR_,CHAR_,CHAR_,   CHAR_n,CHAR_O,CHAR_d,CHAR_I,CHAR_S,CHAR_end}},
  {"undisc",  {CHAR_, CHAR_,CHAR_, CHAR_U,CHAR_n, CHAR_d,CHAR_I,CHAR_S,CHAR_end}},
  {"open",    {CHAR_, CHAR_, CHAR_, CHAR_O,CHAR_P,CHAR_E,CHAR_n,CHAR_, CHAR_end}},
  {"close",   {CHAR_, CHAR_, CHAR_, CHAR_C,CHAR_L,CHAR_O,CHAR_S,CHAR_E,CHAR_end}},
  {"vcd",     {CHAR_, CHAR_, CHAR_, CHAR_U,CHAR_C,CHAR_d,CHAR_, CHAR_, CHAR_end}},
  {"svcd",    {CHAR_, CHAR_, CHAR_, CHAR_S,CHAR_U,CHAR_C,CHAR_d,CHAR_, CHAR_end}},
  {"loading", {CHAR_, CHAR_, CHAR_, CHAR_L,CHAR_O,CHAR_A,CHAR_d,CHAR_, CHAR_end}},
  {"off",     {CHAR_, CHAR_, CHAR_, CHAR__,CHAR_O,CHAR_F,CHAR_F,CHAR__,CHAR_end}},
  {"hello",   {CHAR_, CHAR_, CHAR_, CHAR_H,CHAR_E,CHAR_L,CHAR_L,CHAR_O,CHAR_end}},
  {"jpeg",    {CHAR_, CHAR_, CHAR_, CHAR_, CHAR_J,CHAR_P,CHAR_E,CHAR_G, CHAR_end}},
  {"p_cd",    {CHAR_, CHAR_, CHAR_, CHAR_P,CHAR__,CHAR_c,CHAR_d,CHAR_, CHAR_end}},
  {"pbc_play",{CHAR_, CHAR_, CHAR_, CHAR_P,CHAR_b,CHAR_c,CHAR_P,CHAR_L,CHAR_end}},
  {"digest",  {CHAR_ ,CHAR_ ,CHAR_ ,CHAR_d,CHAR_g,CHAR_S,CHAR_t,CHAR_, CHAR_end}},
  {"err",     {CHAR_ ,CHAR_ ,CHAR_ ,CHAR_E,CHAR_R,CHAR_R,CHAR_, CHAR_, CHAR_end}},
  {"upg",     {CHAR_ ,CHAR_ ,CHAR_ ,CHAR_U,CHAR_P,CHAR_g,CHAR_, CHAR_, CHAR_end}},
  {"clearall",{CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_, CHAR_end}}
};
*/
#if (VFD_CHAR_SEG_SZ <= 8)
#define CHAR_all  0x00ff
#elif (VFD_CHAR_SEG_SZ == 10)
#define CHAR_all  0x03ff
#elif (VFD_CHAR_SEG_SZ == 14)
#define CHAR_all  0x3fff
#endif

#define ICON_pbc        GET_NODE_WORD(0x1,0x80)//g
#define ICON_angle      GET_NODE_WORD(  0x3,0x80)//g
#define ICON_repeat     GET_NODE_WORD(0x7,0x1)//g
#define ICON_all        GET_NODE_WORD( 0x7,0x2)//g
#define ICON_dvd        GET_NODE_WORD(0x9,0x80)//g
#define ICON_super      GET_NODE_WORD(0x7,0x40)//g
#define ICON_vcd        GET_NODE_WORD(0x7,0x20)//g
#define ICON_mp3        GET_NODE_WORD(  0x1,0x40)//g
#define ICON_cd         GET_NODE_WORD(  0x7,0x10)//g
#define ICON_colon1     GET_NODE_WORD(0x2,0x80)//g
#define ICON_colon2     GET_NODE_WORD(0x4,0x80)//g
#define ICON_play       GET_NODE_WORD(0x7,0x8)//g
#define ICON_pause      GET_NODE_WORD(0x7,0x4)//g
#define ICON_ac3        GET_NODE_WORD(0x5,0x80)//g
#define ICON_dts        GET_NODE_WORD(0x7,0x80)//g
#define ICON_STANDBY    ANODE_EMPTY
#define ICON_empty      ANODE_EMPTY

#define ICON_ntsc       ICON_empty
#define ICON_pal        ICON_empty
#define ICON_vocal      ICON_empty
#define ICON_one        ICON_empty
#define ICON_program    ICON_empty
#define ICON_l         ICON_empty //GET_NODE_WORD(0x8,0x2)//g
#define ICON_slash      ICON_empty
#define ICON_r         ICON_empty //GET_NODE_WORD(0xa,0x2)//g
#define ICON_random     ICON_empty
#define ICON_s7         ICON_empty
#define ICON_s6         ICON_empty
#define ICON_s5         ICON_empty
#define ICON_s4         ICON_empty
#define ICON_s3         ICON_empty
#define ICON_s2         ICON_empty
#define ICON_s1         ICON_empty
#define ICON_seta      GET_NODE_WORD(0x7,0x1)//g// ICON_empty
#define ICON_setb      GET_NODE_WORD(0x7,0x1)//g //ICON_empty
#define ICON_chapter    ICON_empty
#define ICON_title      ICON_empty
#define ICON_mic      ICON_empty //  GET_NODE_WORD(0x07, 0x02)//g

strucVfdIconMacro prVfdIconMacro[] = {
    /* Repeat AB related */
    {"a2b_a",       {ICON_seta}, {ICON_setb}  },
    {"a2b_b",       {ICON_seta, ICON_setb}, {ICON_empty }  },
    {"a2b_cancel",  {ICON_empty }, {ICON_seta, ICON_setb}  },

    /* Audio selection */
    {"mono_l",      {ICON_l},
        {ICON_r, ICON_slash}        },
    {"mono_r",      {ICON_r},
        {ICON_l, ICON_slash}        },
    {"stereo",      {ICON_slash, ICON_l, ICON_r},
        {ICON_empty}          },
    {"stereo_off",  {ICON_empty},
        {ICON_slash, ICON_l, ICON_r}},
    {"vocal_l",      {ICON_l},
        {ICON_slash, ICON_r}        },
    {"vocal_r",      {ICON_r},
        {ICON_slash, ICON_l}        },
    {"vocal_off",   {ICON_empty},
                    {ICON_empty}                      },

    /* Play selection */
    {"fb",      {ICON_empty}, {ICON_play, ICON_pause} },
    {"ff",      {ICON_empty}, {ICON_play, ICON_pause} },
    {"pause",   {ICON_pause}, {ICON_play} },
    {"play",    {ICON_play}, {ICON_pause}  },
    {"stop",    {ICON_empty}, {ICON_play, ICON_pause} },

    /* PBC selection */
    {"pbc_on",  {ICON_pbc}, {ICON_empty} },
    {"pbc_off",  {ICON_empty}, {ICON_pbc}  },

    /* Intro/digest */
    {"intro_on",{ICON_empty}, {ICON_empty} },
    {"intro_off",{ICON_empty}, {ICON_empty} },

    /* Mic. colon, track, hyphen etc */
    {"colon_on", {ICON_colon2,ICON_colon1}, {ICON_empty} },
    {"colon_off",{ICON_empty}, {ICON_colon2,ICON_colon1} },
    {"track",    {ICON_chapter}, {ICON_title} },
    {"title",    {ICON_title, ICON_chapter}, {ICON_empty} },

    /* title on/off */
    {"title_on", {ICON_title}, {ICON_empty} },
    {"title_off",{ICON_empty}, {ICON_title} },

    /* Play sequence */
    {"sequence",    {ICON_empty}, {ICON_program, ICON_random, ICON_repeat, ICON_all, ICON_seta, ICON_setb} },
    {"program",      {ICON_program},
        {ICON_random, ICON_pbc}        },
    {"shuffle",      {ICON_random},
        {ICON_program, ICON_pbc}        },

    /* Repeat related */
    {"repeat_off",  {ICON_empty},
                    {ICON_repeat, ICON_one, ICON_all, ICON_seta, ICON_setb}        },
    {"repeat_one",  {ICON_repeat},
        {ICON_empty}            },
    {"repeat_all",  {ICON_repeat, ICON_all},
        {ICON_empty}          },

    /* CD type */
    {"svcd",        {ICON_super,ICON_vcd,    ICON_cd},
                    {ICON_dvd}                                          },
    {"cdda",        {ICON_cd},
                    {ICON_super, ICON_vcd, ICON_dvd}      },
    {"vcd",         {ICON_vcd, ICON_cd},
                    {ICON_super, ICON_dvd}        },

    /* TV type */
    {"ntsc",      {ICON_empty},
        {ICON_empty}          },
    {"pal",      {ICON_empty},
        {ICON_empty}                 },

    /* Key shift */
    {"key_up",      {ICON_empty},
        {ICON_empty}          },
    {"key_down",    {ICON_empty},
        {ICON_empty}          },
    {"key_resume",  {ICON_empty},
        {ICON_empty}          },

    /* Initialization */
    {"init_state",  {ICON_chapter, ICON_l, ICON_r, ICON_s1, ICON_s2,
         ICON_s3, ICON_s4, ICON_s5, ICON_s6, ICON_s7},
                    {ICON_empty}          },

    {"clear_msg",   {ICON_empty }, {ICON_colon1, ICON_colon2, ICON_title, ICON_chapter} },

    {"panel4_off",  {ICON_empty },
                    {ICON_ntsc, ICON_pal, ICON_l, ICON_r, ICON_vocal, ICON_pbc, },  },
    {"panel5_off",  {ICON_empty },
                    {ICON_angle, ICON_title, ICON_ac3, ICON_dts },  },

    {"in_vts",      {ICON_dvd, ICON_chapter, ICON_play, ICON_title },
                    {ICON_empty }                          },
    {"pause_on",    {ICON_pause}, {ICON_play}  },
    {"pause_off",   {ICON_play}, {ICON_pause}  },
    {"angle_on",    {ICON_angle}, {ICON_empty } },
    {"angle_off",   {ICON_empty }, {ICON_angle} },
    //karaoke control
    {"mic_on",    {ICON_mic}, {ICON_empty } },
    {"mic_off",   {ICON_empty }, {ICON_mic} },
    
    {"ac3",         {ICON_ac3}, {ICON_dts, ICON_mp3} },
    {"dts",         {ICON_dts}, {ICON_ac3, ICON_mp3} },
    {"mp3",         {ICON_mp3}, {ICON_ac3, ICON_dts} },
    {"pcm",         {ICON_empty}, {ICON_dts, ICON_ac3, ICON_mp3} },
    {"standby",     {ICON_STANDBY}, {ICON_empty} },
    {"standbyoff",  {ICON_empty},{ICON_STANDBY} },
    {"clear_audio", {ICON_empty}, {ICON_dts, ICON_ac3, ICON_mp3}},

    {"chapter_repeat_on", {ICON_repeat, ICON_one },
                    {ICON_empty},                              },
    {"title_repeat_on", {ICON_repeat, ICON_all },
                    {ICON_empty},                              },
    {"chapter_repeat_off", {ICON_empty },
                    {ICON_repeat, ICON_one},                              },
    {"title_repeat_off", {ICON_empty },
                    {ICON_repeat, ICON_all},                              },
    {"dvdon",      {ICON_dvd},
                    {ICON_empty },       },

⌨️ 快捷键说明

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