move __IsReady function into the critical section
[platform/core/api/audio-io.git] / include / CPulseAudioClient.h
index 01e33fb..c09e499 100644 (file)
 
 
 namespace tizen_media_audio {
-
-
     /**
-     * PULSE Thread
+     * PULSE ThreadMainloop Locker
      */
     class CPulseStreamSpec;
+
     class CPulseAudioClient {
     public:
         enum class EStreamDirection : unsigned int {
@@ -64,7 +63,7 @@ namespace tizen_media_audio {
         bool flush();
 
         void checkRunningState();
-        bool isInThread() noexcept;
+        bool isInThread() const;
 
         size_t getWritableSize();
         size_t getReadableSize();
@@ -116,6 +115,14 @@ namespace tizen_media_audio {
         static void __successDrainCbInThread(pa_stream* s, int success, void* user_data);
         static void __successVolumeCb(pa_context* c, int success, void* user_data);
 
+        class CPulseThreadLocker {
+        public:
+            explicit CPulseThreadLocker(pa_threaded_mainloop* mainloop);
+            virtual ~CPulseThreadLocker();
+
+        private:
+            const pa_threaded_mainloop* ml{};
+        };
     };