revise callback assignments 88/212188/2
authorSeungbae Shin <seungbae.shin@samsung.com>
Fri, 16 Aug 2019 05:38:25 +0000 (14:38 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Tue, 27 Aug 2019 12:11:19 +0000 (12:11 +0000)
Change-Id: I4fa2dfe77af2d0412f97a737633eb599a98b3b1e

include/CAudioIO.h
src/cpp/cpp_audio_io.cpp

index 078795d..2d92b39 100644 (file)
@@ -36,16 +36,38 @@ namespace tizen_media_audio {
             void* mUserData;
             void (*onStream)(size_t nbytes, void* user_data);
 
-            SStreamCallback() : mUserData(nullptr), onStream(nullptr)
-            { /* Empty Body */ }
+            SStreamCallback() : mUserData(nullptr), onStream(nullptr) {
+                /* Empty Body */
+            }
+
+            void set(void (*callback)(size_t, void*), void* userdata) {
+                onStream = callback;
+                mUserData = userdata;
+            }
+
+            void unset() {
+                onStream = nullptr;
+                mUserData = nullptr;
+            }
         };
 
         struct SStateChangedCallback {
             void* mUserData;
             void (*onStateChanged)(CAudioInfo::EAudioIOState state, CAudioInfo::EAudioIOState statePrev, bool byPolicy, void* user_data);
 
-            SStateChangedCallback() : mUserData(nullptr), onStateChanged(nullptr)
-            { /* Empty Body */ }
+            SStateChangedCallback() : mUserData(nullptr), onStateChanged(nullptr) {
+                /* Empty Body */
+            }
+
+            void set(void (*callback)(CAudioInfo::EAudioIOState, CAudioInfo::EAudioIOState, bool, void*), void* userdata) {
+                onStateChanged = callback;
+                mUserData = userdata;
+            }
+
+            void unset() {
+                onStateChanged = nullptr;
+                mUserData = nullptr;
+            }
         };
 
         /* Constructor & Destructor */
index d5370a6..c184b9c 100644 (file)
@@ -40,6 +40,16 @@ typedef struct audio_io_stream_cb_s {
 
     audio_io_stream_cb_s() : user_data(nullptr), onStream(nullptr)
     {/* Empty Body */}
+
+    void set(audio_in_stream_cb callback, void* userdata) {
+        onStream = callback;
+        user_data = userdata;
+    }
+
+    void unset() {
+        onStream = nullptr;
+        user_data = nullptr;
+    }
 }   audio_io_stream_cb_s;
 
 /**
@@ -54,6 +64,17 @@ typedef struct audio_io_state_changed_cb_s {
 
     audio_io_state_changed_cb_s() : user_data(nullptr), onStateChanged(nullptr)
     {/* Empty Body */}
+
+    void set(audio_in_state_changed_cb callback, void* userdata) {
+        onStateChanged = callback;
+        user_data = userdata;
+    }
+
+    void unset() {
+        onStateChanged = nullptr;
+        user_data = nullptr;
+    }
+
 }   audio_io_state_changed_cb_s;
 
 /**
@@ -725,12 +746,10 @@ int cpp_audio_in_set_stream_cb(audio_in_h input, audio_in_stream_cb callback, vo
         assert(handle->audioIoHandle);
         AUDIO_IO_LOGD("[%p], callback:[%p], user_data:[%p]", handle, callback, user_data);
 
-        handle->stream_callback.onStream = callback;
-        handle->stream_callback.user_data = user_data;
+        handle->stream_callback.set(callback, user_data);
 
         auto cb = handle->audioIoHandle->getStreamCallback();
-        cb.mUserData = static_cast<void*>(handle);
-        cb.onStream  = __stream_cb_internal;
+        cb.set(__stream_cb_internal, static_cast<void*>(handle));
 
         handle->audioIoHandle->setStreamCallback(cb);
     } catch (CAudioError& e) {
@@ -752,12 +771,10 @@ int cpp_audio_in_unset_stream_cb(audio_in_h input) {
         assert(handle->audioIoHandle);
         AUDIO_IO_LOGD("[%p]", handle);
 
-        handle->stream_callback.onStream = nullptr;
-        handle->stream_callback.user_data = nullptr;
+        handle->stream_callback.unset();
 
         auto cb = handle->audioIoHandle->getStreamCallback();
-        cb.mUserData = nullptr;
-        cb.onStream  = nullptr;
+        cb.unset();
 
         handle->audioIoHandle->setStreamCallback(cb);
     } catch (CAudioError& e) {
@@ -824,12 +841,10 @@ int cpp_audio_in_set_state_changed_cb(audio_in_h input, audio_in_state_changed_c
         assert(handle->audioIoHandle);
         AUDIO_IO_LOGD("[%p], callback:[%p], user_data:[%p]", handle, callback, user_data);
 
-        handle->state_changed_callback.onStateChanged = callback;
-        handle->state_changed_callback.user_data = user_data;
+        handle->state_changed_callback.set(callback, user_data);
 
         auto cb = handle->audioIoHandle->getStateChangedCallback();
-        cb.mUserData = static_cast<void*>(handle);
-        cb.onStateChanged = __state_changed_cb_internal;
+        cb.set(__state_changed_cb_internal, static_cast<void*>(handle));
 
         handle->audioIoHandle->setStateChangedCallback(cb);
     } catch (CAudioError& e) {
@@ -852,12 +867,10 @@ int cpp_audio_in_unset_state_changed_cb(audio_in_h input) {
         assert(handle->audioIoHandle);
         AUDIO_IO_LOGD("[%p]", handle);
 
-        handle->state_changed_callback.onStateChanged = nullptr;
-        handle->state_changed_callback.user_data = nullptr;
+        handle->state_changed_callback.unset();
 
         auto cb = handle->audioIoHandle->getStateChangedCallback();
-        cb.mUserData = nullptr;
-        cb.onStateChanged  = nullptr;
+        cb.unset();
 
         handle->audioIoHandle->setStateChangedCallback(cb);
     } catch (CAudioError& e) {
@@ -1219,12 +1232,10 @@ int cpp_audio_out_set_stream_cb(audio_out_h output, audio_out_stream_cb callback
         assert(handle->audioIoHandle);
         AUDIO_IO_LOGD("[%p], callback:[%p], user_data:[%p]", handle, callback, user_data);
 
-        handle->stream_callback.onStream = callback;
-        handle->stream_callback.user_data = user_data;
+        handle->stream_callback.set(callback, user_data);
 
         auto cb = handle->audioIoHandle->getStreamCallback();
-        cb.mUserData = static_cast<void*>(handle);
-        cb.onStream = __stream_cb_internal;
+        cb.set(__stream_cb_internal, static_cast<void*>(handle));
 
         handle->audioIoHandle->setStreamCallback(cb);
     } catch (CAudioError& e) {
@@ -1247,12 +1258,10 @@ int cpp_audio_out_unset_stream_cb(audio_out_h output) {
         assert(handle->audioIoHandle);
         AUDIO_IO_LOGD("[%p]", handle);
 
-        handle->stream_callback.onStream = nullptr;
-        handle->stream_callback.user_data = nullptr;
+        handle->stream_callback.unset();
 
         auto cb = handle->audioIoHandle->getStreamCallback();
-        cb.mUserData = nullptr;
-        cb.onStream = nullptr;
+        cb.unset();
 
         handle->audioIoHandle->setStreamCallback(cb);
     } catch (CAudioError& e) {
@@ -1275,12 +1284,10 @@ int cpp_audio_out_set_state_changed_cb(audio_out_h output, audio_in_state_change
         assert(handle->audioIoHandle);
         AUDIO_IO_LOGD("[%p], callback:[%p], user_data:[%p]", handle, callback, user_data);
 
-        handle->state_changed_callback.onStateChanged = callback;
-        handle->state_changed_callback.user_data = user_data;
+        handle->state_changed_callback.set(callback, user_data);
 
         auto cb = handle->audioIoHandle->getStateChangedCallback();
-        cb.mUserData = static_cast<void*>(handle);
-        cb.onStateChanged = __state_changed_cb_internal;
+        cb.set(__state_changed_cb_internal, static_cast<void*>(handle));
 
         handle->audioIoHandle->setStateChangedCallback(cb);
     } catch (CAudioError& e) {
@@ -1303,12 +1310,10 @@ int cpp_audio_out_unset_state_changed_cb(audio_out_h output) {
         assert(handle->audioIoHandle);
         AUDIO_IO_LOGD("[%p]", handle);
 
-        handle->state_changed_callback.onStateChanged = nullptr;
-        handle->state_changed_callback.user_data = nullptr;
+        handle->state_changed_callback.unset();
 
         auto cb = handle->audioIoHandle->getStateChangedCallback();
-        cb.mUserData = nullptr;
-        cb.onStateChanged = nullptr;
+        cb.unset();
 
         handle->audioIoHandle->setStateChangedCallback(cb);
     } catch (CAudioError& e) {