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

📄 mapp_globalsettingst.h

📁 mstar 776 开发的车载dvd
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef MAPP_GLOBALSETTINGST_H
#define MAPP_GLOBALSETTINGST_H

/********************************************************************************/
/*                              Include files                                   */
/********************************************************************************/
#include "Board.h"
#include "DataType.h"

#include "Panel.h"

#include "msAPI_Mode.h"


/********************************************************************************/
/*                                 Macro                                        */
/********************************************************************************/

#define MAX_VC_PER_PHYSICAL                70
#define MAX_DTV_PHYSICAL_CH_NUM            70  // 2~69        // S.G.HAN 061214
#define MAX_ATV_PHYSICAL_CH_NUM         1  // 2~69        // S.G.HAN 061214
#define MAX_PHYSICAL_CH_NUM                (MAX_DTV_PHYSICAL_CH_NUM + MAX_ATV_PHYSICAL_CH_NUM)

#define DTV_BASE_PHYSICAL_IDX              (0)
#define ATV_BASE_PHYSICAL_IDX              (DTV_BASE_PHYSICAL_IDX+MAX_DTV_PHYSICAL_CH_NUM)

#define CHAN_AIR_MIN                       21
#define CHAN_AIR_MAX                       69
#if COUNTRY_TAIWAN
    #define CHAN_MIN_TW     24
    #define CHAN_MAX_TW     34
#endif

#define MAX_NUM_OF_VCH                     199     // should be a multiple of 8 and then minus 1
                                                   // Search au8VirChTbl for more information

#define MAX_NETWORK_NAME                   24
#define MAX_STD_MODE_NUM                   (msAPI_Mode_GetStdMaxTableIndex())
#define MAX_USER_MODE_NUM                  20
#define MAX_MODE_NUM                       (MAX_STD_MODE_NUM+MAX_USER_MODE_NUM)

#define PASSWORD_SIZE                      4

#define MAX_SERVICE_NAME         15
#define MAX_CHANBELLABEL_CHAR_NUM          7
#define MAX_AUD_LANG_NUM                   6
#define MAX_AUD_LANG_LENGTH                3


#define INVALID_SERVICE_IDX                0x00 // service index starts from 1

#define MENU_LANGUAGE_FONT                 (0)
#define MENU_LANGUAGE_FONT_ENGX2           (1)

// String bits: 8 or 16
#define MAPP_UI_USE_STR_BITS_PROGRAM       16

#define RM_POWER_STANDBY_FLAG              0xA5
#define RM_POWER_ON_FLAG                   0x00

#define LCN_ASSIGNMENT_RECORD_ARRAY_SIZE   125
#define MAIN_OVERFLOW_AREA_START_INDEX     801
#define MAX_NUM_OF_LCN_VALUE               999

/********************************************************************************/
/*                                 Enum                                         */
/********************************************************************************/
typedef enum
{
    SERVICE_TYPE_INVALIDE,   //0x00,
    SERVICE_TYPE_DTV,        //0x01,
    SERVICE_TYPE_RADIO,     //0x02,
    SERVICE_TYPE_ATV,                 //0x03,
} EN_SERVICE_TYPE;
typedef enum
{
    AUD_STREAM_TYPE_MPEG,
    AUD_STREAM_TYPE_AC3
} EN_AUD_STREAM_TYPE;


typedef enum
{
    IDLE_MODE,
    ANALOG_IDLE_MODE,
    MENU_MODE
} EN_MODE;
typedef enum
{
    TIME_DST_OFF = 0,
    TIME_DST_ON     = 1,
    TIME_DST_ITEM_NUM
} EN_TIME_DST_ITEM;


typedef enum _EN_MENU_LANGUAGE
{
    LANGUAGE_ENGLISH,         // English
    LANGUAGE_FRENCH,          // French
    LANGUAGE_SPANISH,         // Spanish
    LANGUAGE_NUM,             // Language maximum

    LANGUAGE_ENGX2 = MENU_LANGUAGE_FONT_ENGX2,
} EN_MENU_LANGUAGE;

//candy_070131
typedef enum _EN_OSD_COUNTRY_SETTING
{
OSD_COUNTRY_USA,
OSD_COUNTRY_CANADA,
OSD_COUNTRY_MEXICO,

OSD_COUNTRY_NUMS
}EN_OSD_COUNTRY_SETTING;
//candyend
// ADC setting index
typedef enum _AdcSetIndexType
{
    ADC_SET_VGA,
    ADC_SET_YPBPR_SD,
    ADC_SET_YPBPR_HD,
    ADC_SET_NUMS
}E_ADC_SET_INDEX;

