zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Open diary(每天更新)
    独立博客与秘密基地,以及对UI设计中拟物态的怀念
    如何在宝塔面板里设置脚本定时恢复数据库
    LaTex公式语法教程及手册(附emlogpro公式显示插件katex说明)
    关于梦的冷知识
    PTui又加全景图 佳田未来城 of 安阳
    原生js 以ajax(post)的方式传json至php,并让php解析为数组
    Python面向对象——
    Python中的模块、常用模块——12
    Python中的装饰器——11
  • 原文地址:https://www.cnblogs.com/fx2008/p/2167148.html
Copyright © 2011-2022 走看看