00001 #ifndef AUDIOPULSEHANDLER_H 00002 #define AUDIOPULSEHANDLER_H 00003 00004 #include <pulse/pulseaudio.h> 00005 00006 class QThread; 00007 00008 class PulseHandler 00009 { 00010 public: 00011 enum PulseAction 00012 { 00013 kPulseSuspend = 0, 00014 kPulseResume, 00015 kPulseCleanup, 00016 }; 00017 00018 static bool Suspend(enum PulseAction action); 00019 static PulseHandler *g_pulseHandler; 00020 static bool g_pulseHandlerActive; 00021 00022 ~PulseHandler(void); 00023 bool Valid(void); 00024 00025 pa_context_state m_ctx_state; 00026 pa_context *m_ctx; 00027 int m_pending_operations; 00028 00029 private: 00030 PulseHandler(void); 00031 bool Init(void); 00032 bool SuspendInternal(bool suspend); 00033 00034 pa_mainloop *m_loop; 00035 bool m_initialised; 00036 bool m_valid; 00037 QThread *m_thread; 00038 }; 00039 00040 #endif // AUDIOPULSEHANDLER_H
1.6.3