timeline.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /********************************************************************************
  2. * USDK(ATS350B_linux)
  3. * Module: SYSTEM
  4. * Copyright(c) 2003-2017 Actions Semiconductor,
  5. * All Rights Reserved.
  6. *
  7. * History:
  8. * <author> <time> <version > <desc>
  9. * rongxing 2021-9-5 1.0 build this file
  10. ********************************************************************************/
  11. /*!
  12. * \file timeline.h
  13. * \brief
  14. * \author
  15. * \version 1.0
  16. * \date 2021-9-5
  17. *******************************************************************************/
  18. #ifndef TIMELINE_H_
  19. #define TIMELINE_H_
  20. #include <os_common_api.h>
  21. #include <mem_manager.h>
  22. enum{
  23. TIMELINE_TYPE_BLUETOOTH_SCO,
  24. TIMELINE_TYPE_BLUETOOTH_LE_TX,
  25. TIMELINE_TYPE_BLUETOOTH_LE_RX,
  26. TIMELINE_TYPE_AUDIO_TX,
  27. TIMELINE_TYPE_AUDIO_RX,
  28. TIMELINE_TYPE_MEDIA_TIMER,
  29. TIMELINE_TYPE_MEDIA_ENCODE,
  30. TIMELINE_TYPE_MEDIA_DECODE,
  31. };
  32. enum{
  33. TIMELINE_STATUS_PENDING,
  34. TIMELINE_STATUS_RUNNING,
  35. };
  36. typedef struct
  37. {
  38. sys_snode_t node;
  39. int32_t type;
  40. int32_t status;
  41. sys_slist_t listener_list;
  42. int32_t interval_us;
  43. }timeline_t;
  44. typedef struct
  45. {
  46. sys_snode_t node;
  47. int (*trigger)(void *param);
  48. void* param;
  49. }timeline_listener_t;
  50. timeline_t * timeline_create(int32_t type,int32_t interval_us);
  51. int timeline_start(timeline_t *tl);
  52. int timeline_add_listener(timeline_t *tl,timeline_listener_t* listener);
  53. int timeline_remove_listener(timeline_t *tl,timeline_listener_t* listener);
  54. int timeline_trigger_listener(timeline_t *tl);
  55. int timeline_get_interval(timeline_t * tl);
  56. int timeline_stop(timeline_t *tl);
  57. int timeline_release(timeline_t * tl);
  58. timeline_t * timeline_get_by_type(int32_t type);
  59. #endif /* TIMELINE_H_ */