找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1450|回复: 0
收起左侧

sunplus屏文件

[复制链接]
ID:259469 发表于 2017-12-9 16:11 | 显示全部楼层 |阅读模式
此是SUNPLUS屏文件


#include "user_init.h"
#include "config.h"
#include "global.h"
#include "vfdfunc.h"
//#include "vfd_7seg.h"
#include "stdlib.h"
#include "user_if.h"
#include "audif.h"
#include "kernel.h"
#include "auctrl.h"

extern UINT16 Is_MP3_STATE(void);
//#define CDROM_AUTO

//extern UINT16        coding_mode_now;
UINT8  spin_speed;
UINT8  color_timer=0;
#define OFFSET        20
#define MAX_POS        7
#define VFD_DISPLAY_SIZE 14
#define VFD_DISPLAY_MODE  3


#define DISC_SIZE 1
const UINT8 vfd_disc[DISC_SIZE] = {255};

#define TOTAL_SEG 4

BYTE vfd_adddress[7]=
{
     3,2,1,0,7,8,9,
};

BYTE vfd_grid_add[TOTAL_SEG]={0,22,32,48};


const UINT16 vfd_char[26]=
{
        VFD_7SEG_A,
        VFD_7SEG_B,
        VFD_7SEG_C,
        VFD_7SEG_D,
        VFD_7SEG_E,
        VFD_7SEG_F,
        VFD_7SEG_G,
        VFD_7SEG_H,
        VFD_7SEG_I,
        VFD_7SEG_J,
        VFD_7SEG_K,
        VFD_7SEG_L,
        VFD_7SEG_M,
        VFD_7SEG_N,
        VFD_7SEG_O,
        VFD_7SEG_P,
        VFD_7SEG_P,//q
        VFD_7SEG_R,
        VFD_7SEG_S,
        VFD_7SEG_T,
        VFD_7SEG_U,
        VFD_7SEG_U,//v
        VFD_7SEG_W,
        VFD_7SEG_X,
        VFD_7SEG_Y,
        VFD_7SEG_Z //z
};



const  UINT16  vfd_digit[] =
{
        VFD_7SEG_0,
        VFD_7SEG_1,
        VFD_7SEG_2,
        VFD_7SEG_3,
        VFD_7SEG_4,
        VFD_7SEG_5,
        VFD_7SEG_6,
        VFD_7SEG_7,
        VFD_7SEG_8,
        VFD_7SEG_9
};

/****************************************************************************************/
/*  cpy_src_len: bit 8 is 1 means that bit 8 means that only show partial string between 0 and cpy_src_len */
/*         bit 8 is 0: normal show string, that is copy total string                        */
/*         bit0~bit7 mean that copied source length                                        */
/*  start_p: start position of VFD for show string(position:0~9)                        */
/****************************************************************************************/
void  vfd_set_str(UINT8 id, char *s)
{
        BYTE i,j;
        UINT16 c=0;
        BYTE    var_data;
        if(id) {//english id
                //s=(char *)_OsdMessegeFont1[id][0];
                s=(char *)&(_OsdMessegeFont1[0][id][0]);
        }

        i=strlen(s);

        //linebuf[20]=0;
        for(j=TOTAL_SEG;j>0;j--)
        {
                if(i>0)
                {
                        i--;
                        if( (s[i]>='a')&&(s[i]<='z') )
                                c=vfd_char[s[i]-0x20-'A'];
                        else if( (s[i]>='A')&&(s[i]<='Z') )
                                c=vfd_char[s[i]-'A'];
                        else if( (s[i]>='0')&&(s[i]<='9') )
                                c=vfd_digit[s[i]-'0'];
                        else
                        {
                                if(s[i]==0x20)
                                {
                                        c=0;
                                }
                        }
                       
                        //linebuf[2*j+OFFSET]=c>>8;
                        //linebuf[2*j-1+OFFSET]=c&0x00ff;
                        linebuf[j+OFFSET]=c&0xff;
                }else
                  {
                        //linebuf[2*j+OFFSET]=0x00;
                        //linebuf[2*j-1+OFFSET]=0x00;
                        linebuf[j+OFFSET]=0x00;
                  }
        }/*for loop*/

         for(i=TOTAL_SEG;i>0; i--){
          var_data=i;//vfd_7seg_p[i];
          for(j=0;j<7;j++){
            if((linebuf[var_data+OFFSET]>>j)&0x01)
              vfd_set_dot(vfd_adddress[j]+vfd_grid_add[i-1]);        //light coresponding dot
            else
              vfd_reset_dot(vfd_adddress[j]+vfd_grid_add[i-1]);        //clear former data  
          }   
        }       
                                               
}



