vfd_eq.h
来自「代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考」· C头文件 代码 · 共 446 行
H
446 行
#ifndef __VFD_R_H
#define __VFD_R_H
/*
** 777777
** 5 6
** 5 6
** 444444
** 2 3
** 2 3
** 111111
*/
#define VFD_EQ_MAX 4
#define VFD_7SEG_SG (1<<3)
#define VFD_7SEG_SF (1<<4)
#define VFD_7SEG_SE (1<<1)
#define VFD_7SEG_SD (1<<0)
#define VFD_7SEG_SC (1<<2)
#define VFD_7SEG_SB (1<<5)
#define VFD_7SEG_SA (1<<6)
#include "vfd_7seg.h"
#include "macro.h"
#include "fs9660.h"
#include "user_init.h"
//#define VFD_DOT_MIC1 (16)
//#define VFD_DOT_MIC2 (17)
#define VFD_DOT_MIC (72)
#define VFD_DOT_MP3 (88)
#define VFD_DOT_SVCD (89)
#define VFD_DOT_VCD (90)
#define VFD_DOT_CD (91)
#define VFD_DOT_MINUS (100)
#define VFD_DOT_PAL (100)
#define VFD_DOT_NTSC (100)
#define VFD_DOT_MEM (100)
#define VFD_DOT_PLAYB (100)
#define VFD_DOT_PLAYA (100)
#define VFD_DOT_REPALL (94)
#define VFD_DOT_REP1 (100)
#define VFD_DOT_REPEAT (95)
#define VFD_DOT_MINSEC (100)
#define VFD_DOT_MINSEC1 (39)
#define VFD_DOT_MINSEC2 (47)
#define VFD_DOT_MIN (100)
#define VFD_DOT_SEC (100)
#define VFD_DOT_COLON (100)
#define VFD_DOT_DASH (100)
#define VFD_DOT_RESUME (100)
#define VFD_DOT_REMAIN (100)
#define VFD_DOT_PAUSE (93)
#define VFD_DOT_PLAY (92)
#define VFD_DOT_PBC (100)
#define VFD_DOT_RAN (100)
#define VFD_DOT_PGM (87)
#define VFD_DOT_VCD20 (100)
#define VFD_DOT_OVER (100)
#define VFD_DOT_2R (55)
#define VFD_DOT_1L (63)
#define VFD_DOT_TIME (100)
#define VFD_DOT_SPACE (100)
#define VFD_DOT_INTRO (100)
#define VFD_DOT_PGM01 (100)
#define VFD_DOT_PGM02 (100)
#define VFD_DOT_PGM03 (100)
#define VFD_DOT_PGM04 (100)
#define VFD_DOT_PGM05 (100)
#define VFD_DOT_PGM06 (100)
#define VFD_DOT_PGM07 (100)
#define VFD_DOT_PGM08 (100)
#define VFD_DOT_PGM09 (100)
#define VFD_DOT_PGM10 (100)
#define VFD_DOT_PGM11 (100)
#define VFD_DOT_PGM12 (100)
#define VFD_DOT_PGM13 (100)
#define VFD_DOT_PGM14 (100)
#define VFD_DOT_PGM15 (100)
#define VFD_DOT_PGM16 (100)
//#define VFDA_P0 10
#define VFDA_P1 8
#define VFDA_M0 7
#define VFDA_M1 6
#define VFDA_S0 5
#define VFDA_S1 4
BYTE vfd_eq_display; //jack added 02/12/15
#define VFD_EQ_MAX 4
BYTE vfd_eq[VFD_EQ_MAX];
const BYTE vfd_addr[5] = {8,7,6,5,4};
void print_vfd_digital(BYTE no,BYTE data)
{
if(no<5)
{
vfd_mem[vfd_addr[no]]&=(~0x7f);
vfd_mem[vfd_addr[no]]|=(vfd_digit[data]);
}
}
void vfd_disc_turn(BYTE mode)
{
static BYTE i=8;
if(i<1)
i=8;
if(mode==2)
{
vfd_mem[10]=0x3f;
vfd_mem[10]&=(~(1<<(i%8)));
i--;
//vfd_refresh();
switch(i)
{
case 1:
vfd_dot(VFD_DOT_ON,VFD_DOT_COLON);
break;
case 4:
vfd_dot(VFD_DOT_OFF,VFD_DOT_COLON);
default:
break;
}
}
else if(mode==1)
{
vfd_mem[10]=0x3f;
vfd_dot(VFD_DOT_ON,VFD_DOT_COLON);
}
else if(mode==0)
{
vfd_mem[10]=0x3f;
vfd_dot(VFD_DOT_OFF,VFD_DOT_COLON);
}
}
void vfd_cdtype(BYTE cd_types)
{
switch(cd_types)
{
case CDCVD:
case CDSVCD:
vfd_dot(VFD_DOT_ON,VFD_DOT_SVCD);
break;
case CDVCD10:
case CDVCD11:
case CDVCD20:
vfd_dot(VFD_DOT_ON,VFD_DOT_VCD);
break;
case CDDA:
vfd_dot(VFD_DOT_ON,VFD_DOT_CD);
break;
case CDVCD30:
break;
case CDROM:
vfd_dot(VFD_DOT_ON,VFD_DOT_MP3);
break;
}
}
void vfd_close(void)
{
print_vfd_digital(0,12);
print_vfd_digital(1,21);
print_vfd_digital(2,24);
print_vfd_digital(3,28);
print_vfd_digital(4,14);
}
void vfd_readtoc(void)
{
#if 0
int i;
init_vfd_clear(0);
vfd_disc_turn(0);
for(i=0;i<5;i++)
vfd_mem[vfd_addr[i]]|=VFD_7SEG_SG;
#endif
}
void vfd_nodisc(void)
{
print_vfd_digital(0,23);
print_vfd_digital(1,24);
print_vfd_digital(2,13);
print_vfd_digital(3,18);
print_vfd_digital(4,28);
//print_vfd_digital(5,12);
}
void vfd_open(void)
{
print_vfd_digital(1,24);
print_vfd_digital(2,25);
print_vfd_digital(3,14);
print_vfd_digital(4,23);
#ifdef VFD_EQ
vfd_eq_display = 0;
#endif
}
void vfd_show_time(void)
{
static BYTE cd_time_ss=0xff;//0; wyf 2-4-1 15:57
if(cd_disp_ss!=cd_time_ss)
{
cd_time_ss= cd_disp_ss;
//print_vfd_digital(0, cd_disp_trk/10);
if(cd_disp_trk<16)
print_vfd_digital(0, cd_disp_trk);
else
vfd_mem[vfd_addr[0]]&=(~0x7f);
print_vfd_digital(1, cd_disp_mm/10);
print_vfd_digital(2, cd_disp_mm%10);
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC1);
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC2);
print_vfd_digital(3, cd_disp_ss/10);
print_vfd_digital(4, cd_disp_ss%10);
}
else
{
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC1);
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC2);
}
}
void vfd_pause(void)
{
vfd_dot(VFD_DOT_ON,VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC1);
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC2);
}
void vfd_audio(void)
{
switch(audio_channel)
{
case CH_LR:
vfd_dot(VFD_DOT_ON,VFD_DOT_1L);
vfd_dot(VFD_DOT_ON,VFD_DOT_2R);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_L:
#endif
case CH_LL:
vfd_dot(VFD_DOT_ON,VFD_DOT_1L);
vfd_dot(VFD_DOT_OFF,VFD_DOT_2R);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_R:
#endif
case CH_RR:
vfd_dot(VFD_DOT_OFF,VFD_DOT_1L);
vfd_dot(VFD_DOT_ON,VFD_DOT_2R);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_LR:
vfd_dot(VFD_DOT_ON,VFD_DOT_1L);
vfd_dot(VFD_DOT_ON,VFD_DOT_2R);
break;
#endif
}
}
void vfd_format(void)
{
if(tv_format==TV_NTSC)
{
vfd_dot(VFD_DOT_ON,VFD_DOT_NTSC);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAL);
}
else
if(tv_format==TV_PAL)
{
vfd_dot(VFD_DOT_ON,VFD_DOT_PAL);
vfd_dot(VFD_DOT_OFF,VFD_DOT_NTSC);
}
}
void vfd_playmode(void)
{
// vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
//vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
if(cd_type_loaded==CDROM||cd_type_loaded==CDDA)
{
vfd_dot(VFD_DOT_OFF,VFD_DOT_PBC);
return;
}
else
{
if(IsPBCOn ())
vfd_dot(VFD_DOT_ON,VFD_DOT_PBC);
else
vfd_dot(VFD_DOT_OFF,VFD_DOT_PBC);
}
}
void vfd_repeat(void)
{
if(rep_mode==REPEAT_TRACK)
{
vfd_dot(VFD_DOT_ON,VFD_DOT_REP1);
vfd_dot(VFD_DOT_ON,VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPALL);
}
else if(rep_mode==REPEAT_DISC)
{
vfd_dot(VFD_DOT_ON,VFD_DOT_REP1);
vfd_dot(VFD_DOT_ON,VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_ON,VFD_DOT_REPALL);
}
else //repeat cancel
{
vfd_dot(VFD_DOT_OFF,VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPALL);
}
#if 0
switch (rep_ab_mode)
{
case REPEAT_FIND_A:
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAYB);
break;
case REPEAT_FIND_B:
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAYB);
break;
default:
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAYB);
}
#endif
return;
}
void vfd_refresh(void)
{
vfd_playmode();
vfd_format();
vfd_cdtype(cd_type_loaded);
vfd_audio();
}
void vfd_stop(void)
{
vfd_show_time();
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC1);
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC2);
if(IsKYProg())
vfd_dot(VFD_DOT_ON,VFD_DOT_PGM);
else
vfd_dot(VFD_DOT_OFF,VFD_DOT_PGM);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPEAT);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPALL);
#ifdef VFD_EQ
vfd_eq_display = 0;
#endif
return;
}
void vfd_normal_state(void)
{
//int mic_on_off_flag;
//UINT16 eq[8];
if(cd_type_loaded != CDNODISK)
{
if(Gmem.gmp3.gifsFunc!=FS_FUNC_JPEG)
{
vfd_disc_turn(2);
vfd_show_time();
}
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
if(prog_state == PLAY_PROGRAM)
vfd_dot(VFD_DOT_ON,VFD_DOT_PGM);
if(au_get_mic_mode() != MIC_OFF)
vfd_dot(VFD_DOT_ON,VFD_DOT_MIC);
else
vfd_dot(VFD_DOT_OFF,VFD_DOT_MIC);
}
else
{
init_vfd_clear(0);
vfd_nodisc();
}
return;
}
void vfd_game(void)
{
print_vfd_digital(0, GetCmdSrc(sys_cmd) / 10);
print_vfd_digital(1, GetCmdSrc(sys_cmd) % 10);
print_vfd_digital(2, 0);
print_vfd_digital(3, 0);
print_vfd_digital(4, 0);
print_vfd_digital(5, 0);
}
void vfd_game_clear(void)
{
print_vfd_digital(0, 0);
print_vfd_digital(1, 0);
}
void vfd_jpeg_disp(void)
{//ok!
init_vfd_clear(0);
print_vfd_digital(1,cd_disp_trk/1000);
print_vfd_digital(2,(cd_disp_trk / 100) % 10);
print_vfd_digital(3,(cd_disp_trk / 10) % 10);
print_vfd_digital(4,cd_disp_trk % 10);
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
}
#endif/*__VFD_R_H*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?