Move drain method to subclass CAudioOutput
[platform/core/api/audio-io.git] / src / cpp / cpp_audio_io.cpp
index d4fe6f3..7161e53 100644 (file)
@@ -965,7 +965,11 @@ int cpp_audio_out_drain(audio_out_h output) {
         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());