fix improper virtual function keyword
[Version] 0.5.25
[Issue Type] Revise
Change-Id: I038e0450c8342dcf0155b12df1a98e2ec981a7c9
explicit CAudioIO(CAudioInfo& audioInfo);
virtual ~CAudioIO() = default;
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 */
/* 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);
CAudioInfo& getAudioInfo();
virtual void setStreamCallback(SStreamCallback callback);
void pause() override;
void resume() override;
void pause() override;
void resume() override;
void flush() override;
int getBufferSize() override;
void flush() override;
int getBufferSize() override;
Name: capi-media-audio-io
Summary: An Audio Input & Audio Output library in Tizen Native API
Name: capi-media-audio-io
Summary: An Audio Input & Audio Output library in Tizen Native API
Release: 0
Group: Multimedia/API
License: Apache-2.0
Release: 0
Group: Multimedia/API
License: Apache-2.0
-
-void CAudioIO::drain() {
- if (!__mIsInit || !IsReady())
- THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioIO"); //LCOV_EXCL_LINE
-
- try {
- if (mpPulseAudioClient->isInThread()) {
- mpPulseAudioClient->drain();
- } else {
- internalLock();
- mpPulseAudioClient->drain();
- internalUnlock();
- }
- } catch (const CAudioError& e) {
- if (!mpPulseAudioClient->isInThread())
- internalUnlock();
- throw;
- }
-}
-
void CAudioIO::flush() {
if (!__mIsInit || !IsReady())
THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioIO"); //LCOV_EXCL_LINE
void CAudioIO::flush() {
if (!__mIsInit || !IsReady())
THROW_ERROR_MSG(CAudioError::EError::ERROR_NOT_INITIALIZED, "Did not initialize or prepare CAudioIO"); //LCOV_EXCL_LINE
if (mStreamCallback.onStream)
THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION, "async type don't support drain");
if (mStreamCallback.onStream)
THROW_ERROR_MSG(CAudioError::EError::ERROR_INVALID_OPERATION, "async type don't support drain");
+ try {
+ if (mpPulseAudioClient->isInThread()) {
+ mpPulseAudioClient->drain();
+ } else {
+ internalLock();
+ mpPulseAudioClient->drain();
+ internalUnlock();
+ }
+ } catch (const CAudioError& e) {
+ if (!mpPulseAudioClient->isInThread())
+ internalUnlock();
+ throw;
+ }
}
void CAudioOutput::flush() {
}
void CAudioOutput::flush() {
assert(handle->audioIoHandle);
AUDIO_IO_LOGD("[%p]", handle);
assert(handle->audioIoHandle);
AUDIO_IO_LOGD("[%p]", handle);
- handle->audioIoHandle->drain();
+ auto output_handle = dynamic_cast<CAudioOutput*>(handle->audioIoHandle);
+ if (output_handle == nullptr)
+ return __convert_audio_io_error(CAudioError::EError::ERROR_INVALID_HANDLE);
+
+ output_handle->drain();
} catch (const CAudioError& e) {
AUDIO_IO_LOGE("%s", e.getErrorMsg());
return __convert_audio_io_error(e.getError());
} catch (const CAudioError& e) {
AUDIO_IO_LOGE("%s", e.getErrorMsg());
return __convert_audio_io_error(e.getError());