/************************************************************************* File name : hal.h Module : hal Author : Copyright : Version : 0.1 Created on : 2022-04-27 Creator : amir.liang Description : hal init for lower driver Modify History: 1. Date: Author: Modification: ***************************************************************************/ #ifndef __HAL_H__ #define __HAL_H__ #include #include "util.h" #include "hloop.h" #include "hbase.h" #include "hsocket.h" #include "ratelimit.h" #include "kpacket.h" #include "project_config.h" #include "hlog.h" typedef enum { FRAME_TYPE_AUDIO = 0x00, // Audio Frame FRAME_TYPE_IFRAME = 0x01, // I Frame FRAME_TYPE_PBFRAME = 0x02, // PB Frame FRAME_TYPE_YV12 = 0x04, // YUV Frame FRAME_TYPE_MAX } HAL_FRAME_TYPE; #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /** * save the PFN_EVENT_xxx callback, and init init_ld * @param [in] subscribe for hal_sub * @param [in] unsubscribe for hal_unsub * @param [in] publish for hal_pub * @return 0 ok */ int32_t hal_init(hloop_t* loop); int32_t hal_deinit(); /** * subscribe a event to event center * @param [in] event to be subscribed * @param [in] entry will a event trigger it will be callback * @param [in] param callback to entry * @return 0 ok */ void hal_sub(uint32_t event, int32_t priority, hevent_cb cb); /** * unsubscribe a event from event center * note coz same event may be subscibe by many other modules, * so we add 'entry' to match. * @param [in] event to be unsubscribed * @param [in] entry to be unsubscribed * @return 0 ok */ void hal_unsub(uint32_t event, hevent_cb cb); /** * publish a event to event center, 'entry' will be triggered which subscribed this event * so we add 'entry' to match. * @param [in] packet will be send as 'entry(packet)' * @return 0 ok */ void hal_pub(kpacket *packet); /** * start a loop timer actually to call 'entry' intevally * @param [in] entry will be call intevally * @param [in] param callback to entry * @param [in] interval time to call entry * @return htimer_t ok */ htimer_t* hal_timer_start(htimer_cb cb, uint32_t timeout_ms, uint32_t repeat); /** * stop a loop timer * @param [in] entry will be stop(del) * @return 0 ok */ void htimer_del(htimer_t *timer); void hal_dump(); #ifdef __cplusplus } #endif /* __cplusplus */ #endif