📄 vfdspec.c
字号:
/* Copyright 1998, ESS Technology, Inc. *//* SCCSID @(#)vfdspec.c 4.1.1.1 12/01/04 *//* Based on vfdspec.c 1.32 01/28/02 */#include "vfdshare.h"#include "keydef.h"/* * Customization is now a lot simpler! * * You need to provide the following information for your particular * VFD: * 1) Position of icons. * 2) VFD_refresh_address (i.e. mapping of internal GP to external GP) * 3) VFD_char_segments (GP's for track/minute/sec high/low characters.) * Order has to match those defined in vfdshare.h, i.e.: * track high, track low, minute high, minute low, second high, * second low, minute 100, title high, title low * you don't need everything if your VFD doesn't have all the fields, * however, if you do, you have to follow the order. * 4) VFD_msg: message to be displayed (such as "OPEN", "CLOSE"). Since * not all VFD's have the same layout, this array goes with individual * VFD. * 5) VFD_msg_position. Since some VFD has weird layout, we use this * array to specify the location of displaying characters in VFD_msg. * 6) VFD_calendar_table. Different VFD has different number of calendar * items. * 7) Icon message. Icons can now be controlled just like OSD! * 8) 7 segment massages: see VFD_msg; if there are any more to add, here * is the place. * 9) If there is a wheel, specify the fans of the wheel and ring in * VFD_wheel and VFD_ring. * 10) Front panel key assignments: see VFD_key_tbl. *//************************************************************************ * Local typedefs * ************************************************************************//* Messages to be displayed on 16 segments */typedef struct { char * name; /* Name you'll be using in C */#ifdef VFD_ZEC1301 unsigned short msg[11]; /* 14-segment char (defined in vfdshare.h*/#else unsigned short msg[10]; /* 7 segment char (defined in vfdshare.h*/#endif} VFD_MSG;/* * Tell me which icon to lite and which one to clear when you want * to specify a VFD message. */typedef struct { char * name; /* Name you'll be using in C */#ifdef VFD_ZEC1301 unsigned short lite[12]; /* Icon to lite */ unsigned short clear[12]; /* Icon to clear */#else unsigned short lite[10]; /* Icon to lite */ unsigned short clear[10]; /* Icon to clear */#endif} VFD_ICON;/* * For all VFD layouts, the following messages and icon commands * should be provided. If not actually used in a specific layout, * they should be filled as empty. * (1) Messages: nodisc, undisc, open, close, vcd30 * (2) Icon commands: (lite and clear icons should be limited to * 10, otherwise the structure of VFD_icon should be changed) * clear_ab, seta, setb, mono_l, mono_r, stereo, vocal_l, vocal_r, * vocal_off, fb, ff, pause, play, stop, pbc_on, pbc_off, intro_on, * intro_off, more_on, more_off, colon_on, colon_off, track, * hyphen_on, hyphen_off, program, shuffle, repeat_off, repeat_one, * repeat_all, cdda, vcd, ntsc, pal, key_up, key_down, key_resume, * init_state *//************************************************************************ * VFD specific stuff * ************************************************************************/#if !(defined(VFD_FUT166) || defined(VFD_FUT267) || defined(VFD_FUT297) || \ defined(VFD_FUT106) || defined(VFD_FUT33) || defined(VFD_FUT213) || \ defined(VFD_ZEC702) || defined(VFD_ZEC703) || defined(VFD_ZEC704) || \ defined(VFD_ZEC901) || defined(VFD_SVV0708) || defined(VFD_FUT155) || \ defined(VFD_FUT13 ) || defined(VFD_FUT32 ) || defined(VFD_FUT58 ) ||\ defined(VFD_FUT63) || defined(VFD_FUT625) || defined(LCD_DISC) ||\ defined(VFD_HAOS) || defined(LCD_6DANCE)|| defined(LCD_2DANCE))#define VFD_ZEC901#endif#include "fut13.vfd"#include "fut58.vfd"#include "fut32.vfd"#include "fut63.vfd"#include "fut625.vfd"#include "lcd.vfd"#include "dance.vfd"#include "fut33.vfd"#include "fut155.vfd"#include "fut166.vfd"#include "fut213.vfd"#include "fut267.vfd"#include "fut297.vfd"#include "fut106.vfd"#include "zec702.vfd"#include "zec703.vfd"#include "zec704.vfd"#include "zec901.vfd"#include "svv0708.vfd"/************************************************************************ * Stuff common to all VFD's * ************************************************************************//* * Common table for 7-segment digits */unsigned short VFD_digit_table[] = { CHAR_0, CHAR_1, CHAR_2, CHAR_3, CHAR_4, CHAR_5, CHAR_6, CHAR_7, CHAR_8, CHAR_9#ifdef VFD_ZEC1301 , CHAR__#endif};/* * Front panel key assignments */unsigned char VFD_key_tbl[] = {#ifdef VFD_ZEC1301 _STEP_KEY, _PAUSE_KEY, _EJECT_KEY, _POWER_KEY, _NEXT_KEY, _PREVIOUS_KEY, _RETURN_KEY, _EJECT_KEY, /*07,OPEN/CLOSE VFD KEY*/ _MENU_KEY, _TITLE_KEY, _FF_KEY, _FB_KEY, _REPEAT_AB_KEY, _REPEAT_KEY, _NO_KEY, /* _PBC_KEY,*/ _PROGRAM_KEY, _KEY_4, _KEY_3, _KEY_2, _KEY_1, _KEY_7, _KEY_6, _KEY_PLUS_5, _KEY_5, _KEY_PLUS_10, _KEY_0, _KEY_9, _KEY_8, _ROTATE_ANTI_CLOCK_KEY, _THIRD_DISC_KEY, _SECOND_DISC_KEY, _FIRST_DISC_KEY,#ifdef FIVE_CDS _EJECT_DISC1_KEY, _FIFTH_DISC_KEY, _FORTH_DISC_KEY,#else _VOLUME_UP_KEY, _VOLUME_DOWN_KEY, _TIME_KEY,#endif _EXCHANGE_KEY,#ifdef FIVE_CDS _EJECT_DISC5_KEY, _EJECT_DISC4_KEY, _EJECT_DISC3_KEY, _EJECT_DISC2_KEY,#else _NO_KEY, /* POP_KEY */ _NO_KEY, /* CLASS_KEY */ _NO_KEY, /* ROCK_KEY */ _NO_KEY, /* FLAT_KEY */#endif _AUDIO_KEY, _KEY_PLUS, _KEY_RESUME_KEY, _KEY_MINUS, _RESUME_KEY, _MODE_KEY, _VFD_KEY, _GOTO_KEY#endif /*vfd_zec1301*/#ifdef D16311 _NO_KEY, /* 0x00 */ _SHUFFLE_KEY, /* 0x01 */ _PREVIOUS_KEY, /* 0x02 */ _ENTER_KEY, /* 0x03 */ _NO_KEY, /* 0x04 */ _PLAY_KEY, /* 0x05 */ _PAUSE_KEY, /* 0x06 */ _NEXT_KEY, /* 0x07 */ _NO_KEY, /* 0x08 */ _STOP_KEY, /* 0x09 */ _NO_KEY, /* 0x0a */ _EJECT_KEY, /* 0x0b */ _NO_KEY, /* 0x0c */ _FF_KEY, /* 0x0d */ _FB_KEY, /* 0x0e */ _SCREEN_ON_KEY, /* 0x0f */ _NO_KEY, /* 0x10 */ _SET_A_KEY, /* 0x11 */ _REPEAT_KEY, /* 0x12 */ _UP_KEY, /* 0x13 */ _NO_KEY, /* 0x14 */ _RIGHT_KEY, /* 0x15 */ _LEFT_KEY, /* 0x16 */ _DOWN_KEY, /* 0x17 */ _HITRUN_KEY, /* 0x18 */#endif /* D16311 */#ifdef D16312 _POWER_KEY, /* 0x00 */#ifdef VFD_FUT33 _STOP_KEY, /* 0x01 */ _PAUSE_KEY, /* 0x02 */ _PLAY_KEY, /* 0x03 */ _NEXT_KEY, /* 0x04 */ _PREVIOUS_KEY, /* 0x05 */ _EJECT_KEY, /* 0x06 */#else _EJECT_KEY, /* 0x01 */ _PLAY_KEY, /* 0x02 */ _STOP_KEY, /* 0x03 */ _PBC_KEY, /* 0x04 */ _SHUFFLE_KEY, /* 0x05 */ _PAUSE_KEY, /* 0x06 */#endif _NO_KEY, /* 0x07 */ _MODE_KEY, /* 0x08 */ _REPEAT_KEY, /* 0x09 */ _VOCAL_ASSIST_KEY, /* 0x0a */ _RESUME_KEY, /* 0x0b */ _KEY_RESUME_KEY, /* 0x0c */ _NO_KEY, /* 0x0d */ _SLOW_KEY, /* 0x0e */ _NO_KEY, /* 0x0f */ _KEY_MINUS, /* 0x10 */ _ECHO_MINUS, /* 0x11 */ _FB_KEY, /* 0x12 */ _NEXT_KEY, /* 0x13 */ _KEY_PLUS, /* 0x14 */ _ECHO_PLUS, /* 0x15 */ _FF_KEY, /* 0x16 */ _PREVIOUS_KEY, /* 0x17 */#endif /* D16312 */#ifdef MN12510 /* * 12510 can use 5 keyscan, so I don't put two keyscan into one, * just put 4 NO_KEYs --- Liang Weihua */ _POWER_KEY, /* 0x00 */ _EJECT_KEY, /* 0x01 */ _PLAY_KEY, /* 0x02 */ _STOP_KEY, /* 0x03 */ _NO_KEY, /* 0x04 */ _NO_KEY, /* 0x05 */ _NO_KEY, /* 0x06 */ _NO_KEY, /* 0x07 */ _PBC_KEY, /* 0x08 */ _SHUFFLE_KEY, /* 0x09 */ _PAUSE_KEY, /* 0x0a */ _NO_KEY, /* 0x0b */ _NO_KEY, /* 0x0c */ _NO_KEY, /* 0x0d */ _NO_KEY, /* 0x0e */ _NO_KEY, /* 0x0f */ _MODE_KEY, /* 0x10 */ _REPEAT_KEY, /* 0x11 */ _VOCAL_ASSIST_KEY, /* 0x12 */ _RESUME_KEY, /* 0x13 */ _NO_KEY, /* 0x14 */ _NO_KEY, /* 0x15 */ _NO_KEY, /* 0x16 */ _NO_KEY, /* 0x17 */ _KEY_RESUME_KEY, /* 0x18 */ _NO_KEY, /* 0x19 */ _SLOW_KEY, /* 0x1a */ _NO_KEY, /* 0x1b */ _NO_KEY, /* 0x1c */ _NO_KEY, /* 0x1d */ _NO_KEY, /* 0x1e */ _NO_KEY, /* 0x1f */ _KEY_MINUS, /* 0x20 */ _ECHO_MINUS, /* 0x21 */ _FB_KEY, /* 0x22 */ _NEXT_KEY, /* 0x23 */ _NO_KEY, /* 0x24 */ _NO_KEY, /* 0x25 */ _NO_KEY, /* 0x26 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -