Add writable-size wait timeout log / Terminate write operation with accumulated timeouts
[platform/core/api/audio-io.git] / include / CAudioIO.h
index 2d92b39..3a84a75 100644 (file)
 #ifndef __TIZEN_MEDIA_AUDIO_IO_CAUDIO_IO_H__
 #define __TIZEN_MEDIA_AUDIO_IO_CAUDIO_IO_H__
 
-#include <sound_manager.h>
-
 #ifdef __cplusplus
 
+#include <sound_manager.h>
+#include <mutex>
+#include <condition_variable>
 
 namespace tizen_media_audio {
 
@@ -75,28 +76,21 @@ namespace tizen_media_audio {
         explicit CAudioIO(CAudioInfo& audioInfo);
         virtual ~CAudioIO() = default;
 
-        /* Pure Virtual Methods */
-        virtual void initialize() = 0;
-        virtual void finalize() = 0;
-
-        virtual void prepare() = 0;
-        virtual void unprepare() = 0;
-
-        virtual void pause() = 0;
-        virtual void resume() = 0;
-
-        /* FIXME : drain needed to be moved to sub-class */
-        virtual void drain();
-        virtual void flush() = 0;
-
-        virtual int  getBufferSize() = 0;
-
         /* Implemented Handlers */
         virtual void onStream(CPulseAudioClient* pClient, size_t length);
         virtual void onStateChanged(CAudioInfo::EAudioIOState state, bool byPolicy);
         virtual void onStateChanged(CAudioInfo::EAudioIOState state);
 
         /* Methods */
+        virtual void initialize();
+        virtual void finalize();
+        virtual void prepare();
+        virtual void unprepare();
+        virtual void pause();
+        virtual void resume();
+        virtual void flush();
+        virtual int  getBufferSize() = 0;
+
         CAudioInfo& getAudioInfo();
 
         virtual void setStreamCallback(SStreamCallback callback);
@@ -115,11 +109,6 @@ namespace tizen_media_audio {
         virtual bool isInit();
         virtual bool IsReady();
 
-        void internalLock();
-        void internalUnlock();
-        void internalWait();
-        void internalSignal();
-
         CPulseAudioClient*    mpPulseAudioClient;
         CAudioInfo            mAudioInfo;
 
@@ -130,11 +119,11 @@ namespace tizen_media_audio {
         CAudioInfo::EAudioIOState mState;
         CAudioInfo::EAudioIOState mStatePrev;
         bool                  mByPolicy;
+        std::mutex            mMutex;
+        std::mutex            mCondMutex;
+        std::condition_variable mCond;
 
     private:
-        pthread_mutex_t       __mMutex;
-        pthread_mutex_t       __mCondMutex;
-        pthread_cond_t        __mCond;
         bool                  __mIsInit;
     };