nt9856x/code/application/source/cardv/SrcCode/Gx/include/GxVideo.h
2023-03-28 15:07:53 +08:00

253 lines
5.9 KiB
C
Executable File

/**
Video device control.
Video device control.
@file GxVideo.h
@note Nothing
Copyright Novatek Microelectronics Corp. 2012. All rights reserved.
*/
#ifndef _GX_VIDEO_H_
#define _GX_VIDEO_H_
#include "GxCommon.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
@name DISPLAY device id
*/
//@{
#ifndef DOUT1
#define DOUT1 0x00 ///< 1st device
#define DOUT2 0x10 ///< 2nd device
#define DOUT_MASK 0xf0 ///< output device mask
#endif
//@}
//--------------------------------------------------------------------------------------
// device
//--------------------------------------------------------------------------------------
/**
Initialize device.
Initialize device.
@note Nothing
*/
extern void GxVideo_InitDevice(UINT32 DevID);
/**
Uninitialize device.
Uninitialize device.
@note Nothing
*/
extern void GxVideo_ExitDevice(UINT32 DevID);
/**
@name Callback id
*/
//@{
#define DISPLAY_CB_PLUG 1 ///< device inserted
#define DISPLAY_CB_UNPLUG 2 ///< device removed
#define DISPLAY_CB_INITOK 4 ///< device initialize ok
#define DISPLAY_CB_DIR 8 ///< device change direction
//@}
/**
Register callback of this lib.
Register callback of this lib.
@note Nothing
@param[in] fpDispCB Callback function pointer
*/
extern void GxVideo_RegCB(GX_CALLBACK_PTR fpDispCB);
/**
Dump status of device.
Dump status of device.
@note Nothing
*/
extern void GxVideo_DumpInfo(void);
/**
Open device.
Open device.
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
@param[in] NewDevObj device object.
@param[in] mode device mode.
*/
extern INT32 GxVideo_OpenDevice(UINT32 DevID, UINT32 NewDevObj, UINT32 mode);
/**
Close device.
Close device.
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
*/
extern INT32 GxVideo_CloseDevice(UINT32 DevID);
/**
Get current device object.
Get current device object.
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
@return Device object
*/
extern UINT32 GxVideo_GetDevice(UINT32 DevID);
/**
Get current device size of current mode.
Get current device size of current mode, it will affect by ROTATE state!
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
@return Device size
*/
extern ISIZE GxVideo_GetDeviceSize(UINT32 DevID);
/**
Get current device aspect ratio
Get current device aspect ratio, it will affect by ROTATE state!
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
@return Aspect ratio
*/
extern USIZE GxVideo_GetDeviceAspect(UINT32 DevID);
/**
Get given device first mode.
Get given device first mode.
@note Nothing
@param[in] NewDevObj Device object
@param[in] mode First mode
*/
void GxVideo_ConfigDeviceFirstMode(UINT32 NewDevObj, UINT32 mode);
/**
Get given device last mode.
Get given device last mode.
@note Nothing
@param[in] NewDevObj Device object
@return Last mode
*/
extern UINT32 GxVideo_QueryDeviceLastMode(UINT32 NewDevObj);
/**
Get given device size of given mode.
Get given device size of given mode.
@note Nothing
@param[in] NewDevObj Device object
@param[in] mode Given mode
@return Device size
*/
extern ISIZE GxVideo_QueryDeviceModeSize(UINT32 DevID, UINT32 NewDevObj, UINT32 mode);
/**
@name Device control id
*/
//@{
#define DISPLAY_DEVCTRL_MODE 0 ///< get MODE, set MODE
#define DISPLAY_DEVCTRL_SLEEP 1 ///< get SLEEP, set SLEEP
#define DISPLAY_DEVCTRL_ACTIVE 2 ///< get ACTIVE, set ACTIVE
#define DISPLAY_DEVCTRL_BACKLIGHT 3 ///< get backlight, set backlight
#define DISPLAY_DEVCTRL_BRIGHTLVL 4 ///< get brightness, set brightness
#define DISPLAY_DEVCTRL_FORCEDETINS 5 ///< get force-detect insert, set force-detect insert
#define DISPLAY_DEVCTRL_FORCEDETDIR 6 ///< get force-detect dir, set force-detect dir
#define DISPLAY_DEVCTRL_DIRECT 7 ///< get rotate direct, set rotate direct
#define DISPLAY_DEVCTRL_SWAPXY 8 ///< get enable swap x and y, set enable swap x and y
#define DISPLAY_DEVCTRL_PATH 9 ///< get vout path
#define DISPLAY_DEVCTRL_CTRLPATH 10 ///< get vout control path
//@}
/**
@name State of DISPLAY_DEVCTRL_ACTIVE
*/
//@{
#define DISPLAY_ACTIVE_STOP 0 ///< stop
#define DISPLAY_ACTIVE_PLAY 1 ///< play
#define DISPLAY_ACTIVE_PAUSE 2 ///< pause
//@}
/**
Set control to device.
Set control to device.
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
@param[in] data Control state
@param[in] value Control value
*/
extern void GxVideo_SetDeviceCtrl(UINT32 DevID, UINT32 data, UINT32 value);
/**
Get control to device.
Get control to device.
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
@param[in] data Control state
@return Control value
*/
extern UINT32 GxVideo_GetDeviceCtrl(UINT32 DevID, UINT32 data);
/**
Detect insert of device.
Detect insert of device.
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
@param[in] context Context for detect process
*/
extern void GxVideo_DetInsert(UINT32 DevID, UINT32 context);
/**
Detect direct of device.
Detect direct of device.
@note Nothing
@param[in] DevID Device id (ex: DOUT1 or DOUT2).
@param[in] context Context for detect process
*/
extern void GxVideo_DetDir(UINT32 DevID, UINT32 context);
#ifdef __cplusplus
} //extern "C"
#endif
#endif//_GX_VIDEO_H_