?? o_ge.c
字號:
{
MSO_OBJECT __NEAR* pParent;
MS_ASSERT(NULL != pEq);
pParent = (MSO_OBJECT __NEAR*)((MSO_OBJECT __NEAR*)pEq)->mpParent;
MS_SetInvisible(pEq);
MS_DisplayAddObject(pParent);
MS_ScreenSetFocusObject(MS_ContainerGetPrevFocusObject((MSO_CONTAINER __NEAR*)pParent));
MS_SendOperation((MSO_OBJECT __NEAR*)pEq, MS_OP_EMPTY, 0);
MS_RemoveObject((MSO_OBJECT __NEAR*)pEq);
return;
}
/**************************************************************************
* Operation functions
***************************************************************************/
/**************************************************************************
* Function : TimeSearchOperation
*
* In :
*
* Out :
*
* Desc :
***************************************************************************/
MS_OP EqOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
// TODO : If neccessary handle operations here.
return MS_ComponentBasicOperation(pThis, MsOp, lParam);
}
/**************************************************************************
* Display functions
***************************************************************************/
/**************************************************************************
* Function : EqFillOSDSeg
*
* In :
*
* Out :
*
* Desc :
***************************************************************************/
BOOL EqFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea)
{
FORMATED_UNICODE_STRING oFormUniStr;
MS_DESCRIPTOR_EQ* pDescriptor = (MS_DESCRIPTOR_EQ*)pThis->mpDescriptor;
OSDR_FillOsdSegBitmapFitArea(pDescriptor->mpBgBmp, pAbsArea);
oFormUniStr.mtFontIndex = FONT_0;
//EQ label
OSDR_GetFormUniStr_OsdMessage((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, S_GRAPHIC_EQUALIZER);
OSDR_FillOsdSegUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
pAbsArea,
EQ_COL_1_X,
EQ_LINE_2_Y,
ALIGN_H_LEFT,
ALIGN_V_BOTTOM,
pDescriptor->mwTextColor);
// The MODE label
OSDR_GetFormUniStr_OsdMessage((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, S_MODE);
OSDR_FillOsdSegUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
pAbsArea,
EQ_COL_1_X,
EQ_LINE_3_Y,
ALIGN_H_LEFT,
ALIGN_V_BOTTOM,
pDescriptor->mwTextColor);
return FALSE;
}
/**************************************************************************
* Function : _ModeChoiceOperation
* In :
* Out :
* Desc :
***************************************************************************/
static MS_OP _ModeChoiceOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
switch(MsOp)
{
case MS_OP_RIGHT:
// If the choice is closed and the MS_ATTR_CHOICE_OPEN_ON_RIGHT_PRESS,
// then open the choice by falling through to the next case.
if(!MS_IS_CHOICE_OPEN_ON_RIGHT_PRESS(pThis))
{
break;
}
// else FALL THRU
case MS_OP_ENTER:
{
MSO_OBJECT __NEAR* pObject;
MSO_VLIST __NEAR* pValueListObject;
// Get a pointer to the value list object
pValueListObject = (MSO_VLIST __NEAR*)MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)(pThis->mpParent),
(MS_DESCRIPTOR*)&oValueVListDescriptor);
MS_ASSERT(pValueListObject != NULL);
// Set the object to be visible:
MS_ClearInvisible(pValueListObject);
// Clear the value list of anything it might have in it:
MS_SendOperation((MSO_OBJECT __NEAR*)pValueListObject, MS_OP_EMPTY, 0);
// Add the values required for this choice:
pValueListObject->moParam.mdwData = (UINT32)pThis->mpDescriptor;
OCHOICE_AddItemsToVList((MSO_CHOICE __NEAR*)pThis, pValueListObject);
// Set focus to the selected item...
// ... first find the focused item:
pObject = ((MSO_CONTAINER __NEAR*)pValueListObject)->mpOlist;
while((NULL != pObject) && !(MS_IsSelected(pObject)))
{
pObject = pObject->mpNext;
}
MS_ASSERT(pObject != NULL);
// ... then set the focus to it:
MS_ScreenSetFocusObject(pObject);
// Extend the width of the choice object to run behind the list:
pThis->moArea.mwW = pValueListObject->moContainer.moObject.moArea.msX + CHOICE_OVERLAP_VALUELIST_W;
// Redisplay the choice:
MS_DisplayAddObject((MSO_OBJECT __NEAR *)pThis->mpParent);
// This operation has been processed fully:
MsOp = MS_OP_NONE;
}
break;
}
return ChoiceOperation(pThis, MsOp, lParam);
}
/**************************************************************************
* Function :
* In :
* Out :
* Desc :
***************************************************************************/
static void _UpdateEQSliders(void)
{
UINT16 *eq_value;
UINT8 index;
MSO_HSLIDER __NEAR* pEQSlider1;
MSO_HSLIDER __NEAR* pEQSlider2;
MSO_HSLIDER __NEAR* pEQSlider3;
MSO_HSLIDER __NEAR* pEQSlider4;
MSO_HSLIDER __NEAR* pEQSlider5;
MSO_HSLIDER __NEAR* pEQSlider6;
switch ( PS_Get_EQ_Mode() )
{
case GRAPHIC_EQUALIZER_CLASS:
eq_value = (UINT16 *) EQUALIZER_BANDGAIN_CLASS;
break;
case GRAPHIC_EQUALIZER_ROCK:
eq_value = (UINT16 *) EQUALIZER_BANDGAIN_ROCK;
break;
case GRAPHIC_EQUALIZER_JAZZ:
eq_value = (UINT16 *) EQUALIZER_BANDGAIN_JAZZ;
break;
case GRAPHIC_EQUALIZER_POP:
eq_value = (UINT16 *) EQUALIZER_BANDGAIN_POP;
break;
case GRAPHIC_EQUALIZER_USER:
eq_value = (UINT16 *) EQUALIZER_BANDGAIN_USER;
break;
case GRAPHIC_EQUALIZER_STD:
case GRAPHIC_EQUALIZER_OFF:
eq_value = (UINT16 *) EQUALIZER_BANDGAIN_STD;
default:
break;
}
pEQSlider1 = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)gpScreen, (MS_DESCRIPTOR*)&oEQSlider1Descriptor);
pEQSlider2 = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)gpScreen, (MS_DESCRIPTOR*)&oEQSlider2Descriptor);
pEQSlider3 = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)gpScreen, (MS_DESCRIPTOR*)&oEQSlider3Descriptor);
pEQSlider4 = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)gpScreen, (MS_DESCRIPTOR*)&oEQSlider4Descriptor);
pEQSlider5 = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)gpScreen, (MS_DESCRIPTOR*)&oEQSlider5Descriptor);
pEQSlider6 = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)gpScreen, (MS_DESCRIPTOR*)&oEQSlider6Descriptor);
pEQSlider1->moParam.mwCurrentValue = eq_value[EQ_SLIDER1];
pEQSlider2->moParam.mwCurrentValue = eq_value[EQ_SLIDER2];
pEQSlider3->moParam.mwCurrentValue = eq_value[EQ_SLIDER3];
pEQSlider4->moParam.mwCurrentValue = eq_value[EQ_SLIDER4];
pEQSlider5->moParam.mwCurrentValue = eq_value[EQ_SLIDER5];
pEQSlider6->moParam.mwCurrentValue = eq_value[EQ_SLIDER6];
for(index = 0; index<EQUALIZER_BANDGAIN_SZ; index++)
{
eq_slider_value[index] = eq_value[index];
}
// Using MS_DisplayAddObject causes problems on the screen
//MS_DisplayAddObject((MSO_OBJECT __NEAR*)pEQSlider1);
//MS_DisplayAddObject((MSO_OBJECT __NEAR*)pEQSlider2);
//MS_DisplayAddObject((MSO_OBJECT __NEAR*)pEQSlider3);
//MS_DisplayAddObject((MSO_OBJECT __NEAR*)pEQSlider4);
//MS_DisplayAddObject((MSO_OBJECT __NEAR*)pEQSlider5);
//MS_DisplayAddObject((MSO_OBJECT __NEAR*)pEQSlider6);
}
/**************************************************************************
* Function :
* In :
* Out :
* Desc :
***************************************************************************/
static void _ModeChoiceAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue)
{
MSO_CHOICE __NEAR* pChoice = (MSO_CHOICE __NEAR*)pThis;
// Which action is required?
if(eMutatorGet == eType)
pChoice->moParam.mwCurrValIndex = OCHOICE_GetIndexFromValue(pThis, PS_Get_EQ_Mode());
else
{
UINT8 cIndex = OCHOICE_GetIndexFromValue(pThis, wValue);
UI_Core_API_UpdatePlayerSetting(PS_UPDATE_GRAPHIC_EQUALIZER_MODE, wValue);
pChoice->moParam.mwCurrValIndex = cIndex;
_UpdateEQSliders();
}
}
/**************************************************************************
* Function :
* In :
* Out :
* Desc :
***************************************************************************/
static void _AddValuesToVList(MSO_VLIST __NEAR* pList, MSO_CHOICE __NEAR* pChoice)
{
OCHOICE_AddItemsToVList(pChoice, pList);
return;
}
/**************************************************************************
* Function : _EqOKButtonOperation
*
* In :
*
* Out :
*
* Return :
*
* Desc :
*
***************************************************************************/
static MS_OP _EqOKButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
MSO_OBJECT __NEAR *pAdvEqButton;
MSO_OBJECT __NEAR* pParent;
MSO_PAGE __NEAR* pAudioPage;
extern CONST MS_DESCRIPTOR_BUTTON oAdvEqButtonDescriptor; // in setup_menu.c
switch(MsOp)
{
case MS_OP_ENTER:
{
pParent = (MSO_OBJECT __NEAR*)((MSO_OBJECT __NEAR*)pThis->mpParent);
pAudioPage = (MSO_PAGE __NEAR*)((MSO_OBJECT __NEAR*)((MSO_OBJECT __NEAR*)((MSO_OBJECT __NEAR*)((MSO_OBJECT __NEAR*)pThis->mpParent)->mpParent)->mpParent)->mpParent)->mpParent;
Eq_Close((MSO_EQ __NEAR*)pParent);
/* reload the audio page */
_AddPageParams(pAudioPage);
pAdvEqButton = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)gpScreen,
(MS_DESCRIPTOR*)&oAdvEqButtonDescriptor);
MS_ScreenSetFocusObject(pAdvEqButton);
MS_DisplayAddObject(pAudioPage);
return MS_OP_NONE;
}
}
return OBUTTON_Operation(pThis, MsOp, lParam);
}
#endif //D_GRAPHIC_EQUALIZER_MENU
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -