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

原文地址:https://www.cnblogs.com/fx2008/p/2167148.html