📄 o_brightness_edge_controller.c
字号:
RUNTIME_HTAB_WIDTH,
HS_HIGHLIGHT_ON_OBJECT,
FALSE, // bDisplayCurrentValue
TRUE,//FALSE, // bDisplayMinAndMaxValues
_EdgeCtrlSliderAction
};
/***************************************************************************************
* The BrightnessEdgeController component
****************************************************************************************/
#define NBR_BRIGHTNESS_EDGE_CONTROLLER_CONTENTS 4
static CONST MS_DESCRIPTOR* CONST apBrightnessEdgeControllerContents[NBR_BRIGHTNESS_EDGE_CONTROLLER_CONTENTS] =
{
(MS_DESCRIPTOR*)&oBrightnessTitleDescriptor,
(MS_DESCRIPTOR*)&oEdgesTitleDescriptor,
(MS_DESCRIPTOR*)&oBrightCtrlSliderDescriptor,
(MS_DESCRIPTOR*)&oEdgeCtrlSliderDescriptor
};
CONST MS_DESCRIPTOR_BRIGHTNESS_EDGE_CONTROLLER oBrightnessEdgeControllerDescriptor =
{
{// MS_DESCRIPTOR_COMPONENT
{// MS_DESCRIPTOR_CONTAINER
{// MS_DESCRIPTOR
sizeof(MSO_BRIGHTNESS_EDGE_CONTROLLER),
MS_NAV_DISABLE_LR|MS_NAV_CONTAINER_WRAP_UD,
MS_ATTR_CONTAINER|MS_ATTR_FOCUSABLE|MS_ATTR_OSD_LAYER_0,
{
AREA_BRIGHTNESS_EDGE_CONTROLLER_X,
AREA_BRIGHTNESS_EDGE_CONTROLLER_Y,
AREA_BRIGHTNESS_EDGE_CONTROLLER_W,
AREA_BRIGHTNESS_EDGE_CONTROLLER_H
},
_BrightnessEdgeControllerComponentOperation,
_BrightnessEdgeControllerComponentFillOSDSeg,
mpParamNull
},
(CONST MS_DESCRIPTOR**)apBrightnessEdgeControllerContents,
NBR_BRIGHTNESS_EDGE_CONTROLLER_CONTENTS
},
(MS_DESCRIPTOR*)&oBrightCtrlSliderDescriptor
},
BMP_BG_2
};
/***************************************************************************************
* Operation functions of brightness_edge_controller Component.
****************************************************************************************/
/***************************************************************************************
* Function :
*
* In :
*
* Out :
*
* Desc : The user operation function.
****************************************************************************************/
static MS_OP _BrightnessEdgeControllerComponentOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp,UINT32 lParam)
{
switch(MsOp)
{
case MS_OP_INIT:
MS_ComponentInitFocus((MSO_COMPONENT __NEAR*)pThis);
break;
case MS_OP_MENU:
case MS_OP_STOP:
case MS_OP_BRIGHTNESS_EDGE_CONTROL:
{
MsOp=MS_OP_CLOSE_PARENT;
}
break;
case MS_OP_EJECT:
{
MS_SendOperation(pThis, MS_OP_CLOSE_PARENT, 0);
}
break;
default :
break;
}
return MS_ComponentBasicOperation(pThis, MsOp, lParam);
}
/***************************************************************************************
* Function :
*
* In :
*
* Out :
*
* Desc : The user operation function.
****************************************************************************************/
STATIC UINT16 _BrightCtrlSliderAction(HSLIDER_ACTION eType, UINT16 wValue)
{
UINT16 wBrightnessValue;
if(HS_ACTION_GET == eType)
{
wBrightnessValue = CoreAPI_GetPsBrightnessSetting();
// Check slider value range before return.
if(MAX_BRIGHT_VALUE < wBrightnessValue)
return NUM_BRIGHTNESS_SLIDER_STEPS;
else if(MIN_BRIGHT_VALUE > wBrightnessValue)
return MIN_BRIGHT_VALUE;
else
return wBrightnessValue;
}
else
{
// Check value range before return to slider.
if( MAX_BRIGHT_VALUE < wValue)
wBrightnessValue = MAX_BRIGHT_VALUE;
else if ( wValue<MIN_BRIGHT_VALUE)
{
wBrightnessValue = MIN_BRIGHT_VALUE;
}
else
wBrightnessValue = wValue;
CoreAPI_UpdatePlayerSetting(PS_UPDATE_BE_CTRL_SETTING, wBrightnessValue);
return wValue;
}
}
/***************************************************************************************
* Function :
*
* In :
*
* Out :
*
* Desc : The user operation function.
****************************************************************************************/
STATIC UINT16 _EdgeCtrlSliderAction(HSLIDER_ACTION eType, UINT16 wValue)
{
UINT16 wEdgeValue;
if(HS_ACTION_GET == eType)
{
wEdgeValue = CoreAPI_GetPsEdgeSetting();
// Check slider value range before return.
if(MAX_EDGE_VALUE < wEdgeValue)
return NUM_EDGE_SLIDER_STEPS;
else if(MIN_EDGE_VALUE > wEdgeValue)
return MIN_EDGE_VALUE;
else
return wEdgeValue;
}
else
{
// Check value range before return to slider.
if(MAX_EDGE_VALUE< wValue)
wEdgeValue = MAX_EDGE_VALUE;
else if ( wValue<MIN_EDGE_VALUE)
wEdgeValue = MIN_EDGE_VALUE;
else
wEdgeValue = wValue;
CoreAPI_UpdatePlayerSetting(PS_UPDATE_EE_CTRL_SETTING, wEdgeValue);
return wValue;
}
}
/***************************************************************************************
* Display functions
****************************************************************************************/
/***************************************************************************************
* Function :
*
* In :
*
* Out :
*
* Desc : MSO_BRIGHTNESS_EDGE_CONTROLLER display function.
****************************************************************************************/
#pragma argsused
static BOOL _BrightnessEdgeControllerComponentFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea)
{
MS_DESCRIPTOR_BRIGHTNESS_EDGE_CONTROLLER* pDescriptor = (MS_DESCRIPTOR_BRIGHTNESS_EDGE_CONTROLLER*)pThis->mpDescriptor;
OSDR_FillOsdSegBitmapFitArea(pDescriptor->mpBgBmp, pAbsArea);
return FALSE;
}
/***************************************************************************************
* Public functions
****************************************************************************************/
/***************************************************************************************
* Function : OBrightnessEdge_OpenAtPos
*
* In : pParent = Pointer to the parent container.
*
* wStartX = X position of the component. The default position (specified in the
* descriptor) is used in case this parameter is set to DEFAULT_POSITION.
*
* wStartY = Y position of the component.The default position (specified in the
* descriptor) is used in case this parameter is set to DEFAULT_POSITION.
*
* Out : None.
*
* Return : Pointer to the brightness_edge_controller component if opened successfully, otherwise NULL.
*
* Desc : Creates, and displays a brightness_edge_controller component at a specified position.
****************************************************************************************/
extern MSO_OBJECT __NEAR* OBrightnessEdge_OpenAtPos(MSO_CONTAINER __NEAR* pParent, UINT16 wStartX, UINT16 wStartY)
{
if(NULL != pParent)
{
MSO_OBJECT __NEAR* pObject;
pObject = (MSO_OBJECT __NEAR*)MS_ComponentOpen((MS_DESCRIPTOR_COMPONENT*)&oBrightnessEdgeControllerDescriptor, pParent);
if(NULL != pObject)
{
if((DEFAULT_POSITION != wStartX) || (DEFAULT_POSITION != wStartY))
{
wStartX = (DEFAULT_POSITION == wStartX) ? pObject->mpDescriptor->moArea.msX : wStartX;
wStartY = (DEFAULT_POSITION == wStartY) ? pObject->mpDescriptor->moArea.msY : wStartY;
MS_ObjectMove(pObject, wStartX, wStartY);
}
MS_DisplayAddObject(pObject);
}
return pObject;
}
return NULL;
}
#endif//D_GUI_COMPONENT_BRIGHTNESS_EDGE_CONTROLLER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -