📄 mapp_globalsettingst.h
字号:
#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 + -