📄 o_fta_program.c
字号:
static CONST MS_PARAM_CHOICE InitChoiceParam =
{
0
};
static CONST MS_CHOICE_DATA aChannelTypeChoiceTable[MAX_CHANNELS_TYPE] =
{
{FTA_CHANNEL_RADIO_ATTR, S_RADIO },
{FTA_CHANNEL_VIDEO_ATTR, S_VIDEO }
};
static CONST MS_DESCRIPTOR_CHOICE oChannelTypeParamDescriptor =
{
{// MS_DESCRIPTOR
sizeof(MSO_CHOICE),
MS_NAV_TO_ALGINED_Y,
MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
//AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, CHOICE_HEIGHT
//20, 50, 240, OPTION_HEIGHT
20, 50, 240, OPTION_HEIGHT
},
_ChannelTypeChoiceOperation,//ListItemOperation,
ChoiceFillOSDSeg,
(UINT8*)&InitChoiceParam
},
NULL,
S_TYPE,
MAX_CHANNELS_TYPE,
(MS_CHOICE_DATA*)&aChannelTypeChoiceTable,
CIDX_8,
CIDX_8,
CIDX_6,
BMP_BG_3,
_ChannelTypeChoiceAction
};
/****************************** descriptors for transport editing **********************/
#ifdef FTA_SATELLITE
/***************************************************************************************
* Descriptor : oLNBEditDescriptor
*
* Purpose : The LNB edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oLNBEditDescriptor =
{
{// MS_DESCRIPTOR
sizeof(MSO_OBJECT),
MS_NAV_TO_ALGINED_Y,
MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
20, 50, 240, OPTION_HEIGHT
},
_LNBOperation,
_FtaPidFillOSDSeg,
mpParamNull
},
S_LNB,
NULL,
CIDX_8
};
/***************************************************************************************
* Descriptor : oTransFreqEditDescriptor
*
* Purpose : The trans freq edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oTransFreqEditDescriptor =
{
{// MS_DESCRIPTOR
sizeof(MSO_OBJECT),
MS_NAV_TO_ALGINED_Y,
MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
20, 50, 240, OPTION_HEIGHT
},
_TransFreqOperation,
_FtaPidFillOSDSeg,
mpParamNull
},
S_TRANSPORT_FREQ,
NULL,
CIDX_8
};
/***************************************************************************************
* Descriptor : oSymbolEditDescriptor
*
* Purpose : The AudPid edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oSymbolEditDescriptor =
{
{// MS_DESCRIPTOR
sizeof(MSO_OBJECT),
MS_NAV_TO_ALGINED_Y,
MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
20, 50, 240, OPTION_HEIGHT
},
_SymbolOperation,
_FtaPidFillOSDSeg,
mpParamNull
},
S_SYMBOL,
NULL,
CIDX_8
};
/***************************************************************************************
* Descriptor : oPolarityParamDescriptor
*
* Purpose : The polarity edit element.
****************************************************************************************/
#define MAX_POLARITY_OPTION 2
static CONST MS_CHOICE_DATA aPolarityChoiceTable[MAX_POLARITY_OPTION] =
{
{0, S_HORIZONTAL },
{1, S_VERTICAL }
};
static CONST MS_DESCRIPTOR_CHOICE oPolarityParamDescriptor =
{
{// MS_DESCRIPTOR
sizeof(MSO_CHOICE),
MS_NAV_TO_ALGINED_Y,
MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
{
//AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, CHOICE_HEIGHT
//20, 50, 240, OPTION_HEIGHT
20, 50, 240, OPTION_HEIGHT
},
_PolarityChoiceOperation,//ListItemOperation,
ChoiceFillOSDSeg,
(UINT8*)&InitChoiceParam
},
NULL,
S_POLARITY,
MAX_POLARITY_OPTION,
(MS_CHOICE_DATA*)&aPolarityChoiceTable,
CIDX_8,
CIDX_8,
CIDX_6,
BMP_BG_3,
_PolarityChoiceAction
};
#endif //FTA_SATELLITE
/***************************************************************************************
* Descriptor : oProgExitButtonDescriptor
*
* Purpose : The PCR Pid edit element.
****************************************************************************************/
static CONST OSD_TEXT oExitProgText = // Left surround label
{ OSDR_GetFormUniStr_OsdMessage, S_CLOSE };
STATIC CONST MS_DESCRIPTOR_BUTTON oProgExitButtonDescriptor =
{// MS_DESCRIPTOR
{
{
sizeof(MSO_BUTTON),
MS_NAV_TO_ALGINED_Y,
MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0 | MS_ATTR_RADIO_BUTTON,
{
//AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, AREA_CHOICE_H
20, 50, 240, OPTION_HEIGHT
},
_ProgExitOperation,
OBUTTON_FillOSDSeg,
mpParamNull
},
(MS_X_Y_ALIGN *)&oButtonTextXYAlign,
(MS_COLOR_SET *)&oButtonTextColorSet,
(MS_BITMAP_SET *)&oButtonBitmapSet,
(OSD_TEXT *)&oExitProgText,
FONT_0,
NULL,
NULL
},
MS_OP_NONE
};
/***************************************************************************************
* Descriptor : oFtaProgramDescriptor
*
* Purpose : Descriptor of the list (MSO_FTA_PROGRAM) FTA component.
****************************************************************************************/
#ifndef D_GUI_SINGLE_LINE_COMPONENT
#define NBR_FTA_PROGRAM_CONTENTS 2
#else // D_GUI_SINGLE_LINE_COMPONENT
#define NBR_FTA_PROGRAM_CONTENTS 1
#endif // D_GUI_SINGLE_LINE_COMPONENT
STATIC CONST MS_DESCRIPTOR* CONST apFtaProgramContents[NBR_FTA_PROGRAM_CONTENTS] = {
#ifndef D_GUI_SINGLE_LINE_COMPONENT
(MS_DESCRIPTOR*)&oFtaProgramComponentTitleDescriptor,
#endif // D_GUI_SINGLE_LINE_COMPONENT
(MS_DESCRIPTOR*)&oFtaProgramKitDescriptor,
};
CONST MS_DESCRIPTOR_FTA_PROGRAM oFtaProgramDescriptor =
{
{// MS_DESCRIPTOR_COMPONENT
{// MS_DESCRIPTOR_CONTAINER
{// MS_DESCRIPTOR
sizeof(MSO_FTA_PROGRAM),
MS_NAV_TO_ALGINED_Y | MS_NAV_DISABLE_LR | MS_NAV_DISABLE_UD |
MS_NAV_CONTAINER_WRAP_LR | MS_NAV_CONTAINER_WRAP_UD | MS_NAV_CONTAINER_GOTO_TOP,
MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_2,
{
AREA_FTA_PROGRAM_X,
AREA_FTA_PROGRAM_Y,
AREA_FTA_PROGRAM_W,
AREA_FTA_PROGRAM_H
},
_FtaProgramOperation,
_FtaProgramFillOSDSeg,
mpParamNull
},
(CONST MS_DESCRIPTOR**)apFtaProgramContents, //maContentsNull,
NBR_FTA_PROGRAM_CONTENTS, //mwNbrContentsNull,
},
NULL
},
BMP_BG_2,
CIDX_6
};
/***************************************************************************************
* Array : aFtaPidKit
*
* Purpose : Contains an array of pointer to descriptors of the objects that would be
* added to the aFtaPidKit (oFtaProgramKitDescriptor).
****************************************************************************************/
STATIC CONST MS_DESCRIPTOR* CONST aFtaPidKit[] = {
(MS_DESCRIPTOR*)&oChnlIndexDescriptor,
(MS_DESCRIPTOR*)&oVidPidEditDescriptor,
(MS_DESCRIPTOR*)&oAudPidEditDescriptor,
(MS_DESCRIPTOR*)&oPcrPidEditDescriptor,
(MS_DESCRIPTOR*)&oChannelTypeParamDescriptor,
(MS_DESCRIPTOR*)&oProgExitButtonDescriptor,
NULL // IMPORTANT : Last item must always be NULL.
};
/***************************************************************************************
* Array : aFtaPidKit
*
* Purpose : Contains an array of pointer to descriptors of the objects that would be
* added to the aFtaPidKit (oFtaProgramKitDescriptor).
****************************************************************************************/
STATIC CONST MS_DESCRIPTOR* CONST aFtaTransportKit[] = {
#ifdef FTA_SATELLITE
(MS_DESCRIPTOR*)&oLNBEditDescriptor,
(MS_DESCRIPTOR*)&oTransFreqEditDescriptor,
(MS_DESCRIPTOR*)&oSymbolEditDescriptor,
//(MS_DESCRIPTOR*)&oPcrPidEditDescriptor,
(MS_DESCRIPTOR*)&oPolarityParamDescriptor,
#endif //FTA_SATELLITE
(MS_DESCRIPTOR*)&oProgExitButtonDescriptor,
NULL // IMPORTANT : Last item must always be NULL.
};
/***************************************************************************************
* Utility functions
****************************************************************************************/
/***************************************************************************************
* Function : _AddItemsToFtaProgramKit
*
* In : pList = Pointer to the aFtaPidKit MSO_VLIST.
*
* Out :
*
* Desc :
****************************************************************************************/
#ifndef D_CUSTOM__AddItemsToFtaProgramKit
STATIC BOOL _AddItemsToFtaProgramKit(MSO_VLIST __NEAR* pList )
{
if(NULL != pList)
{
UINT8 cIndex;
UINT8 cNumItems;
UINT8 cTotalItemsInToolkit = 0;
MSO_OBJECT __NEAR* pObject;
MS_DESCRIPTOR** ppDescriptor = NULL;
if( bIsChannelProg )
{
ppDescriptor = (MS_DESCRIPTOR**)aFtaPidKit;
}
else
{
ppDescriptor = (MS_DESCRIPTOR**)aFtaTransportKit;
}
// Get the total number of tools in the toolkit
while(NULL != ppDescriptor[cTotalItemsInToolkit])
cTotalItemsInToolkit++;
pList->moParam.mwTotalItems = cTotalItemsInToolkit;
cNumItems = MIN(pList->moParam.mcNumVisibleItems, (pList->moParam.mwTotalItems - pList->moParam.mwFirstDisplayItem));
for(cIndex = 0; cIndex < cNumItems; cIndex++)
{
pObject = OVLIST_CreateAndAppendItem(pList, ppDescriptor[pList->moParam.mwFirstDisplayItem + cIndex]);
MS_SendOperation(pObject, MS_OP_OPEN, 0);
MS_SendOperation(pObject, MS_OP_INIT, 0);
}
return TRUE;
}
return FALSE;
}
#endif // #ifndef D_CUSTOM
/**********************************************************************************
* Name : _IsPidAllowed
*
* Purpose : Check whether the title num and the chapter num are in the range.
*
* Input : wPidNum - VidPid/AudPid/PcrPid number
*
*
* Return Value : TRUE: The pid num are in the range else FALSE.
*
* Description : refer to purpose
*
* Comments : None.
*
**********************************************************************************/
static BOOL _IsPidAllowed(UINT16 wPidNum )
{
if ((wPidNum < MIN_PID_VALUE) || (wPidNum > MAX_PID_VALUE ))
{
return FALSE;
}
return TRUE;
}
/***************************************************************************************
* Utility functions
****************************************************************************************/
#pragma argsused
#ifndef D_CUSTOM__OFtaTab_GetFormUniStr_FtaChnl
STATIC void OFtaTab_GetFormUniStr_FtaChnl(FORMATED_UNICODE_STRING __NEAR *pFormattedString, UINT32 wParam)
{
memcpy((BYTE*)pFormattedString->mszUniStr, wFtaProgTitle, (UNISTR_LENGTH_MAX*2));
OSDR_FormatUniString(pFormattedString);
}
#endif //D_CUSTOM
/***************************************************************************************
* Operation functions
****************************************************************************************/
/***************************************************************************************
* Function : _FtaProgramOperation
*
* In :
*
* Out :
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -