123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /********************************************************************************
- * USDK(ATS350B_linux)
- * Module: SYSTEM
- * Copyright(c) 2003-2017 Actions Semiconductor,
- * All Rights Reserved.
- *
- * History:
- * <author> <time> <version > <desc>
- * rongxing 2021-9-5 1.0 build this file
- ********************************************************************************/
- /*!
- * \file timeline.h
- * \brief
- * \author
- * \version 1.0
- * \date 2021-9-5
- *******************************************************************************/
- #ifndef TIMELINE_H_
- #define TIMELINE_H_
- #include <os_common_api.h>
- #include <mem_manager.h>
- enum{
- TIMELINE_TYPE_BLUETOOTH_SCO,
- TIMELINE_TYPE_BLUETOOTH_LE_TX,
- TIMELINE_TYPE_BLUETOOTH_LE_RX,
- TIMELINE_TYPE_AUDIO_TX,
- TIMELINE_TYPE_AUDIO_RX,
- TIMELINE_TYPE_MEDIA_TIMER,
- TIMELINE_TYPE_MEDIA_ENCODE,
- TIMELINE_TYPE_MEDIA_DECODE,
- };
- enum{
- TIMELINE_STATUS_PENDING,
- TIMELINE_STATUS_RUNNING,
- };
- typedef struct
- {
- sys_snode_t node;
- int32_t type;
- int32_t status;
- sys_slist_t listener_list;
- int32_t interval_us;
- }timeline_t;
- typedef struct
- {
- sys_snode_t node;
- int (*trigger)(void *param);
- void* param;
- }timeline_listener_t;
- timeline_t * timeline_create(int32_t type,int32_t interval_us);
- int timeline_start(timeline_t *tl);
- int timeline_add_listener(timeline_t *tl,timeline_listener_t* listener);
- int timeline_remove_listener(timeline_t *tl,timeline_listener_t* listener);
- int timeline_trigger_listener(timeline_t *tl);
- int timeline_get_interval(timeline_t * tl);
- int timeline_stop(timeline_t *tl);
- int timeline_release(timeline_t * tl);
- timeline_t * timeline_get_by_type(int32_t type);
- #endif /* TIMELINE_H_ */
|