void vfd_set_cd_type(void)
{
       
                #ifdef CDROM_AUTO
         AUTOS++;
         if(AUTOS==50) AUTOS=11;
         #endif
       
       
        switch(cd_type_loaded)
        {
        case CDDVD:
       
                vfd_set_dot(VFD_DOT_DVD);
               
                if(get_angle_Ns()>1)
                        vfd_set_dot(VFD_DOT_ANGLE);
                else
                        vfd_reset_dot(VFD_DOT_ANGLE);
               
                break;
               
        case CDROM:
                if( (Is_MP3_STATE())&&(Mp3ReadFinish)&&(IS_AUDIF_CODING_MODE_MP3))//nono 2-5-10 13:50       
                {
                        vfd_set_dot(VFD_DOT_MP3);
                        vfd_reset_dot(VFD_DOT_MP4);       
                }else  if( GetCurrentFileType() == CDROM_MP4 )                
                {       
                        vfd_reset_dot(VFD_DOT_MP3);
                        vfd_set_dot(VFD_DOT_MP4);
                }else{                       
                        vfd_reset_dot(VFD_DOT_MP3);
                        vfd_reset_dot(VFD_DOT_MP4);                       
                }               
                break;
               
        case CDDA:
               
                vfd_set_dot(VFD_DOT_CD);
               
                break;
               
        case CDUNKNOWN:
                break;
               
        case CDSVCD:

                vfd_set_dot(VFD_DOT_V);
                break;       
        default://vcd       
                                       #ifdef CDROM_AUTO
                       if (GetCurrentFileType() == CDROM_JPEG)
                        {
                                if((AUTOS==8)&&(disp_trk_now<=1)) ircmd_play();
                        }
                        else                
                                {
                                        if((AUTOS==3)&&(disp_trk_now<=1)) ircmd_play();
                                        }
                        #endif
               
               
                vfd_set_dot(VFD_DOT_V);
                break;
               
        }
}

void vfd_set_showtime(void)
{
       
        int track_num;
        BYTE show_mm_tmp;

        if(cd_type_loaded==CDDVD)
               
                if(play_state==VCD_STATE_STOP)
                {
                        track_num=get_tt_info(DISP_TT_Ns);//DISP_CH);
                }
                else
                {
                        track_num=get_tt_info(DISP_CH);//nono 1-12-12 21:15
                }
               
                else
                        track_num=disp_trk_now;
                       
                show_mm_tmp=(show_time_hh*60+show_time_mm)%100;
           {
                show_mm_tmp=(show_time_hh*60+show_time_mm)%100;               
                psprintf(linebuf,"%1d%02d%02d",track_num,show_mm_tmp,show_time_ss);

                vfd_set_str(0,linebuf);               
               
                vfd_set_dot(VFD_DOT_MINSEC);
                vfd_set_dot(VFD_DOT_MIN);
                vfd_set_dot(VFD_DOT_MIN2);

    }
                       

}




void vfd_set_audio(void)
{
        vfd_reset_dot(VFD_DOT_DTS);
        vfd_reset_dot(VFD_DOT_DOBLY);
#ifdef DUMMY_DTS
                if(dummy_dts==1)
#else       
                if( ( coding_mode_now&(AUDIF_CODING_MODE_DTS|AUDIF_CODING_MODE_DTSCD) )||(cd_subtype==CD_DTS) )//nono 2-7-25 16:13
#endif
        {
#ifndef VFD_NO_DTS_LIGHT               
                vfd_set_dot(VFD_DOT_DTS);
#endif                               
        }
        else if(coding_mode_now==AUDIF_CODING_MODE_AC3)
        {
                vfd_set_dot(VFD_DOT_DOBLY);
               
        }
       

#if 0
#ifdef VFD_DOT_MIC1
        switch(audio_channel)
        {
        case CH_LR:
        case CH_RR:
        case CH_LL:
                //         vfd_reset_dot(VFD_DOT_MIC1);
        //         vfd_reset_dot(VFD_DOT_MIC2);
                break;
               
        case CH_AUTO_L:
        case CH_AUTO_R:
                vfd_set_dot(VFD_DOT_MIC1);
        //        vfd_set_dot(VFD_DOT_MIC2);
                break;
        }
#endif
#endif


#if 1          //liliuhai add
        switch(audio_channel)
        {
        case CH_LR:
                        vfd_set_dot(VFD_DOT_1L);
                        vfd_set_dot(VFD_DOT_2R);
                        vfd_reset_dot(VFD_DOT_MIC1);
                break;       
        case CH_RR:
                        vfd_reset_dot(VFD_DOT_1L);
                        vfd_set_dot(VFD_DOT_2R);
                        vfd_reset_dot(VFD_DOT_MIC1);
                break;
        case CH_LL:
                        vfd_set_dot(VFD_DOT_1L);
                        vfd_reset_dot(VFD_DOT_2R);
                        vfd_reset_dot(VFD_DOT_MIC1);
                break;

        }
#endif

       
#if 0
#ifdef VFD_DOT_1L
        switch(audio_effect)
        {
        case SE_STEREO:
                vfd_reset_dot(VFD_DOT_1L);
                vfd_reset_dot(VFD_DOT_2R);
                break;
        case SE_HALL:
        case SE_LIVE:
        case SE_THEATER:
        case SE_ROOM:
                vfd_set_dot(VFD_DOT_1L);
                vfd_set_dot(VFD_DOT_2R);
                break;
        }
#endif
#endif
       
}




void vfd_set_playback(void)
{
       
       
       
        if(play_state==VCD_STATE_PAUSE)
        {
                //erase_vfd_mem();
                vfd_set_dot(100);
                vfd_set_dot(VFD_DOT_PAUSE);
                vfd_reset_dot(VFD_DOT_PLAY);
                //vfd_set_str(STR_OS_PAUSE,"");
        }else
        {
                if((play_state!=VCD_STATE_STOP)&&(play_state!=VCD_STATE_MP3_FILELIST))
                        vfd_set_dot(VFD_DOT_PLAY);
                vfd_reset_dot(VFD_DOT_PAUSE);
        }
       
       
        if(IsPBCOn())
        {
               
                vfd_set_dot(VFD_DOT_PBC);
               
        }
        else
        vfd_reset_dot(VFD_DOT_PBC);

        vfd_set_cd_type();
        vfd_set_audio();
        //printf("V=%x\n",vfd_mem[3]);
        vfd_set_showtime();

}


UINT16        vfd_set_no_disc_state(UINT16 index)
{
        char light_str[]="Errd";
       
       
    erase_vfd_mem();
    if (bDiscType == CD_OKO)         
    {
                vfd_set_str(0,light_str);
               
    }else
        vfd_set_str(0,"NODI");
       
        return index;
}



UINT16        vfd_set_close_state(UINT16 index)
{
       
        //char light_str[]="CLOSE";
       
       
    erase_vfd_mem();
       
    if(is_test_unit()==TRUE||system_state==SYSTEM_READ_TITLE||system_state==SYSTEM_NODISC)
        {
        //vfd_set_str(STR_OS_READ,"");
        vfd_set_str(0,"LOAD");

        }
        else
        {
        //vfd_set_str(STR_OS_CLOSE,"");
          vfd_set_str(0,"CLOS");

        };
    return index;
}



UINT16        vfd_set_toc_state(UINT16 index)
{
       
        //char light_str[]="READ";
       
    erase_vfd_mem();
    //vfd_set_str(STR_OS_READ,"");
    vfd_set_str(0,"LOAD");
    return index;
}


UINT16        vfd_set_open_state(UINT16 index)
{
       
        //char light_str[]="OPEN";
       
    erase_vfd_mem();
    //vfd_set_str(STR_OS_OPEN,"");
        vfd_set_str(0,"OPEN");
                  
    return index;
}


/*
UINT16        vfd_set_game_state(UINT16 index)
{


        vfd_reset_dot(VFD_DOT_PLAY);
       
          return index;
          }
          
*/

UINT16        vfd_set_pause_state(UINT16 index)
{
       
       
       
        vfd_reset_dot(VFD_DOT_PLAY);
       
        return index;
}


UINT16        vfd_set_mp3_state(UINT16 index)
{
        //if(play_state!=VCD_STATE_STOP)
                vfd_reset_dot(VFD_DOT_PLAY);
               
        return index;
}


UINT16        vfd_set_stop_state(UINT16 index)
{
    int i;

    vfd_reset_dot(VFD_DOT_PLAY);
    return index;
}



UINT16        vfd_set_normal_state(UINT16 index)
{

    index=vfd_set_disc_run(index);
       
    return index;
}


Desktop.7z

3.23 KB, 下载次数: 2, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表