thread.h 969 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef THREAD_H
  2. #define THREAD_H
  3. #include <pthread.h>
  4. typedef enum
  5. {
  6. AudioStreamMedia = 0, // 音乐
  7. AudioStreamCall, // 电话
  8. AudioStreamRECOGNITION, // siri
  9. AudioStreamAlt, // 辅助音,包括导航音,系统提示音
  10. AudioStreamRec, // 录音
  11. AudioStreamAlert
  12. } AudioStreamType;
  13. typedef void (*CALLBACK)(void);
  14. class Thread
  15. {
  16. public:
  17. Thread();
  18. virtual ~Thread();
  19. bool start(void *object = NULL);
  20. virtual void exit();
  21. virtual void exit2();
  22. bool isRunning(){
  23. return (m_thread_id != 0);
  24. }
  25. bool setName(const char* name);
  26. protected:
  27. virtual void run() = 0;
  28. bool is_stop() const;
  29. private:
  30. static void *thread_func(void *param);
  31. protected:
  32. void (*m_callback)();
  33. void *m_Object;
  34. bool m__thread_stop;
  35. pthread_t m_thread_id;
  36. struct sched_param m_param;
  37. };
  38. #endif // THREAD_H