mediachannel.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef MEDIACHANNEL_H
  2. #define MEDIACHANNEL_H
  3. #include "thread.h"
  4. #include "CCarLifeLibWrapper.h"
  5. #include "mediadecode.h"
  6. using namespace CommonUtilH;
  7. using namespace CCarLifeLibH;
  8. class MediaDecode;
  9. class MediaChannel : public Thread
  10. {
  11. public:
  12. virtual ~MediaChannel();
  13. static MediaChannel *instance();
  14. MediaDecode *decoder()
  15. {
  16. return mDecoder;
  17. }
  18. void SetMusicInfoCallback(void (*callback)(unsigned char*, int ,void*), void *parameter);
  19. void SetMusicStartCallback(void (*callback)(bool,int,int,int, int, void*), void *parameter);
  20. protected:
  21. virtual void run(); //线程执行函数
  22. private:
  23. MediaChannel();
  24. //数据接收回调函数
  25. static void recvInit(S_AUDIO_INIT_PARAMETER *); //接收手机端发送给车机端的media初始化信息
  26. static void recvNormalData(u8 *data, u32 len); //接收车机端接收手机端发送的media数据
  27. static void recvPause(); //接收手机端通知车机端media暂停状态
  28. static void recvResume(); //接收手机端通知车机端media恢复播放状态
  29. private:
  30. static MediaChannel *mInstance;
  31. MediaDecode *mDecoder;
  32. static int mRate;
  33. static int mBits;
  34. static int mChannels;
  35. void (*m_music_info_callback)(unsigned char*,int,void*);
  36. void (*m_music_start_callback)(bool,int,int,int,int,void*);
  37. void *m_parameter;
  38. bool mInitPlayer;
  39. };
  40. #endif // MEDIACHANNEL_H