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

📄 talk.h

📁 一个不错的硬盘播放器程序,包含VFD显示程序,红外线遥控程序,硬盘读写程序,及解码程序等.
💻 H
字号:
/* SCCSID @(#)talk.h	1.75 2/27/98 */#ifndef __TALK_H__#define __TALK_H__/* Put your new commands before CMD_invalid. Ming 7/28 */typedef enum {    CMD_null,    CMD_read,    CMD_write,    CMD_die,			    /* Peek, all single byte except lba for 4. */    CMD_sys_status,    CMD_vbv_wrptr,    CMD_lba,    /* Poke, all single byte */    CMD_stop_video,    CMD_skip_video,    CMD_slow_video,    CMD_pause_video,    CMD_trick_mode,    CMD_tv_mode,#ifdef MULTISYNC    CMD_tv_type,#endif    CMD_spu_on,    CMD_spu_btn_mv,    CMD_spu_attrib,    CMD_show_logo,    CMD_remote_key,    CMD_vbv_full,    CMD_sbv_full,    CMD_I,    CMD_cell_still,#ifdef BT865A     CMD_aps,#endif#ifdef LINE21     CMD_closed_caption_on,#endif#ifdef WEBDVD    CMD_mute_dac,#endif    CMD_set_aclk,    /* flirt */    CMD_I_urgent,    /* Signal */    CMD_spu_flush,    CMD_video_skipped,    CMD_flush_video,    CMD_check_vbv_sbv,    CMD_setup_osd_done,    CMD_btn_action_finished,#ifdef CONFORMANCE    CMD_conformance_OSD_flag,#endif    CMD_system_reset,    CMD_bad_ide,    CMD_flush_done,#ifdef LINE21    CMD_clr_CC,    CMD_clr_CC_suspend,#endif    /* Gift */    CMD_spu_plt,    CMD_spu_btn_act,    CMD_spu_hli_slice,    CMD_osd_msg,    CMD_zoom,    /* e2prom */#ifdef I2C_E2PROM    /* e2prom */    CMD_e2prom_write,    CMD_e2prom_read,#endif    /* DVD_VCD */#ifdef DVD_VCD    CMD_dsa,    CMD_dsa_sector_data,    CMD_dsa_msf,    CMD_dsa_toc,    CMD_vfd,    CMD_tmsf,    CMD_sector_header,    CMD_power_down,    CMD_keypad,#endif    CMD_switch_code,    CMD_invalid,    CMD_ack,} hellen_cmds; GBLDEF0(int hellen_timeout);#ifdef BT865AGBLDEF(int aps_type, -1);#endif#ifdef MASTERGBLDEF(int I_at_vbv, -1);GBLDEF0(int flush_done);GBLDEF0(int setup_osd_done);#endif#define ZOOM_NOTHING	0 /* will reset zoom_command to 0 after command process */#define ZOOM_IN		2#define ZOOM_RESET	4#define ZOOM_OUT	8#define ZOOM_PAN_UP	16#define ZOOM_PAN_DOWN	17#define ZOOM_PAN_LEFT	18#define ZOOM_PAN_RIGHT	19#ifdef SLAVEGBLDEF0(int flush_thy_video);GBLDEF0(int flush_thy_spu);GBLDEF0(int master_order_skip);GBLDEF0(int zoom_command);#ifdef SLAVE_JUMPGBLDEF0(int slave_do_jump);#endif /* SLAVE_JUMP */#endif /* SLAVE */extern void	init_hellen(void);extern int	read_hellen(int);extern int	write_hellen(int, int);extern int	peek_hellen(int);extern int	poke_hellen(int, int);extern int	flirt_with_hellen(int, int);extern int	signal_hellen(int);extern int      send_hellen_gift(int cmd, char *data, int length);#ifdef WATCHDOG#define keep_poking_hellen(cmd, x) do { 	\    int retry_count = 0;			\    while (poke_hellen(cmd, x)) {		\	if (retry_count++ > 5) {		\	    EPRINTF(("Hellen is dead!\n"));	\	    longjmp(err_buf, 2); break;		\	}					\	risc_sleep_a_bit(100);			\    }						\} while (0)#define keep_signalling_hellen(cmd) do { 	\    int retry_count = 0;			\    while (signal_hellen(cmd)) {		\	if (retry_count++ > 5) {		\	    EPRINTF(("Hellen is dead!\n"));	\	    longjmp(err_buf, 2); break;		\	}					\	risc_sleep_a_bit(100);			\    }						\} while (0)#define keep_peeking_hellen(cmd, x) do { 	\    int retry_count = 0;			\    while ((x = peek_hellen(cmd))==-1) {	\	if (retry_count++ > 5) {		\	    EPRINTF(("Hellen is dead!\n"));	\	    longjmp(err_buf, 2); break;		\	}					\	risc_sleep_a_bit(100);			\    }						\} while (0)#else#define keep_poking_hellen(cmd, x) do { 	\    int retry_count = 0;			\    while (poke_hellen(cmd, x)) {		\	if (retry_count++ > 5) {		\	    EPRINTF(("Hellen is dead!\n"));	\	    DBG_console(); break;		\	}					\	risc_sleep_a_bit(100);			\    }						\} while (0)#define keep_signalling_hellen(cmd) do { 	\    int retry_count = 0;			\    while (signal_hellen(cmd)) {		\	if (retry_count++ > 5) {		\	    EPRINTF(("Hellen is dead!\n"));	\	    DBG_console(); break;		\	}					\	risc_sleep_a_bit(100);			\    }						\} while (0)#define keep_peeking_hellen(cmd, x) do { 	\    int retry_count = 0;			\    while ((x = peek_hellen(cmd))==-1) {	\	if (retry_count++ > 5) {		\	    EPRINTF(("Hellen is dead!\n"));	\	    DBG_console(); break;		\	}					\	risc_sleep_a_bit(100);			\    }						\} while (0)#endif#define SPU_PLT_LENGTH		64#define SPU_HLI_LENGTH		262#define SPU_HLI_SLICE		30#define SPU_BTN_MV_LENGTH	4#define SPU_BTN_ACT_LENGTH	4#define SETUP_OSD_TRANSFER_LENGTH	27#define OSD_CLEAN		55  /* for clean the osd *//* tell slave currently selected spu stream attribute  */#define SPU_UNKNOWN		0#define SPU_LETTER_BOX		1#define SPU_PAN_SCAN		2#define SPU_WIDE		3#ifdef SLAVEGBLDEF0(int spu_attribute);#endif#ifndef DVD_VCD#define hellen_is_alive			(peek_hellen(CMD_sys_status) == 0x43)#else /* for vcd, we use different value */#define hellen_is_alive			(peek_hellen(CMD_sys_status) == 0x49)#endif#define vbv_fullness_from_slave()	peek_hellen(CMD_vbv_status)#define lba_from_master()		peek_hellen(CMD_lba)#define vbv_wrptr_from_slave(x)		keep_peeking_hellen(CMD_vbv_wrptr, x)#define tell_hellen_to_die()		signal_hellen(CMD_die)#define tell_slave_to_stop_video(x)	poke_hellen(CMD_stop_video, x)#define tell_slave_to_skip_video(x)	poke_hellen(CMD_skip_video, x)#define tell_slave_to_flush_video()	keep_signalling_hellen(CMD_flush_video)#define tell_slave_cell_still(x)	poke_hellen(CMD_cell_still,x)#define tell_slave_to_mute_dac(x)	keep_poking_hellen(CMD_mute_dac,x)#define tell_slave_bad_ide()		signal_hellen(CMD_bad_ide)#define tell_master_video_skipped()     signal_hellen(CMD_video_skipped)#define tell_master_flush_done()	signal_hellen(CMD_flush_done)#define tell_master_vbv_is_full(x)	keep_poking_hellen(CMD_vbv_full, x)#define tell_master_sbv_is_full(x)	keep_poking_hellen(CMD_sbv_full, x)#define tell_master_I_have_I(x)		poke_hellen(CMD_I, x)#define tell_master_I_have_I_urgent(x)	flirt_with_hellen(CMD_I_urgent, x)#define tell_slave_to_flush_spu()       keep_signalling_hellen(CMD_spu_flush)#define tell_slave_sp_plt(data)         send_hellen_gift(CMD_spu_plt, data, \					    SPU_PLT_LENGTH)#define tell_slave_spu_hli_slice(data)	send_hellen_gift(CMD_spu_hli_slice,\					data, (SPU_HLI_SLICE + 1))#define tell_slave_btn_mv(x)		poke_hellen(CMD_spu_btn_mv, x)/* btn_mv sent only by poke, btn_act only by send , why???? */#define tell_slave_btn_act(num)         send_hellen_gift(CMD_spu_btn_act,\					    (char *)&num, SPU_BTN_ACT_LENGTH)#define tell_slave_slow_video(x)        poke_hellen(CMD_slow_video, x)#define tell_slave_show_osd_msg(data, x)  send_hellen_gift(CMD_osd_msg, \					    data, x)#define tell_slave_trick_mode(x)	poke_hellen(CMD_trick_mode, x)#define tell_slave_spu_on(x)		poke_hellen(CMD_spu_on, x)#define tell_slave_to_pause_video(x)    poke_hellen(CMD_pause_video, x)#ifdef BT865A#define tell_slave_to_set_aps(x)	poke_hellen(CMD_aps, x)#endif#ifdef LINE21 #define tell_slave_closed_caption_on(x)	poke_hellen(CMD_closed_caption_on, x)#define tell_slave_clr_CC() 		signal_hellen(CMD_clr_CC)#define tell_slave_clr_CC_suspend() 	signal_hellen(CMD_clr_CC_suspend)#endif/* x: 1 - paint blue screen; 2 - paint black screen */#define tell_slave_to_show_logo(x)   	poke_hellen(CMD_show_logo, x)	#define tell_slave_to_check_vbv_sbv()   signal_hellen(CMD_check_vbv_sbv)#define tell_slave_tv_mode(x)  		poke_hellen(CMD_tv_mode, x)	#define tell_slave_to_change_tv_type(x) poke_hellen(CMD_tv_type, x)	#define tell_slave_to_reset_system()    keep_signalling_hellen(CMD_system_reset)#define tell_master_reset_over()	keep_signalling_hellen(CMD_system_reset)#define tell_master_btn_act_is_done()   keep_signalling_hellen(		\						CMD_btn_action_finished)#define tell_master_setup_osd_done()    keep_signalling_hellen(		\						CMD_setup_osd_done)#ifdef CONFORMANCE#define tell_master_conformance_OSD_ok() keep_signalling_hellen( \                                                CMD_conformance_OSD_flag)#endif#define tell_slave_spu_attrib(x)	poke_hellen(CMD_spu_attrib, x)#define tell_slave_zoom_command(x)	poke_hellen(CMD_zoom, x)#define tell_slave_switch_code()	keep_signalling_hellen( \					    CMD_switch_code)#ifdef I2C_E2PROM#define tell_slave_e2prom_write(data)   send_hellen_gift(CMD_e2prom_write, data, 2)#define tell_master_e2prom_write_data(x) poke_hellen(CMD_e2prom_write, x)#define tell_slave_e2prom_read(x)       poke_hellen(CMD_e2prom_read, x)#define tell_master_e2prom_read_data(x) poke_hellen(CMD_e2prom_read, x)#endif/* FOR VCD */#ifdef DVD_VCD#ifdef SLAVEGBLDEF_0(int	track_info_buffer[101],{}); /* 99 track + first num, last num */GBLDEF_0(char	sector_buffer[2048],{});GBLDEF_0(char   sector_header[8],{});GBLDEF_0(int	keypad_word,0);#endif#ifdef MASTERGBLDEF0(int sys_power_down);#endif#define MSF_SLICE 	        16	#define MSF_SLICE_COUNT		2048/MSF_SLICE#define tell_master_power_down()          keep_poking_hellen(CMD_power_down,1)#define tell_dsa_tmsf(x)		keep_poking_hellen(CMD_tmsf,x)#define tell_dsa_vfd(x)			keep_poking_hellen(CMD_vfd,x)#define tell_dsa_request(x)		keep_poking_hellen(CMD_dsa,x)#define tell_dsa_msf(x)			keep_poking_hellen(CMD_dsa_msf,x)#define tell_dsa_sector_data(x)	   	send_hellen_gift(CMD_dsa_sector_data,\					x, MSF_SLICE + 1)#define tell_dsa_toc(info_ptr,byte_ns)  send_hellen_gift(CMD_dsa_toc, info_ptr,\					    byte_ns)#define tell_slave_sector_header(x)     send_hellen_gift( CMD_sector_header, \					    x,8) #define tell_slave_keypad(x)		keep_poking_hellen(CMD_keypad,x)#endif /*DVD_VCD */#endif

⌨️ 快捷键说明

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