📄 safe.c
字号:
/*nono 2-5-20 17:25 modified for differenrt customer with different screen_saver */
//terry,2004/2/6 11:42AM,test condition....
#include "user_init.h"
#include "memmap0.h" // 2004/08/26 yltseng
#include "global.h"
#include "sio.h"
#include "func.h"
#include "kernel.h"
#include "timer.h"
#include "viddec.h"
#include "setup.h"
#include "osd.h"
#include "vpp.h"
//#undef SAFE_WAIT_TIME
//#define SAFE_WAIT_TIME 500
//#undef SAFE_POWEROFF_WAIT_TIME
//#define SAFE_POWEROFF_WAIT_TIME 500
#ifdef REALCOLOR_QSI //liulifeng add 2004-7-12 13:00
extern const UINT32 *osd__pal[];
extern const UINT32 palette_256color_sreensaver[5][256];
#endif
#ifdef EASTWIN
extern UINT8 bIS_LOWBAT; // Kevin Sep 10,04
#endif
#ifndef NO_SHOW_PIC_SAVER//lizhx 20040505
#ifdef SUNPLUS_DVD
#include ".\\Customers\\Sunplus\\safe_sunplus.c"
#elif defined(AKI_DVD) //fengjl 03/10/18
#include ".\\Customers\\Aki\\safe_aki.c"
#elif defined(APEX_DVD) //Maoyong 2004.03.23
#include ".\\Customers\\Apex\\safe_apex.c"
#elif defined(ATLAS_DVD) //Maoyong 2004.03.23
#include ".\\Customers\\atlas\\safe_atlas.c"
#elif defined(BBK_DVD) //fengjl 03/10/17
#include ".\\Customers\\Bbk\\safe_bbk.c"
#elif defined(SMT_DVD) //fengjl 3-10-23 18:44
#include ".\\Customers\\Smt\\safe_smt.c"
#elif defined(ZhengTai_DVD) //fengjl 3-10-23 18:44
#include ".\\Customers\\ZhengTai\\safe_zhengtai.c"
#elif defined(JIEKE_DVD)
#include ".\\Customers\\jieke\\safe_jieke.c"
#elif defined(YADAI_DVD)
#include ".\\Customers\\Yadai\\safe_yadai.c"
#elif defined(YUXING_DVD)
#include ".\\Customers\\Yuxing\\safe_yuxing.c"
#elif defined(YUXING_MIDI_DVD) //xlluo add 04-6-11
#include ".\\Customers\\Yuxing\\safe_yuxing.c"
#elif defined(SANJING_MIDI_DVD) //ouyang add 05-01-27
#include ".\\Customers\\Sanjing\\safe_sanjing.c"
#elif defined(GAODASI_DVD)
#include ".\\Customers\\Gaodasi\\safe_gaodasi.c"
#elif defined(SAMSUNG1_DVD)
#include ".\\Customers\\Sunplus\\safe_sunplus.c"
#elif defined(MUSTEK_DVD)
#include ".\\Customers\\Mustek\\safe_mustek.c"
#elif defined(FUSS_DVD)
#ifdef FUSS_LIDE_DVD
#include ".\\Customers\\fuss\\lide\\safe_fuss_lide.c"
#elif defined(FUSS_SHENGKE_DVD)
#include ".\\Customers\\fuss\\shengke\\safe_fuss_shengke.c"
#elif defined(FUSS_SANYING_DVD)
#include ".\\Customers\\Fuss\\sanying\\safe_fuss_sanying.c"
#elif defined(FUSS_MASCO_DVD)
#include ".\\Customers\\Fuss\\masco\\safe_fuss_masco.c"
#elif defined(FUSS_FEIYANG_DVD)
#include ".\\Customers\\Fuss\\feiyang\\safe_fuss_feiyang.c"
#elif defined(FUSS_SHUNJIAN_DVD)
#include ".\\Customers\\Fuss\\shunjian\\safe_fuss_shunjian.c"
#else
#include ".\\Customers\\Fuss\\safe_fuss.c"
#endif
#elif defined(HUAJIA_DVD)
#include ".\\Customers\\Huajia\\safe_huajia.c"
#elif defined(NINTAUS_DVD)
#include ".\\Customers\\nintaus\\safe_nintaus.c"
#elif defined(NINTAUS_MIDI_DVD)
#include ".\\Customers\\nintaus\\safe_nintaus.c"
#elif defined(SVA_DVD)
#include ".\\Customers\\Sva\\safe_sva.c"
#elif defined(KONKA_DVD)
#include ".\\Customers\\Konka\\safe_konka.c"
#elif defined(GBM_DVD)
#include ".\\Customers\\Gbm\\safe_gbm.c"
#elif defined(GBM_PORTABLE_DVD)
#include ".\\Customers\\gbm_portable\\safe_gbmportable.c"
#elif defined(GBM_AP_DVD)
#include ".\\Customers\\Gbm_ap\\safe_gbm_ap.c"
#elif defined(CNMOTOR_DVD)
#include ".\\Customers\\Cnmotor\\safe_cnmotor.c"
#elif defined(BMT_DVD)
#include ".\\Customers\\BMT\\safe_BMT.c"
#elif defined(SUOJIA_DVD)
#include ".\\Customers\\suojia\\safe_suojia.c"
#elif defined(OUR_MIND_DVD)
#include ".\\Customers\\ourmind\\safe_ourmind.c"
#elif defined(WEIKING_DVD_AMP)
#include ".\\Customers\\weiking\\safe_weiking.c"
#elif defined(APOLLO_DVD)
#include ".\\Customers\\apollo\\safe_apollo.c"
#elif defined(AVIQ_DVD)
#include ".\\Customers\\AViQ\\safe_aviq.c"
#elif defined(FUDI_DVD)
#include ".\\Customers\\fudi\\safe_fudi.c"
#elif defined(CONSER_DVD)
#if defined(CONSERproview_a)
#include ".\\Customers\\Sunplus\\safe_sunplus.c"
#else
#include ".\\Customers\\Sunplus\\safe_sunplus.c"
#endif
#elif defined(PROVIEW_DVD)
#if defined(PROVIEW_288k)
#include ".\\Customers\\Sunplus\\safe_sunplus.c"
#else
#include ".\\Customers\\Sunplus\\safe_sunplus.c"
#endif
#elif defined(ZIHUAN_DVD)
#include ".\\Customers\\zihuan\\safe_zihuan.c"
#elif defined(QISHENG_DVD)
#include ".\\Customers\\QiSheng\\safe_qisheng.c"
#elif defined(YAHSIN_DVD)
#include ".\\Customers\\YaHsin\\safe_yahsin.c"
#elif defined(SKYWORTH_DVD)
#include ".\\Customers\\SkyWorth\\safe_skyworth.c"
#elif defined(SKYTECH_DVD)
#include ".\\Customers\\Skytech\\safe_skytech.c"
#elif defined(MICO_DVD)
#include ".\\Customers\\mico\\safe_mico.c"
#elif defined (KSD_DVD)
#include ".\\Customers\\TrendDigit\\safe_ksd.c"
#elif defined(DESAY_DVD)
#include ".\\Customers\\Desay\\safe_desay.c"
#elif defined(MINTON_DVD)
#include ".\\Customers\\Minton\\safe_minton.c"
#elif defined(IDALL_DVD)
#include ".\\Customers\\IDall\\safe_idall.c"
#elif defined(EASTECH_DVD) //2004-4-2 1:31 wsf
#include ".\\Customers\\EASTECH\\safe_eastech.c"
#elif defined(EVERSTAR_DVD)
#include ".\\Customers\\everstar\\safe_everstar.c"
#elif defined(QISHENG_DVD) // alan, 2003/8/29 12:32AM
#include ".\\Customers\\qisheng\\safe_qisheng.c"
#elif defined(VTREK_DVD) //wanghaoying 2003-9-10 20:56
#include ".\\Customers\\Vtrek\\safe_vtrek.c"
#elif defined(INTECH_DVD) //nono 3-9-25 14:14
#include ".\\Customers\\intech\\safe_intech.c"
#elif defined(GENTEK_DVD)
#include ".\\Customers\\Gentek\\safe_gentek.c"
#elif defined(HUIFENGYUAN_DVD)
#include ".\\Customers\\HuiFengYuan\\safe_huifengyuan.c"
#elif defined(HENGCHEN_DVD)
#include ".\\Customers\\HengChen\\safe_hengchen.c"
#elif defined(HARMA_DVD) //3-10-24 1:38张宇P
#include ".\\Customers\\HARMA\\safe_harma.c"
#elif defined(HANYANG_DVD) //CAOH 2004-4-6 16:53
#include ".\\Customers\\HANYANG\\safe_HANYANG.c"
#elif defined(ACTIMA_DVD) //2004-9-14 09:22張宇M
#include ".\\Customers\\actima\\safe_actima.c"
#elif defined(ARGUS_PORTABLE_DVD)
#include ".\\Customers\\argus_portable\\safe_argusportable.c"
#elif defined(QSI_PORTABLE_DVD)//jhuang 2004/7/19
#include ".\\Customers\\qsi_portable\\safe_qsiportable.c"
#elif defined(WYD_DVD) //3-10-27 1:50张宇P
#include ".\\Customers\\WYD\\safe_WYD.c"
#elif defined(HONGTU_DVD) //2003-11-25 03:56张宇P
#include ".\\Customers\\HONGTU\\safe_HONGTU.c"
#elif defined(KENLOON_DVD) //2004-4-14 11:19张宇M
#include ".\\Customers\\kenloon\\safe_kenloon.c"
#elif defined(SZMALATA_DVD) //2004-2-3 01:18张宇P
#include ".\\Customers\\SZMALATA\\safe_SZMALATA.c"
#elif defined(TONIC_DVD) //2004-2-3 01:18张宇P
#include ".\\Customers\\TONIC\\safe_TONIC.c"
#elif defined(MALATA_DVD) //2003-11-25 03:56张宇P
#include ".\\Customers\\MALATA\\safe_MALATA.c"
#elif defined(NEWFUSS_DVD) //2003-11-25 03:56张宇P
#include ".\\Customers\\NEWFUSS\\safe_NEWFUSS.c"
#elif defined(TIANKE_DVD) //3-10-24 1:38张宇P
#include ".\\Customers\\TIANKE\\safe_TIANKE.c"
#elif defined(WEICHENG_DVD)
#include ".\\Customers\\weicheng\\safe_weicheng.c"
#elif defined(XUKE_DVD)
#include ".\\Customers\\xuke\\safe_xuke.c"
#elif defined(XINGWEIKE_DVD)
#include ".\\Customers\\XINGWEIKE\\safe_xingweike.c"
#elif defined(YANGYU_DVD)
#include ".\\Customers\\YangYu\\safe_yangyu.c"
#elif defined(ALON_DVD)
#include ".\\Customers\\Alon\\safe_alon.c"
#elif defined(TONGFANG_DVD)
#include ".\\Customers\\TongFang\\safe_tongfang.c"
#elif defined(XINDE_DVD)
#include ".\\Customers\\XinDe\\safe_xinde.c"
#elif defined(XINGQIU_DVD)
#include ".\\Customers\\xingqiu\\safe_xingqiu.c"
#elif defined(ORITRON_DVD)
#if defined(ORITRON_DVD4105)
#include ".\\Customers\\Oritron\\safe_oritron_4105.c"
#else
#include ".\\Customers\\Oritron\\safe_oritron.c"
#endif
#elif defined (ORIENTPOWER_DVD)
#include ".\\Customers\\Orientpower\\safe_orientpower.c"
#elif defined(SYBER_DVD) //2003-11-19 9:04 David
#include ".\\Customers\\SYBER\\safe_syber.c"
#elif defined(SHIDELI_DVD)
#include ".\\Customers\\SHIDELI\\safe_shideli.c" //gerry,2004-4-22 16:10
#elif defined(THAKRAL_DVD)
#include ".\\Customers\\thakral\\safe_thakral.c" //suqiaoli,2004-9-16
#elif defined(EASTWIN_PORTABLE_DVD)
#include ".\\Customers\\Eastwin\\safe_eastwin.c"
#elif defined(TEAC_PORTABLE_DVD)//TEAC
#include ".\\Customers\\teac_portable\\safe_teac.c"
#else
#include ".\\Customers\\Sunplus\\safe_sunplus.c"
#endif
#endif//NO_SHOW_PIC_SAVER
//========================================================================
// var. declare
//========================================================================
//slow down screen saver image moving speed
UINT32 save_srn_start_t;
UINT8 safe_on=0; //0:system is active, 1:system enter screen-saver, 2:exit screen-saver
INT8 safeMode;
BYTE safeForceEnter=0;
BYTE safe_state=0;
enum {
SAFE_INIT=0,
SAFE_DISPLAYING=1,
};
#ifdef NO_SHOW_PIC_SAVER//lizhx 20040505
#undef OSD_SAVER_W
#undef OSD_SAVER_H
#define OSD_SAVER_W 56
#define OSD_SAVER_H 24
#endif
/*
#define NORMAL_HEADER 0
#define EQ_HEADER 1
#define SETUP_HEADER 2
#define NES_HEADER 3
*/
extern BYTE osd0_state;
extern BYTE header_id;
extern const UINT8 osd_header_offset[8];
extern void wait_v_blank(void);
extern void ENABLE_OSD(void);
extern void DISABLE_OSD(void);
extern void osd_create_region1(t_osd_region*, int, int, t_osd_region*, BYTE, BYTE);
extern void DispPolling(BYTE bReset);
extern int dsp3_decompress(const BYTE*, BYTE*);
extern void SetOsdCol(UINT8, UINT8, UINT8, UINT32);
extern void DispFadeOut();
extern BYTE setup_GetSSaveType();
#ifdef CD_PLAYER
extern void osd_init_cdplayer();
#endif
#ifdef VIRTUAL_KEYBOARD
extern BYTE KeyID;
extern void osd_draw_virtual_keyboard(int xStart, int yStart,BYTE r);
extern void hl_keyboard_button(BYTE KeyID);
#endif
#ifdef NEWSTYLE_WINDOW
extern void exit_browse_func(void);
#endif
extern void osd_init_screensaver(void);
extern void osd_draw_256color_bmp(int,int,BYTE*,BYTE);
void DrawOsdScreenSaver(UINT32 xPos, UINT32 yPos);
void ChangeColorTable(void);
void GetNewSaverLoc(void);
void MovePointer(void);
void SetMovePointer(UINT8 reg,UINT16 reg_x,UINT16 reg_y);//nono 2004-5-4 12:23
void DisplayScreenSaver(void);
void ExitOsdScreenSaver(void);
void InitOsdScreenSaver(void);
void ColorDisplay(void);
#if (defined(DVB_SETUP)&&!defined(SUPPORT_DVD_OSD)&&defined(OSD_SCREEN_SAVER)) //xsyan add
static void enable_osd_saver(void);
#endif
#define OSD_DATA_OFFSET(f) (osd_header_offset[(f)&OSD_FORMAT_MASK])
#define OBV_BASE (SDRAM_BASE + regs0->osd_base_addr*1024)
#define get_osdbuf_baseptr() ((void *)OBV_BASE)
static const BYTE Pattern_Saver[] =
{
0xff, //0000-->11111111
0xfd, //0001-->11111101
0xf7, //0010-->11110111
0xf5, //0011-->11110101
0xdf, //0100-->11011111
0xdd, //0101-->11011101
0xd7, //0110-->11010111
0xd5, //0111-->11010101
0x7f, //1000-->01111111
0x7d, //1001-->01111101
0x77, //1010-->01110111
0x75, //1011-->01110101
0x5f, //1100-->01011111
0x5d, //1101-->01011101
0x57, //1110-->01010111
0x55, //1111-->01010101
};
#define __palette4F(G,B,R,A) \
(((UINT32)((G) & 0xff) << 24) | ((UINT32)((B) & 0xff) << 16) | ((UINT32)((R) & 0xff) << 8) | ((A) & 0xff))
#ifdef COLORFUL_SCREENSAVER
#define PAL4_YELLOW __palette4F(198, 0, 198, 0xff) //yellow
#define PAL4_BLUE __palette4F(128, 192, 0, 0xff) //blue
#define PAL4_GREEN1 __palette4F(255, 0, 0, 0xff) //green
#define PAL4_WHITE __palette4F(129, 163, 242, 0xff) //white
#define PAL4_RED __palette4F(10, 140, 216, 0xff) //red
#define PAL4_YELLOW __palette4F(198, 0, 198, 0xff) //yellow
#define PAL4_ORAGNGE __palette4F(103, 0, 206, 0xff) //orange
#define PAL4_GREEN2 __palette4F(255, 0, 0, 0xff) //green
#define PAL4_PINK __palette4F(40,148,255, 0xff) //pink //xulf0721
#define PAL4_PURPEL1 __palette4F(58,215,176, 0xff) //purpel
#define PAL4_PURPEL2 __palette4F(68,138,68, 0xff) //purpel
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -