C机顶盒开发实战常量定义方式、结构定义方式(可理解为对象Model)
***********************************************************************
* 数据类型定义
***********************************************************************/
typedef unsigned long long D_UINT64;
typedef unsigned long D_UINT32;
typedef unsigned short D_UINT16;
typedef unsigned char D_UINT8;
typedef unsigned long D_ULONG;
//typedef signed long long D_INT64;
typedef signed long D_INT32;
typedef signed short D_INT16;
typedef signed char D_INT8;
typedef unsigned char D_BYTE;
typedef unsigned short D_WORD;
typedef float D_FLOAT;
typedef char D_BOOL;
typedef void D_VOID;
#ifndef DWORD
#define DWORD unsigned long
#endif
#ifndef WORD
#define WORD unsigned short
#endif
#ifndef BYTE
#define BYTE unsigned char
#endif
#ifndef PBYTE
#define PBYTE unsigned char *
#endif
#ifndef LPTEXT
#define LPTEXT unsigned char *
***********************************************************************
* 常量定义
***********************************************************************/
typedef enum
{
DG_MW_VIDEO_PORT_BASE = -1,
DG_MW_VIDEO_PORT_AUTO,
DG_MW_VIDEO_PORT_CVBS,
DG_MW_VIDEO_PORT_SVIDEO,
DG_MW_VIDEO_PORT_YPbPr,
DG_MW_VIDEO_PORT_HDMI,
DG_MW_VIDEO_PORT_MAX
}DG_MW_VIDEO_PORT;
typedef enum
{
DG_MW_VIDEO_MODE_BASE = -1,
DG_MW_VIDEO_MODE_AUTO,
DG_MW_VIDEO_MODE_PAL,
DG_MW_VIDEO_MODE_NTSC,
DG_MW_VIDEO_MODE_480p,
DG_MW_VIDEO_MODE_720p,
DG_MW_VIDEO_MODE_1080i,
DG_MW_VIDEO_MODE_1080p,
DG_MW_VIDEO_MODE_MAX
}DG_MW_VIDEO_MODE;
#define FAILAULT -1
#define SUCCESS 0
/***********************************************************************
* 宏定义
***********************************************************************/
#define UPGRADE_KEY_LEN 64
#define UPGRADE_DATA_TIME_LEN 128
#define UPGRADE_FILE_NAME_LEN 256
#define UPGRADE_URL_LEN 512
#define URL_LEN 512
#define VERSION_LEN 32*2
#define DATA_LEN 16*2
#define UPGRADEFILE_MD5 "/tmp/UpgradeMd5" /*升级文件实际MD5值*/
#define MD5_CMD "md5sum" /*MD5校验命令*/
#define SERVER_VERSION_NAME "UpgradeVersion" /*服务器上版本文件名*/
#define USB_UPGRADE_ADDR "/mnt/usbupgrade/stbupgrade/" /*USB存储设备升级地址*/
#define UPGRADE_LOCAL_bootld_FILE "/home/upgrade/bootld" /*本地临时启动引导文件名*/
#define UPGRADE_LOCAL_bmp_FILE "/home/upgrade/splash.bmp" /*本地临时开机画面文件名*/
#define UPGRADE_LOCAL_kernel_FILE "/home/upgrade/kernel.bin" /*本地临时内核文件名*/
#define UPGRADE_LOCAL_app_FILE "/home/upgrade/JX010100.bin" /*本地临时内核文件名*/
#define UPGRADE_LOCAL_stbid_FILE "/home/upgrade/stb_id" /*本地临时STBID文件名*/
#define UPGRADE_LOCAL_bootkey_FILE "/home/upgrade/osflag" /*本地临时STBID文件名*/
#define UPGRADE_VERSION_LOCAL_ADDR "/home/upgrade/UpgradeVersion" /*本地临时版本文件名*/
#define UPGRADE_STBID_LOCAL_ADDR "/home/info/stbid.cfg" /*本地临时版本文件名*/
#define UPGRADE_FLAG_FILE "/home/info/stbupgrade_img" /*升级进行中的标志文件*/
#define UPGRADE_BMP_FLAG_FILE "/home/info/stbupgrade_bmp_img" /*升级BMP进行中的标志文件*/
/***********************************************************************
* 结构定义
***********************************************************************/
typedef struct _dg_sysconfig
{
/********************************
* 设置确认值 *
*********************************/
D_UINT32 magic_number; /** 逻辑代码**/
/********************************
* 中心频点 *
*********************************/
D_UINT32 base_freqency; /** 中心频点**/
D_UINT32 base_symbol; /** 符号率 **/
D_UINT16 base_qammode; /** 调制方式**/
D_UINT16 base_reserved; /** 预留位**/
/********************************
* 升级相关信息 *
*********************************/
D_UINT32 upgrade_check_freqency; /** 升级检测频点**/
D_UINT32 upgrade_check_symbol; /** 升级检测符号率**/
D_UINT16 upgrade_check_qammode; /** 升级检测调试方式**/
D_UINT16 upgrade_check_pid; /** 升级检测的PID 值**/
D_UINT8 upgrade_check_tableid; /** 升级检测的TABLEID 值**/
D_UINT8 upgrade_check_version[64]; /** 升级版本信息**/
D_UINT8 upgrade_reserved8; /** 预留位**/
D_UINT16 upgrade_reserved16; /** 预留位**/
/********************************
* 视频相关 *
*********************************/
D_UINT8 video_port; /** 电视制式**/
D_UINT8 video_mode; /** 电视制式**/
D_UINT8 video_radio; /** 电视宽高比**/
D_UINT8 video_reserved; /** 预留位**/
D_UINT8 brightness; /** 亮度**/
D_UINT8 contrast; /** 对比度**/
D_UINT8 saturation; /** 饱和度**/
D_UINT8 hue; /** 色度**/
/********************************
* 音频相关 *
*********************************/
D_UINT8 vol_save_mode; /** 音量保存模式:**/
D_UINT8 off_vol_save_mode; /** 补偿音量保存模式**/
D_UINT8 track_save_mode; /** 声道 保存模式**/
D_UINT8 tv_def_track; /** 默认电视声道 **/
D_UINT8 radio_def_track; /** 默认广播声道**/
D_UINT8 mute_states; /** 禁音状态**/
D_UINT8 audio_reserved1; /** 预留位**/
D_UINT8 audio_reserved2; /** 预留位**/
D_UINT8 passthrough; /**透传**/
D_UINT8 spdifpassthrough; /**spdif透传**/
/********************************
* 显示相关 *
*********************************/
D_UINT8 language; /** 界面语言**/
D_UINT8 alpha; /** 透明度**/
D_UINT8 menu_timeout; /** 界面消影时间:0~15秒**/
D_UINT8 osd_reserved; /** 预留位**/
D_UINT8 skinno; /**皮肤编号**/
D_UINT8 picstyle; /**图片特效**/
D_UINT8 style; /**界面风格**/
D_UINT8 fontsize; /**视频字幕大小**/
D_UINT8 fontcolour; /**视频字幕颜色**/
/********************************
* 安全相关 *
*********************************/
D_BOOL pc_lock_status; /** 机顶盒锁状态**/
D_BOOL menu_lock_status; /** 菜单锁状态**/
D_BOOL prog_lock_status; /** 节目锁状态**/
D_UINT8 safe_reserved; /** 预留位**/
D_UINT8 pc_pwd[DG_MAX_PASSWORD_LENGTH]; /** 机顶盒密码**/
D_UINT8 menu_pwd[DG_MAX_PASSWORD_LENGTH]; /** 菜单密码**/
D_UINT8 prog_pwd[DG_MAX_PASSWORD_LENGTH]; /** 节目密码**/
D_UINT8 super_pwd[DG_MAX_PASSWORD_LENGTH]; /** 超级密码**/
/********************************
* 切台相关 *
*********************************/
D_UINT8 change_channel_mode; /** 节目切台方式0,最后一帧,1,黑屏,2,指定图片*/
D_BOOL prom_pw_once; /** 节目解锁方式**/
D_UINT16 reserved; /** 预留位**/
/********************************
* 系统相关 *
*********************************/
D_UINT8 nit_version; /** NIT 版本信息**/
D_INT8 timezone; /** 时区信息**/
D_BOOL power_on_status; /** 定时开机状态**/
D_UINT8 power_on_hour; /** 定时开机时间--小时**/
D_UINT8 power_on_minute; /** 定时开机时间--分钟**/
D_BOOL power_off_status; /** 定时关机状态**/
D_UINT8 power_off_hour; /** 定时关机时间--小时**/
D_UINT8 power_off_minute; /** 定时关机时间--分钟**/
D_UINT32 network; //网络设置选项
D_INT32 debug_factory;
/********************************
* 启动相关 *
*********************************/
D_BOOL boot_search; /** 开机自动搜台**/
D_BOOL boot_resume_mute; /** 开机静音模式**/
D_UINT8 boot_style; /** 开机启动方式**/
D_UINT8 boot_model; /** 开机功能控制**/
/********************************
* 字幕 *
*********************************/
D_UINT32 textColor; //字幕颜色
D_UINT32 textsize; //字幕大小
D_UINT8 adsl_user[DG_ADSL_USERNAME_LEN]; //adsl 用户
D_UINT8 adsl_passwd[DG_ADSL_PASSWORD_LEN]; //adsl 密码
D_UINT8 userip[DG_USER_IP_LEN]; //用户ip
D_UINT8 serverip[DG_USER_IP_LEN]; // 服务器IP
D_UINT8 subnetmask[DG_USER_IP_LEN]; //子网掩码
D_UINT8 gateway[DG_USER_IP_LEN]; //网关
D_UINT8 dnsip[DG_USER_IP_LEN]; //dns ip
D_UINT8 mac[DG_USER_IP_LEN]; // mac 地址
D_UINT8 username[DG_ADSL_USERNAME_LEN]; //用户名
D_UINT8 passwd[DG_ADSL_PASSWORD_LEN]; //密码
D_INT32 newexpress_savedays; //片花保存天数
D_INT32 tv_savedays; //电视节目保存天数
D_INT32 info_savedays; //信息文件保存天数
D_INT8 usb_state; // 判断 USB 是否可以进行播放
D_INT8 order_state; // 判断 是否可以进行订购
D_INT8 fam_state; // 判断 家庭院线 是否可以进行播放
D_INT8 download_path; // 0 --- 内置硬盘, 1 ---- 外挂硬盘
D_INT8 server_selected; //yuan add从resource.xml中选择哪个server,0表示自己输入的,1,2表示从server列表中选择
D_UINT8 server_name[50]; //yuan add从resource.xml得到的当前服务器名
struct adv_time_t system_time;
D_INT32 del_time; //文件过期删除
D_INT8 net_load_stat; //登录方式
// add by jason for wifi
D_INT8 wifi_ssid[128]; // SSID
D_INT8 authMode[16]; // 认证方式
D_INT8 encrypType[8]; // 加密方式
D_INT8 keyStr[64];
// add by jason for wifi end
// 家庭院线协议中涉及的6个开关
D_INT8 external_download_flag; // 外置节目下载开关
D_INT8 remote_order_flag; // 远程订购开关
D_INT8 bind_order_flag; // 快递绑定订购开关
D_INT8 cinema_flag; // 家庭院线功能开关
D_INT8 external_play_flag; // 外置节目播放开关,影信通服务器下载下来的节目
D_INT8 usb_play_flag; // 外置文件播放开关,U 盘中原有节目的播放功能
#if 0
D_UINT32 reserve32_1;
D_UINT32 reserve32_2;
D_UINT16 reserve16_1;
D_UINT16 reserve16_2;
D_UINT16 reserve16_3;
D_UINT16 reserve16_4;
D_UINT8 reserve8_1;
D_UINT8 reserve8_2;
D_UINT8 reserve8_3;
D_UINT8 reserve8_4;
D_UINT8 reserve8_5;
D_UINT8 reserve8_6;
D_UINT8 reserve8_7;
D_UINT8 reserve8_8;
#endif
D_UINT32 crc32;
}DG_SYSCONFIG,*P_DG_SYSCONFIG;
/Files/steven9801/谭浩强C程序设计CHM.rar
http://rsync2.cn.gentoo.org/ubuntu/releases/10.04/ubuntu-10.04.3-desktop-i386.iso
邮箱:steven9801@163.com
QQ: 48039387