typedef enum
{
    CH_TYPE_DTV,
    CH_TYPE_ATV,
    CH_TYPE_NUMS
} EN_CH_TYPE;


typedef enum
{
    SCAN_TYPE_AUTO,
    SCAN_TYPE_MANUAL,
    SCAN_TYPE_FLASH_BACK,
    SCAN_TYPE_SCAN_SIGNAL,
    SCAN_TYPE_DEFAULT_MAP,
    SCAN_TYPE_NUM
} EN_SCAN_TYPE;

typedef enum
{
    EN_E4_KeyLock_Off,
    EN_E4_KeyLock_On,
    EN_E4_KeyLock_Num
} EN_MENU_E4_KeyLock;

typedef enum
{
    CLEAR_VCH_DB,
    CLEAR_VCH_DB_AND_SET_FACTORY_VCH,
}EN_VCH_DB_CLEAR_TYPE;//hjkoh 070106




/********************************************************************************/
/*                              Structure Type                                  */
/********************************************************************************/

//////////////////////////////////////////////////////////////////////////////////////////
//  PSIP Structure Type
//////////////////////////////////////////////////////////////////////////////////////////
typedef struct
{
    U16 u16ProgramNumber;
    U16 u16PID;
} MS_PAT_ITEM;

//////////////////////////////////////////////////////////////////////////////////////////
//  Miscellaneous Structure Type
//////////////////////////////////////////////////////////////////////////////////////////
typedef struct
{
    U16 u16Year;
    U8 u8Month;
    U8 u8Day;
    U8 u8Hour;
    U8 u8Min;
    U8 u8Sec;
} MS_DATE;

// ISO639 language code
// Grace_061127_4 : Audio Language
typedef enum
{
    AUD_LANG_ENG, // English
    AUD_LANG_FRA, // 1st French
    AUD_LANG_SPA, // 1st Spanish
    AUD_LANG_KOR, // Korean
    AUD_LANG_JPN, // Japanese
    AUD_LANG_CHI, // 1st Chinese
    AUD_LANG_GER, // 1st German
    AUD_LANG_FRE, // 2nd French
    AUD_LANG_ESL, // 2nd Spanish
    AUD_LANG_ZHO, // 2nd Chinese
    AUD_LANG_DEU, // 2nd German
    AUD_LANG_ITA, // Italian
    AUD_LANG_RUS, // Russian
    AUD_LANG_NUM, // maximum aud language

    AUD_LANG_UND = AUD_LANG_FRE// Undetermined
} EN_AUD_LANG;

typedef struct
{
    U8 au8AudLangCode[3];
    EN_AUD_LANG enAudLangIndex;
} ST_AUD_LANG;

//////////////////////////////////////////////////////////////////////////////////////////
//  Scan Menu Setting Structure Type
//////////////////////////////////////////////////////////////////////////////////////////
typedef struct
{
    U8 u8RFChannelNumber;
    U8 u8ChType : 2;
    U8 u8Antenna : 1;         //0=ANT_CATV, 1=ANT_AIR
    U8 reserved : 2;
    U8 u8ScanType : 3;
} MS_SCANMENU_SETTING;



#define MENU_LANGUAGE       (stGenSetting.g_SysSetting.Language) //current menu language
#define OSD_COUNTRY_SETTING	(stGenSetting.g_SysSetting.country) //current country setting_candy_070131
#define UI_INPUT_SOURCE_TYPE        stGenSetting.g_SysSetting.enUiInputSourceType
#define DATA_INPUT_SOURCE_TYPE        stSystemInfo.enDataInputSourceType

#define ST_VIDEO                    stGenSetting.g_astVideo[DATA_INPUT_SOURCE_TYPE]
#define ST_WHITEBALANCE				stGenSetting.g_astWhiteBalance[DATA_INPUT_SOURCE_TYPE]
#define ST_EZ_PICTURE               ST_VIDEO.astEzPicture[ST_VIDEO.eEzPicture]

//#define ST_COLOR_TEMP               ST_VIDEO.astColorTemp[ST_VIDEO.eColorTemp]
#define ST_COLOR_TEMP               ST_WHITEBALANCE.astColorTemp[ST_EZ_PICTURE.eColorTemp]
#define ST_SUBCOLOR					stGenSetting.g_astSubColor[DATA_INPUT_SOURCE_TYPE]

