nt9856x/code/lib/include/NvtUser/NvtUser.h
2023-03-28 15:07:53 +08:00

175 lines
3.6 KiB
C
Executable File

/**
Header file of user event task
Event driven user task.
@file NvtUser.h
@ingroup mINvtUser
@note Nothing (or anything need to be mentioned).
Copyright Novatek Microelectronics Corp. 2011. All rights reserved.
*/
#ifndef USERTSK_H
#define USERTSK_H
#include <kwrap/type.h>
#include "NVTEvent.h"
#include "NVTReturn.h"
//extern void NvtUser_InstallID(void) _SECTION(".kercfg_text");
/**
@addtogroup mINvtUser
*/
//@{
typedef enum {
UXUSER_CB_QFULL = 1, ///<message queue is full
} UXUSER_CB_TYPE;
typedef void (*USER_MAIN_FP)(void); ///< main process callback
typedef void (*USER_CB_FP)(UXUSER_CB_TYPE evt, UINT32 p1, UINT32 p2, UINT32 p3);///< error status callback
/**
@name UserTsk Open Data Structures
@{
*/
typedef struct _UXUSER_OBJ {
USER_MAIN_FP pfMainProc;
USER_CB_FP pfNvtUserCB;
} UXUSER_OBJ;
#define UX_EVENT_QUEUE_USED (1)
#define UX_EVENT_QUEUE_MAX (2)
/**
Open task.
Open NvtUser task.
@note Nothing.
@param[in] param Open Data Structures.
@return
- @b E_OK: Successed
- @b Other: Failed.
*/
extern ER Ux_Open(UXUSER_OBJ *param);
/**
Close task.
Close NvtUser task.
@note Nothing.
@return
- @b E_OK: Successed
- @b Other: Failed.
*/
extern ER Ux_Close(void);
/**
Check status.
Check is NvtUser task is already opened or not.
@note Nothing.
@return
- @b TRUE: Opened
- @b FALSE: Not opened yet.
*/
extern BOOL Ux_IsOpen(void);
/**
Dump event status.
Dump entire event queue content of NvtUser task.
@note Nothing.
*/
extern void Ux_DumpEvents(void);
/**
Get task ID.
Get task ID of NvtUser task.
@note Nothing.
@return task ID
*/
extern ID Ux_GetTaskID(void);
/**
Post event.
Post event to event queue of NvtUser task.
@note Nothing.
@param[in] evt event.
@param[in] paramNum other parameters.
*/
extern void Ux_PostEvent(NVTEVT evt, UINT32 paramNum, ...);
/**
Flush event.
Flush all events of event queue of NvtUser task.
@note Nothing.
*/
extern void Ux_FlushEvent(void);
/**
Flush event.
Flush event of event queue of NvtUser task,
if the event value is inside the min-max range.
@note Nothing.
@param[in] start event minimal value.
@param[in] end event maximal value.
*/
extern void Ux_FlushEventByRange(UINT32 start, UINT32 end);
/**
Wait and get event.
Wait and get event from event queue of NvtUser task.
@note Nothing.
@param[out] evt pointer to event.
@param[out] paramNum pointer of parameter count.
@param[out] paramArray pointer of parameter array.
*/
extern void Ux_WaitEvent(NVTEVT *evt, UINT32 *paramNum, UINT32 *paramArray);
/**
Enable/Disable calculate post evnt fps.
if enable API.When event count reaches the unit. It would the event count divided by the time.
@note Nothing.
@param[in] bEn enable/disalbe calculation.
@param[in] unit event count reaches the unit.It would calcualte fps one time.
*/
extern void Ux_CalPostFps(UINT32 bEn,UINT32 unit);
/**
get ui task parameter.
get ui parameter status
@note Nothing.
@param[in] param parameter.
@param[out] *value return param value.user should set
@return
- @b E_OK: Successed
- @b Other: Failed.
*/
extern UINT32 Ux_Get(UINT32 param,UINT32 *value);
//@}
#endif