175 lines
3.6 KiB
C
Executable File
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
|