//////////////////////////////////////////////////////////////////////////////////////////
//  Channel Setting Structure Type
//////////////////////////////////////////////////////////////////////////////////////////


typedef struct
{

    U16 fIsHidden : 1;          // for information from PSIP
    U16 fIsDeleted: 1;
    U16 fIsFavCh : 1;
    U16 fIsSkipCh : 1;          // for Channel Edit skip function.
    U16 fIsLockCh : 1;
    U16 fIsScrambleCh : 1;      // 0=FTA, 1=Scramble
    U16 fIsStillPicture : 1;    // for information from Video_stream_descriptor(0x02)
    U16 u16PhysicalChIdx : 9;   // 0~511, for create PCH list when system bootup
    U16 u16LCN : 10;         // 0~1023, use to store LCN
    U16 fIsInactive : 1;        // for information from SDT for program running or not
    U16 fIsRadioCh : 1;         // for information from PMT for empty Video_PID
    U16 fChType : 1;            // 0=DTV, 1=ATV
    U16 fIsTTXCh : 1;
    U16 fIsNameEdit : 1;     // for new UI ATV channel name edit test
    U16 Reserved1 : 1;
} MS_VCH_ATTRIBUTE;


typedef struct
{
    U16 u16AudioPid : 13;
    U16 u16AudStreamType : 2;//0x00=Mpeg, 0x01=AC3
    U16 Reserved : 1;
    EN_AUD_LANG u8AudLangCodeIdx ; // Language code index which defined in EN_AUD_LANG
} MS_SOUND_TRACK_A;

// Grace_061220_1 : Time Log to debug
typedef struct
{
    U8            tl_numLogs;        /* 0x00: Number of time logs            */
    U8            tl_physChan;    /* 0x01: Physical Channel Number        */
    U8            tl_bPChMove;    /* 0x02: Flag whether Physical change    */
    U8            tl_index[16];    /* 0x04: Stage      of channel change    */
    U32            tl_time[16];    /* 0x44: Time stamp of channel change    */
} MS_TIME_LOG_T;

typedef struct
{
  U8 temp[30];
} MS_DTV_VC_DATA;

typedef struct
{
    U8 ucColorSystem;
    U8 ucSoundSystem;
    U8 ucAutoSound;   // Used when soundSystem == AUTO
    EN_SOUND_MTS_TYPE ucSoundMts;
    U16 wFreq;
    U8 ucPriority;
    U8 ucStationId;
    U8 Reserved[22];

} MS_ATV_VC_DATA;


typedef union MS_VIRTUAL_CHANNEL_t
{
    MS_DTV_VC_DATA stDTV_VC;
    MS_ATV_VC_DATA stATV_VC;
} MS_VC_DATA;


typedef struct
{
    U16 sServiceName[MAX_SERVICE_NAME];
    U16 u16Order;
    U16 u16PcrPid : 13;
    U16 u8AudLangNum : 3;    // <= MAX_AUD_LANG_NUM
    U16 u16PMT_Pid;
    U16 u16VideoPid ;
    U16 u16TsId;       // Transport stream ID
    U16 u16TtxPid;    // Original network ID
    U16 u16ProgramNumber;
    U16 u16ServiceID;
    MS_SOUND_TRACK_A astSoundTrack[MAX_AUD_LANG_NUM];
    //MS_TP_SETTING stTPSetting;
    MS_VCH_ATTRIBUTE stVirtualChAttr;
    MS_VC_DATA uVCData;
} MS_VIRTUAL_CHANNEL;   // 131 bytes


// Notation : the valid astVirtualChInfo should be placed continuously
typedef struct
{
    U16 u16VirChIdx : 12;
    U16 Reserved1 : 4;

    MS_VCH_ATTRIBUTE stVirtualChAttr; // Channel Attribute
} MS_VIRTUAL_CHANNEL_INFO;

typedef enum
{
    // channel edit by user
    VCH_ATTR_TYPE_SKIP_CH,
    VCH_ATTR_TYPE_FAV_CH,
    VCH_ATTR_TYPE_LOCK_CH,
    VCH_ATTR_TYPE_BLOCK_CH,
    VCH_ATTR_TYPE_DUMMY_CH,

    // channel attribute by content
    VCH_ATTR_TYPE_SCRAMBLE_CH,
    VCH_ATTR_TYPE_INACTIVE_CH,
    VCH_ATTR_TYPE_HIDDEN_CH,
    VCH_ATTR_TYPE_RADIO_CH,
    VCH_ATTR_TYPE_CH_TYPE,
    VCH_ATTR_TYPE_NUM,
    VCH_ATTR_TYPE_SAVE_ALL,//hjkoh 070120
} EN_VCH_ATTR_TYPE;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ch_idx     : index of main list
// pch_idx    : index of pch list
// vchinfo_idx: index of vch info list
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define PCH_IDX(ch_idx)                     (stChSetting.astMainList[ch_idx].u16MainListPhysicalChIdx)    // S.G.HAN 061214
#define PCH_IDX_BASE(ch_type)               ((ch_type==CH_TYPE_ATV) ? ATV_BASE_PHYSICAL_IDX : DTV_BASE_PHYSICAL_IDX)
#define VCH_INFO_OFFSET(ch_idx)             (stChSetting.astMainList[ch_idx].u8VirChInfoOffset)
#define VCH_INFO_START_IDX_BY_MAIN(ch_idx)  (stChSetting.astPhysicalCh[PCH_IDX(ch_idx)].u16VirChInfoStartIdx)
#define VCH_INFO_END_IDX_BY_MAIN(ch_idx)    (VCH_INFO_START_IDX_BY_MAIN(ch_idx)+NUM_OF_VCH_BY_MAIN(ch_idx)-1)
#define NUM_OF_VCH_BY_MAIN(ch_idx)          (stChSetting.astPhysicalCh[PCH_IDX(ch_idx)].u8NumOfVirCh)
#define VCH_INFO_START_IDX_BY_PCH(pch_idx)  (stChSetting.astPhysicalCh[pch_idx].u16VirChInfoStartIdx)
#define VCH_INFO_END_IDX_BY_PCH(pch_idx)    (VCH_INFO_START_IDX_BY_PCH(pch_idx)+NUM_OF_VCH_BY_PCH(pch_idx)-1)
#define NUM_OF_VCH_BY_PCH(pch_idx)          (stChSetting.astPhysicalCh[pch_idx].u8NumOfVirCh)
#define VCH_INFO_IDX(ch_idx)                (VCH_INFO_START_IDX_BY_MAIN(ch_idx) + VCH_INFO_OFFSET(ch_idx))
#define VCH_IDX_BY_MAIN(ch_idx)             (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].u16VirChIdx)
#define VCH_IDX_BY_VCH_INFO(vchinfo_idx)    (stChSetting.astVirtualChInfo[vchinfo_idx].u16VirChIdx)
#define RF_CH_NUM(pch_idx)                  ((pch_idx<MAX_DTV_PHYSICAL_CH_NUM) ? pch_idx : pch_idx -MAX_DTV_PHYSICAL_CH_NUM)
#define LCN(ch_idx)                         (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.u16LCN)

// access channel attributes and channel edit attributes from ch_idx of main list
#define IS_TTX_CH(ch_idx)              (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsTTXCh)
#define IS_SKIP_CH(ch_idx)              (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsSkipCh)
#define IS_FAV_CH(ch_idx)               (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsFavCh)
#define IS_LOCK_CH(ch_idx)              (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsLockCh)
//#define IS_BLOCK_CH(ch_idx)             (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsBlockCh)
//#define IS_DUMMY_CH(ch_idx)             (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.stChEditAttr.fIsDummyCh)
//#define IS_DUMMY_PCH(ch_idx)            (stChSetting.astPhysicalCh[PCH_IDX(ch_idx)].fIsDummyPch)
#define IS_SKIP_PCH(ch_idx)            (stChSetting.astPhysicalCh[PCH_IDX(ch_idx)].fIsSkipPch)
#define IS_INACTIVE_CH(ch_idx)          (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsInactive)
#define IS_HIDDEN_CH(ch_idx)            (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsHidden)
#define IS_RADIO_CH(ch_idx)             (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsRadioCh)
//#define IS_STILLPIC_CH(ch_idx)          (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsStillPicture)
#define IS_SCRAMBLE_CH(ch_idx)          (stChSetting.astVirtualChInfo[VCH_INFO_IDX(ch_idx)].stVirtualChAttr.fIsScrambleCh)

⌨️ 快捷键说明

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