X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2FCAudioIO.h;h=078795d3d8d561c1c85d02afeb69d3717eb4be30;hb=ffd34c56a7091e7dd9bc5680ad718a4e1a263740;hp=7254d603ecedf9c87d53f025c68bd71af1ecf101;hpb=3640dbe797b8043586b5cf8f25c13c98c2045296;p=platform%2Fcore%2Fapi%2Faudio-io.git diff --git a/include/CAudioIO.h b/include/CAudioIO.h index 7254d60..078795d 100644 --- a/include/CAudioIO.h +++ b/include/CAudioIO.h @@ -17,6 +17,7 @@ #ifndef __TIZEN_MEDIA_AUDIO_IO_CAUDIO_IO_H__ #define __TIZEN_MEDIA_AUDIO_IO_CAUDIO_IO_H__ +#include #ifdef __cplusplus @@ -29,14 +30,13 @@ namespace tizen_media_audio { * You can't take this object directly. */ class IPulseStreamListener; - class IAudioSessionEventListener; - class CAudioIO : public IPulseStreamListener, public IAudioSessionEventListener { + class CAudioIO : public IPulseStreamListener { public: struct SStreamCallback { void* mUserData; void (*onStream)(size_t nbytes, void* user_data); - SStreamCallback() : mUserData(NULL), onStream(NULL) + SStreamCallback() : mUserData(nullptr), onStream(nullptr) { /* Empty Body */ } }; @@ -44,22 +44,14 @@ namespace tizen_media_audio { void* mUserData; void (*onStateChanged)(CAudioInfo::EAudioIOState state, CAudioInfo::EAudioIOState statePrev, bool byPolicy, void* user_data); - SStateChangedCallback() : mUserData(NULL), onStateChanged(NULL) - { /* Empty Body */ } - }; - - struct SInterruptCallback { - void* mUserData; - void (*onInterrupt)(IAudioSessionEventListener::EInterruptCode code, void* user_data); - - SInterruptCallback() : mUserData(NULL), onInterrupt(NULL) + SStateChangedCallback() : mUserData(nullptr), onStateChanged(nullptr) { /* Empty Body */ } }; /* Constructor & Destructor */ CAudioIO(); - CAudioIO(CAudioInfo& audioInfo); - virtual ~CAudioIO(); + explicit CAudioIO(CAudioInfo& audioInfo); + virtual ~CAudioIO() = default; /* Pure Virtual Methods */ virtual void initialize() = 0; @@ -71,7 +63,8 @@ namespace tizen_media_audio { virtual void pause() = 0; virtual void resume() = 0; - virtual void drain() = 0; + /* FIXME : drain needed to be moved to sub-class */ + virtual void drain(); virtual void flush() = 0; virtual int getBufferSize() = 0; @@ -80,9 +73,6 @@ namespace tizen_media_audio { virtual void onStream(CPulseAudioClient* pClient, size_t length); virtual void onStateChanged(CAudioInfo::EAudioIOState state, bool byPolicy); virtual void onStateChanged(CAudioInfo::EAudioIOState state); - virtual void onInterrupt(CAudioSessionHandler* pHandler, int id, mm_sound_focus_type_e focus_type, - mm_sound_focus_state_e state, const char *reason_for_change, const char *additional_info); - virtual void onSignal(CAudioSessionHandler* pHandler, mm_sound_signal_name_t signal, int value); /* Methods */ CAudioInfo& getAudioInfo(); @@ -93,17 +83,9 @@ namespace tizen_media_audio { virtual void setStateChangedCallback(SStateChangedCallback callback); SStateChangedCallback getStateChangedCallback(); - void setInterruptCallback(SInterruptCallback callback); - SInterruptCallback getInterruptCallback(); - - void ignoreSession(); - void setStreamInfo(sound_stream_info_h stream_info); - void setInternalStreamInfo(); /* this is for session backward compatibility and will be removed later */ - static int sendInterrupt(void* user_data); - - CAudioInfo::EAudioIOState getState(); + CAudioInfo::EAudioIOState getState() noexcept; protected: /* Protected Methods */ @@ -113,38 +95,25 @@ namespace tizen_media_audio { void internalLock(); void internalUnlock(); - void internalSessionLock(); - void internalSessionUnlock(); void internalWait(); void internalSignal(); - bool isForceIgnore(); - bool isSessionEnabled(); - - CAudioSessionHandler* mpAudioSessionHandler; CPulseAudioClient* mpPulseAudioClient; CAudioInfo mAudioInfo; SStreamCallback mStreamCallback; SStateChangedCallback mStateChangedCallback; - SInterruptCallback mInterruptCallback; - IAudioSessionEventListener::EInterruptCode mInterruptCode; CAudioInfo::EAudioDirection mDirection; CAudioInfo::EAudioIOState mState; CAudioInfo::EAudioIOState mStatePrev; bool mByPolicy; - bool mIsInterrupted; private: pthread_mutex_t __mMutex; - pthread_mutex_t __mSessionMutex; pthread_mutex_t __mCondMutex; pthread_cond_t __mCond; bool __mIsInit; - bool __mForceIgnore; - - void abandonInternalFocus(); /* this is for session backward compatibility and will be removed later */ };