Change parameter name wfd to wfd_handle, add func_table 61/75261/3 accepted/tizen/common/20160706.141801 accepted/tizen/ivi/20160706.013741 accepted/tizen/mobile/20160706.013636 accepted/tizen/tv/20160706.013705 submit/tizen/20160705.084920
authorSeokHoon Lee <andy.shlee@samsung.com>
Fri, 17 Jun 2016 07:18:16 +0000 (16:18 +0900)
committerSeokHoon Lee <andy.shlee@samsung.com>
Mon, 4 Jul 2016 06:53:55 +0000 (15:53 +0900)
and delete unused function header.

Signed-off-by: SeokHoon Lee <andy.shlee@samsung.com>
Change-Id: Ief09c4a71e296345875ea828dc6838f98283487d

packaging/libmm-wfd.spec
src/include/mm_wfd_sink.h
src/include/mm_wfd_sink_priv.h
src/mm_wfd_sink.c

index 53643d0..dc53e09 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-wfd
 Summary:    Multimedia Framework Wifi-Display Library
-Version:    0.2.197
+Version:    0.2.198
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 806e1cc..9651e28 100644 (file)
@@ -59,6 +59,7 @@ typedef enum {
 
 typedef void(*MMWFDMessageCallback)(int error_type, MMWFDSinkStateType state_type, void *user_data);
 
+
 /**
  * This function creates a wi-fi display sink object. \n
  * The attributes of wi-fi display sink are created to get/set some values with application. \n
@@ -83,7 +84,7 @@ if (mm_wfd_sink_create(&g_wfd_sink_handle) != MM_ERROR_NONE)
        wfd_sink_error("failed to create wi-fi display sink\n");
 }
 
-mm_wfd_sink_set_message_callback(g_wfd_sink, msg_callback, (void*)g_wfd_sink);
+mm_wfd_sink_set_message_callback(g_wfd_sink_handle, msg_callback, (void*)g_wfd_sink_handle);
  * @endcode
  */
 int mm_wfd_sink_create(MMHandleType *wfd_sink);
@@ -102,19 +103,19 @@ int mm_wfd_sink_create(MMHandleType *wfd_sink);
  * @remark     None
  * @par Example
  * @code
-if (mm_wfd_sink_prepare(&g_wfd_sink) != MM_ERROR_NONE)
+if (mm_wfd_sink_prepare(&g_wfd_sink_handle) != MM_ERROR_NONE)
 {
        wfd_sink_error("failed to realize wi-fi display sink\n");
 }
  * @endcode
  */
-int mm_wfd_sink_prepare(MMHandleType wfd_sink);
+int mm_wfd_sink_prepare(MMHandleType wfd_sink_handle);
 
 /**
  * This function connect wi-fi display source using uri. \n
  * audio type(AC3 AAC, LPCM) is decided at this time. \n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
  * @param      uri                     [in]    URI of wi-fi displaysource to be connected
  *
  * @return     This function returns zero on success, or negative value with error code.
@@ -124,19 +125,19 @@ int mm_wfd_sink_prepare(MMHandleType wfd_sink);
  * @remark     None
  * @par Example
  * @code
-if (mm_wfd_sink_connect(g_wfd_sink, g_uri) != MM_ERROR_NONE)
+if (mm_wfd_sink_connect(g_wfd_sink_handle, g_uri) != MM_ERROR_NONE)
 {
        wfd_sink_error("failed to connect to wi-fi display source\n");
 }
  * @endcode
  */
-int mm_wfd_sink_connect(MMHandleType wfd_sink, const char *uri);
+int mm_wfd_sink_connect(MMHandleType wfd_sink_handle, const char *uri);
 
 /**
  * This function is to start playing. \n
  * Data from wi-fi display source will be received. \n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
  * @remark
@@ -147,19 +148,19 @@ int mm_wfd_sink_connect(MMHandleType wfd_sink, const char *uri);
  * @remark     None
  * @par Example
  * @code
-if (mm_wfd_sink_start(g_wfd_sink) != MM_ERROR_NONE)
+if (mm_wfd_sink_start(g_wfd_sink_handle) != MM_ERROR_NONE)
 {
        wfd_sink_error("failed to start wi-fi display sink\n");
 }
  * @endcode
  */
-int mm_wfd_sink_start(MMHandleType wfd_sink);
+int mm_wfd_sink_start(MMHandleType wfd_sink_handle);
 
 /**
  * This function is to pause playing. \n
  * The wi-fi display sink pause the current stream being received form wi-fi display source. \n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
  * @remark
@@ -170,19 +171,19 @@ int mm_wfd_sink_start(MMHandleType wfd_sink);
  * @remark     None
  * @par Example
  * @code
-if (mm_wfd_sink_pause(g_wfd_sink) != MM_ERROR_NONE)
+if (mm_wfd_sink_pause(g_wfd_sink_handle) != MM_ERROR_NONE)
 {
        wfd_sink_error("failed to pause wi-fi display sink\n");
 }
  * @endcode
  */
-int mm_wfd_sink_pause(MMHandleType wfd_sink);
+int mm_wfd_sink_pause(MMHandleType wfd_sink_handle);
 
 /**
  * This function is to resume playing. \n
  * Data from wi-fi display source will be received. \n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
  *
  * @return     This function returns zero  on success, or negative value with error code.
  * @remark
@@ -193,18 +194,18 @@ int mm_wfd_sink_pause(MMHandleType wfd_sink);
  * @remark     None
  * @par Example
  * @code
-if (mm_wfd_sink_start(g_wfd_sink) != MM_ERROR_NONE)
+if (mm_wfd_sink_start(g_wfd_sink_handle) != MM_ERROR_NONE)
 {
        wfd_sink_error("failed to resume wi-fi display sink\n");
 }
  * @endcode
  */
-int mm_wfd_sink_resume(MMHandleType wfd_sink);
+int mm_wfd_sink_resume(MMHandleType wfd_sink_handle);
 
 /**
  * This function is to stop playing wi-fi display. \n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
  *
@@ -214,18 +215,18 @@ int mm_wfd_sink_resume(MMHandleType wfd_sink);
  * @remark     None
  * @par Example
  * @code
-if (mm_wfd_sink_disconnect(g_wfd_sink) != MM_ERROR_NONE)
+if (mm_wfd_sink_disconnect(g_wfd_sink_handle) != MM_ERROR_NONE)
 {
        wfd_sink_error("failed to stop wi-fi display sink\n");
 }
  * @endcode
  */
-int mm_wfd_sink_disconnect(MMHandleType wfd_sink);
+int mm_wfd_sink_disconnect(MMHandleType wfd_sink_handle);
 
 /**
  * This function trys to destroy gstreamer pipeline. \n
  *
- * @param      wfd_sink                [out]   Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [out]   Handle of wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code. \n
  *                     Please refer 'mm_error.h' to know it in detail.
@@ -236,19 +237,19 @@ int mm_wfd_sink_disconnect(MMHandleType wfd_sink);
  * @remark     None
  * @par Example
  * @code
-if (mm_wfd_sink_unprepare(&g_wfd_sink) != MM_ERROR_NONE)
+if (mm_wfd_sink_unprepare(&g_wfd_sink_handle) != MM_ERROR_NONE)
 {
        wfd_sink_error("failed to unprepare wi-fi display sink\n");
 }
  * @endcode
  */
-int mm_wfd_sink_unprepare(MMHandleType wfd_sink);
+int mm_wfd_sink_unprepare(MMHandleType wfd_sink_handle);
 
 /**
  * This function releases wi-fi display sink object and all resources which were created by mm_wfd_sink_create(). \n
  * And, wi-fi display sink handle will also be destroyed. \n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
  * @pre                wi-fi display state may be MM_WFD_SINK_STATE_NULL. \n
@@ -260,19 +261,19 @@ int mm_wfd_sink_unprepare(MMHandleType wfd_sink);
  *
  * @par Example
  * @code
-if (mm_wfd_sink_destroy(g_wfd_sink) != MM_ERROR_NONE)
+if (mm_wfd_sink_destroy(g_wfd_sink_handle) != MM_ERROR_NONE)
 {
        wfd_sink_error("failed to destroy wi-fi display sink\n");
 }
  * @endcode
  */
-int mm_wfd_sink_destroy(MMHandleType wfd_sink);
+int mm_wfd_sink_destroy(MMHandleType wfd_sink_handle);
 
 /**
  * This function sets callback function for receiving messages from wi-fi display sink. \n
  * So, player can notify warning, error and normal cases to application. \n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
  * @param      callback        [in]    Message callback function.
  * @param      user_param      [in]    User parameter which is passed to callback function.
  *
@@ -316,169 +317,150 @@ int msg_callback(int error_type, MMWFDSinkStateType state_type, void *user_data)
        return TRUE;
 }
 
-mm_wfd_sink_set_message_callback(g_wfd_sink, msg_callback, (void*)g_wfd_sink);
+mm_wfd_sink_set_message_callback(g_wfd_sink_handle, msg_callback, (void*)g_wfd_sink_handle);
  * @endcode
  */
-int mm_wfd_sink_set_message_callback(MMHandleType wfd_sink, MMWFDMessageCallback callback, void *user_param);
+int mm_wfd_sink_set_message_callback(MMHandleType wfd_sink_handle, MMWFDMessageCallback callback, void *user_param);
 
-int mm_wfd_sink_set_attribute(MMHandleType wfd_sink,  char **err_attr_name, const char *first_attribute_name, ...);
+int mm_wfd_sink_set_attribute(MMHandleType wfd_sink_handle,  char **err_attr_name, const char *first_attribute_name, ...);
 
 /**
- * This function get resources \n
+ * This function gets the width and height of video which is played by wi-fi display sink\n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      width           [in]    Width of video
+ * @param      height          [in]    Height of video
  *
  * @return     This function returns zero on success, or negative value with error code.
- * @pre                wi-fi display state should be MM_WFD_SINK_STATE_READY or MM_WFD_SINK_STATE_PREPARED. \n
- * @post               N/A
- * @remark     resources are released when mm_wfd_sink_destory is called
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED or MM_WFD_SINK_STATE_PLAYING. \n
  *
  * @par Example
  * @code
-if (mm_wfd_sink_get_resource(g_wfd_sink) != MM_ERROR_NONE)
+gint g_width=0, g_height=0;
+
+if (mm_wfd_sink_get_video_resolution(g_wfd_sink_handle, &g_width, &g_height) != MM_ERROR_NONE)
 {
-       wfd_sink_error("failed to get resources for wi-fi display sink\n");
+       wfd_sink_error("failed to get video resolution.\n");
 }
  * @endcode
  */
-int mm_wfd_sink_get_resource(MMHandleType wfd_sink);
+int mm_wfd_sink_get_video_resolution(MMHandleType wfd_sink_handle, gint *width, gint *height);
 
 /**
- * This function sets the display surface type for wi-fi display sink\n
+ * This function gets the width and height of video which is played by wi-fi display sink\n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
- * @param      display_surface_type            [in]    Display surface type
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      framerate               [in]    Framerate of video
  *
  * @return     This function returns zero on success, or negative value with error code.
- * @pre                wi-fi display state should be MM_WFD_SINK_STATE_NULL. \n
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED or MM_WFD_SINK_STATE_PLAYING. \n
  *
  * @par Example
  * @code
-if (mm_wfd_sink_set_display_surface_type(g_wfd_sink, g_display_surface_type) != MM_ERROR_NONE)
+gint g_framerate=0;
+
+if (mm_wfd_sink_get_video_framerate(g_wfd_sink_handle, &g_framerate) != MM_ERROR_NONE)
 {
-       wfd_sink_error("failed to set display surface type for wi-fi display sink\n");
+       wfd_sink_error("failed to get video framerate.\n");
 }
  * @endcode
  */
-int mm_wfd_sink_set_display_surface_type(MMHandleType wfd_sink, gint display_surface_type);
+int mm_wfd_sink_get_video_framerate(MMHandleType wfd_sink_handle,  gint *framerate);
 
 /**
- * This function sets the display overlay for wi-fi display sink\n
+ * This function sets the resolutions for wi-fi display sink\n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
- * @param      display_overlay         [in]    Display overlay
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      resolution              [in]    Resolutions for wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
  * @pre                wi-fi display state should be MM_WFD_SINK_STATE_NULL. \n
  *
- * @par Example
- * @code
-if (mm_wfd_sink_set_display_overlay(g_wfd_sink, g_display_overlay) != MM_ERROR_NONE)
-{
-       wfd_sink_error("failed to set display overlay for wi-fi display sink\n");
-}
- * @endcode
  */
-int mm_wfd_sink_set_display_overlay(MMHandleType wfd_sink, void *display_overlay);
+int mm_wfd_sink_set_resolution(MMHandleType wfd_sink_handle,  gint resolution);
 
 /**
- * This function sets the display method for wi-fi display sink\n
+ * This function gets the negotiated video codec for wi-fi display sink\n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
- * @param      display_method          [in]    Display method
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      codec           [in]    video codec for wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
- * @pre                wi-fi display state should be MM_WFD_SINK_STATE_NULL. \n
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED, MM_WFD_SINK_STATE_PLAYING or MM_WFD_SINK_STATE_PAUSED. \n
  *
- * @par Example
- * @code
-if (mm_wfd_sink_set_display_method(g_wfd_sink, g_display_method) != MM_ERROR_NONE)
-{
-       wfd_sink_error("failed to set display method for wi-fi display sink\n");
-}
- * @endcode
  */
-int mm_wfd_sink_set_display_method(MMHandleType wfd_sink, gint display_method);
+int mm_wfd_sink_get_negotiated_video_codec(MMHandleType wfd_sink_handle,  gint *codec);
 
 /**
- * This function sets the display visible for wi-fi display sink\n
+ * This function gets the negotiated video resolution for wi-fi display sink\n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
- * @param      display_visible         [in]    Display visible
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      width           [in]    video width for wi-fi display sink
+ * @param      height          [in]    video height for wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
- * @pre                wi-fi display state should be MM_WFD_SINK_STATE_NULL. \n
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED, MM_WFD_SINK_STATE_PLAYING or MM_WFD_SINK_STATE_PAUSED. \n
  *
- * @par Example
- * @code
-if (mm_wfd_sink_set_display_visible(g_wfd_sink, g_display_visible) != MM_ERROR_NONE)
-{
-       wfd_sink_error("failed to set display visible for wi-fi display sink\n");
-}
- * @endcode
  */
-int mm_wfd_sink_set_display_visible(MMHandleType wfd_sink, gint display_visible);
+int mm_wfd_sink_get_negotiated_video_resolution(MMHandleType wfd_sink_handle,  gint *width, gint *height);
 
 /**
- * This function gets the width and height of video which is played by wi-fi display sink\n
+ * This function gets the negotiated video framerate for wi-fi display sink\n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
- * @param      width           [in]    Width of video
- * @param      height          [in]    Height of video
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      framerate               [in]    video framerate for wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
- * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED or MM_WFD_SINK_STATE_PLAYING. \n
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED, MM_WFD_SINK_STATE_PLAYING or MM_WFD_SINK_STATE_PAUSED. \n
  *
- * @par Example
- * @code
-gint g_width=0, g_height=0;
+ */
+int mm_wfd_sink_get_negotiated_video_frame_rate(MMHandleType wfd_sink_handle,  gint *frame_rate);
 
-if (mm_wfd_sink_get_video_resolution(g_wfd_sink, &g_width, &g_height) != MM_ERROR_NONE)
-{
-       wfd_sink_error("failed to get video resolution.\n");
-}
- * @endcode
+/**
+ * This function gets the negotiated audio codec for wi-fi display sink\n
+ *
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      codec           [in]    audio codec for wi-fi display sink
+ *
+ * @return     This function returns zero on success, or negative value with error code.
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED, MM_WFD_SINK_STATE_PLAYING or MM_WFD_SINK_STATE_PAUSED. \n
+ *
  */
-int mm_wfd_sink_get_video_resolution(MMHandleType wfd_sink, gint *width, gint *height);
+int mm_wfd_sink_get_negotiated_audio_codec(MMHandleType wfd_sink_handle,  gint *codec);
 
 /**
- * This function gets the width and height of video which is played by wi-fi display sink\n
+ * This function gets the negotiated audio channel for wi-fi display sink\n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
- * @param      framerate               [in]    Framerate of video
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      channel         [in]    audio channel for wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
- * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED or MM_WFD_SINK_STATE_PLAYING. \n
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED, MM_WFD_SINK_STATE_PLAYING or MM_WFD_SINK_STATE_PAUSED. \n
  *
- * @par Example
- * @code
-gint g_framerate=0;
+ */
+int mm_wfd_sink_get_negotiated_audio_channel(MMHandleType wfd_sink_handle,  gint *channel);
 
-if (mm_wfd_sink_get_video_framerate(g_wfd_sink, &g_framerate) != MM_ERROR_NONE)
-{
-       wfd_sink_error("failed to get video framerate.\n");
-}
- * @endcode
+/**
+ * This function gets the negotiated audio sample rate for wi-fi display sink\n
+ *
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      sample_rate             [in]    audio sample rate for wi-fi display sink
+ *
+ * @return     This function returns zero on success, or negative value with error code.
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED, MM_WFD_SINK_STATE_PLAYING or MM_WFD_SINK_STATE_PAUSED. \n
+ *
  */
-int mm_wfd_sink_get_video_framerate(MMHandleType wfd_sink,  gint *framerate);
+int mm_wfd_sink_get_negotiated_audio_sample_rate(MMHandleType wfd_sink_handle,  gint *sample_rate);
 
 /**
- * This function sets the resolutions for wi-fi display sink\n
+ * This function gets the negotiated audio bitwidth for wi-fi display sink\n
  *
- * @param      wfd_sink                [in]    Handle of wi-fi display sink
- * @param      resolution              [in]    Resolutions for wi-fi display sink
+ * @param      wfd_sink_handle         [in]    Handle of wi-fi display sink
+ * @param      bitwidth                [in]    audio bitwidth for wi-fi display sink
  *
  * @return     This function returns zero on success, or negative value with error code.
- * @pre                wi-fi display state should be MM_WFD_SINK_STATE_NULL. \n
+ * @pre                wi-fi display state should be MM_WFD_SINK_STATE_CONNECTED, MM_WFD_SINK_STATE_PLAYING or MM_WFD_SINK_STATE_PAUSED. \n
  *
  */
-int mm_wfd_sink_set_resolution(MMHandleType wfd_sink,  gint resolution);
-
-int mm_wfd_sink_get_negotiated_video_codec(MMHandleType wfd_sink,  gint *codec);
-int mm_wfd_sink_get_negotiated_video_resolution(MMHandleType wfd_sink,  gint *width, gint *height);
-int mm_wfd_sink_get_negotiated_video_frame_rate(MMHandleType wfd_sink,  gint *frame_rate);
-int mm_wfd_sink_get_negotiated_audio_codec(MMHandleType wfd_sink,  gint *codec);
-int mm_wfd_sink_get_negotiated_audio_channel(MMHandleType wfd_sink,  gint *channel);
-int mm_wfd_sink_get_negotiated_audio_sample_rate(MMHandleType wfd_sink,  gint *sample_rate);
-int mm_wfd_sink_get_negotiated_audio_bitwidth(MMHandleType wfd_sink,  gint *bitwidth);
+int mm_wfd_sink_get_negotiated_audio_bitwidth(MMHandleType wfd_sink_handle,  gint *bitwidth);
 #endif
index dd10633..8af4262 100644 (file)
@@ -172,6 +172,17 @@ typedef struct {
        MMWFDSinkStateType pending_state; /* wfd  state which is going to now */
 } MMWFDSinkState;
 
+/* priv func */
+typedef struct {
+       int(*prepare)(MMHandleType wfd_sink);
+       int(*connect)(MMHandleType wfd_sink, const char *uri);
+       int(*start)(MMHandleType wfd_sink);
+       int(*pause)(MMHandleType wfd_sink);
+       int(*resume)(MMHandleType wfd_sink);
+       int(*disconnect)(MMHandleType wfd_sink);
+       int(*unprepare)(MMHandleType wfd_sink);
+} MMWFDSinkPrivateFunc;
+
 #define MMWFDSINK_GET_ATTRS(x_wfd) ((x_wfd)? ((mm_wfd_sink_t*)x_wfd)->attrs : (MMHandleType)NULL)
 
 typedef struct {
@@ -221,6 +232,8 @@ typedef struct {
        GCond manager_thread_cond;
        GList *manager_thread_cmd;
        gboolean manager_thread_exit;
+
+       MMWFDSinkPrivateFunc *func_table;
 } mm_wfd_sink_t;
 
 
@@ -234,7 +247,6 @@ int _mm_wfd_sink_start(mm_wfd_sink_t *wfd_sink);
 int _mm_wfd_sink_pause(mm_wfd_sink_t *wfd_sink);
 int _mm_wfd_sink_resume(mm_wfd_sink_t *wfd_sink);
 int _mm_wfd_set_message_callback(mm_wfd_sink_t *wfd_sink, MMWFDMessageCallback callback, void *user_data);
-int _mm_wfd_sink_get_resource(mm_wfd_sink_t *wfd_sink);
 int _mm_wfd_sink_set_resolution(mm_wfd_sink_t *wfd_sink, MMWFDSinkResolution resolution);
 
 int __mm_wfd_sink_link_audio_decodebin(mm_wfd_sink_t *wfd_sink);
index 6b10442..b1f1a2f 100644 (file)
@@ -54,132 +54,172 @@ int mm_wfd_sink_create(MMHandleType *wfd_sink)
 
 }
 
-int mm_wfd_sink_prepare(MMHandleType wfd_sink)
+int mm_wfd_sink_prepare(MMHandleType wfd_sink_handle)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
 
-       MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_prepare((mm_wfd_sink_t *)wfd_sink);
-       MMWFDSINK_CMD_UNLOCK(wfd_sink);
+
+       if (wfd_sink->func_table == NULL || wfd_sink->func_table->prepare == NULL) {
+               MMWFDSINK_CMD_LOCK(wfd_sink);
+               result = _mm_wfd_sink_prepare(wfd_sink);
+               MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       } else {
+               result = wfd_sink->func_table->prepare(wfd_sink_handle);
+       }
 
        return result;
 }
 
-int mm_wfd_sink_connect(MMHandleType wfd_sink, const char *uri)
+int mm_wfd_sink_connect(MMHandleType wfd_sink_handle, const char *uri)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(uri, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_connect((mm_wfd_sink_t *)wfd_sink, uri);
-       MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       if (wfd_sink->func_table == NULL || wfd_sink->func_table->connect == NULL) {
+               MMWFDSINK_CMD_LOCK(wfd_sink);
+               result = _mm_wfd_sink_connect(wfd_sink, uri);
+               MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       } else {
+               result = wfd_sink->func_table->connect(wfd_sink_handle, uri);
+       }
 
        return result;
 }
 
-int mm_wfd_sink_start(MMHandleType wfd_sink)
+int mm_wfd_sink_start(MMHandleType wfd_sink_handle)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
 
-       MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_start((mm_wfd_sink_t *)wfd_sink);
-       MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       if (wfd_sink->func_table == NULL || wfd_sink->func_table->start == NULL) {
+               MMWFDSINK_CMD_LOCK(wfd_sink);
+               result = _mm_wfd_sink_start(wfd_sink);
+               MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       } else {
+               result = wfd_sink->func_table->start(wfd_sink_handle);
+       }
 
        return result;
 }
 
-int mm_wfd_sink_pause(MMHandleType wfd_sink)
+int mm_wfd_sink_pause(MMHandleType wfd_sink_handle)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
 
-       MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_pause((mm_wfd_sink_t *)wfd_sink);
-       MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       if (wfd_sink->func_table == NULL || wfd_sink->func_table->pause == NULL) {
+               MMWFDSINK_CMD_LOCK(wfd_sink);
+               result = _mm_wfd_sink_pause(wfd_sink);
+               MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       } else {
+               result = wfd_sink->func_table->pause(wfd_sink_handle);
+       }
 
        return result;
 }
 
-int mm_wfd_sink_resume(MMHandleType wfd_sink)
+int mm_wfd_sink_resume(MMHandleType wfd_sink_handle)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
 
-       MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_resume((mm_wfd_sink_t *)wfd_sink);
-       MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       if (wfd_sink->func_table == NULL || wfd_sink->func_table->resume == NULL) {
+               MMWFDSINK_CMD_LOCK(wfd_sink);
+               result = _mm_wfd_sink_resume(wfd_sink);
+               MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       } else {
+               result = wfd_sink->func_table->resume(wfd_sink_handle);
+       }
 
        return result;
 }
 
-int mm_wfd_sink_disconnect(MMHandleType wfd_sink)
+int mm_wfd_sink_disconnect(MMHandleType wfd_sink_handle)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
 
-       MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_disconnect((mm_wfd_sink_t *)wfd_sink);
-       MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       if (wfd_sink->func_table == NULL || wfd_sink->func_table->disconnect == NULL) {
+               MMWFDSINK_CMD_LOCK(wfd_sink);
+               result = _mm_wfd_sink_disconnect(wfd_sink);
+               MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       } else {
+               result = wfd_sink->func_table->disconnect(wfd_sink_handle);
+       }
 
        return result;
 }
 
-int mm_wfd_sink_unprepare(MMHandleType wfd_sink)
+int mm_wfd_sink_unprepare(MMHandleType wfd_sink_handle)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
 
-       MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_unprepare((mm_wfd_sink_t *)wfd_sink);
-       MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       if (wfd_sink->func_table == NULL || wfd_sink->func_table->unprepare == NULL) {
+               MMWFDSINK_CMD_LOCK(wfd_sink);
+               result = _mm_wfd_sink_unprepare(wfd_sink);
+               MMWFDSINK_CMD_UNLOCK(wfd_sink);
+       } else {
+               result = wfd_sink->func_table->unprepare(wfd_sink_handle);
+       }
 
        return result;
 }
 
-int mm_wfd_sink_destroy(MMHandleType wfd_sink)
+int mm_wfd_sink_destroy(MMHandleType wfd_sink_handle)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
+       mm_wfd_sink_t *handle = NULL;
        int result = MM_ERROR_NONE;
-       mm_wfd_sink_t *sink_handle = NULL;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
 
        MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_destroy((mm_wfd_sink_t *)wfd_sink);
+       result = _mm_wfd_sink_destroy(wfd_sink);
        MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
-       g_mutex_clear(&(((mm_wfd_sink_t *)wfd_sink)->cmd_lock));
+       g_mutex_clear(&(wfd_sink->cmd_lock));
 
-       sink_handle = (mm_wfd_sink_t *)wfd_sink;
-       MMWFDSINK_FREEIF(sink_handle);
+       /* TODO */
+       handle = (mm_wfd_sink_t *)wfd_sink_handle;
+       MMWFDSINK_FREEIF(handle);
 
        return result;
 }
 
-int mm_wfd_sink_set_message_callback(MMHandleType wfd_sink, MMWFDMessageCallback callback, void *user_data)
+int mm_wfd_sink_set_message_callback(MMHandleType wfd_sink_handle, MMWFDMessageCallback callback, void *user_data)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
 
        MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_set_message_callback((mm_wfd_sink_t *)wfd_sink, callback, user_data);
+       result = _mm_wfd_set_message_callback(wfd_sink, callback, user_data);
        MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
        return result;
 }
 
-int mm_wfd_sink_set_attribute(MMHandleType wfd_sink,  char **err_attr_name, const char *first_attribute_name, ...)
+int mm_wfd_sink_set_attribute(MMHandleType wfd_sink_handle,  char **err_attr_name, const char *first_attribute_name, ...)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
        va_list var_args;
 
@@ -195,57 +235,59 @@ int mm_wfd_sink_set_attribute(MMHandleType wfd_sink,  char **err_attr_name, cons
        return result;
 }
 
-int mm_wfd_sink_get_video_resolution(MMHandleType wfd_sink, gint *width, gint *height)
+int mm_wfd_sink_get_video_resolution(MMHandleType wfd_sink_handle, gint *width, gint *height)
 {
-       mm_wfd_sink_t *wfd = (mm_wfd_sink_t *)wfd_sink;
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
 
-       wfd_sink_return_val_if_fail(wfd, MM_ERROR_WFD_NOT_INITIALIZED);
+       wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(width, MM_ERROR_WFD_INVALID_ARGUMENT);
        wfd_sink_return_val_if_fail(height, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       *width = wfd->stream_info.video_stream_info.width;
-       *height = wfd->stream_info.video_stream_info.height;
+       *width = wfd_sink->stream_info.video_stream_info.width;
+       *height = wfd_sink->stream_info.video_stream_info.height;
 
        return MM_ERROR_NONE;
 }
 
-int mm_wfd_sink_get_video_framerate(MMHandleType wfd_sink, gint *frame_rate)
+int mm_wfd_sink_get_video_framerate(MMHandleType wfd_sink_handle, gint *frame_rate)
 {
-       mm_wfd_sink_t *wfd = (mm_wfd_sink_t *)wfd_sink;
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
 
-       wfd_sink_return_val_if_fail(wfd, MM_ERROR_WFD_NOT_INITIALIZED);
+       wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(frame_rate, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       *frame_rate = wfd->stream_info.video_stream_info.frame_rate;
+       *frame_rate = wfd_sink->stream_info.video_stream_info.frame_rate;
 
        return MM_ERROR_NONE;
 }
 
-int mm_wfd_sink_set_resolution(MMHandleType wfd_sink,  gint resolution)
+int mm_wfd_sink_set_resolution(MMHandleType wfd_sink_handle,  gint resolution)
 {
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        int result = MM_ERROR_NONE;
 
        wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
+
        MMWFDSINK_CMD_LOCK(wfd_sink);
-       result = _mm_wfd_sink_set_resolution((mm_wfd_sink_t *)wfd_sink, resolution);
+       result = _mm_wfd_sink_set_resolution(wfd_sink, resolution);
        MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
        return result;
 }
 
-int mm_wfd_sink_get_negotiated_video_codec(MMHandleType wfd_sink,  gint *codec)
+int mm_wfd_sink_get_negotiated_video_codec(MMHandleType wfd_sink_handle,  gint *codec)
 {
-       int result = MM_ERROR_NONE;
-       mm_wfd_sink_t *wfd = (mm_wfd_sink_t *)wfd_sink;
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        MMWFDSinkStateType cur_state = MM_WFD_SINK_STATE_NONE;
+       int result = MM_ERROR_NONE;
 
-       wfd_sink_return_val_if_fail(wfd, MM_ERROR_WFD_NOT_INITIALIZED);
+       wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(codec, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       MMWFDSINK_CMD_LOCK(wfd);
+       MMWFDSINK_CMD_LOCK(wfd_sink);
 
-       MMWFDSINK_PRINT_STATE(wfd);
-       cur_state = MMWFDSINK_CURRENT_STATE(wfd);
+       MMWFDSINK_PRINT_STATE(wfd_sink);
+       cur_state = MMWFDSINK_CURRENT_STATE(wfd_sink);
        if (cur_state != MM_WFD_SINK_STATE_CONNECTED &&
                cur_state != MM_WFD_SINK_STATE_PLAYING &&
                cur_state != MM_WFD_SINK_STATE_PAUSED) {
@@ -253,10 +295,10 @@ int mm_wfd_sink_get_negotiated_video_codec(MMHandleType wfd_sink,  gint *codec)
                wfd_sink_error("This function must be called after MM_WFD_SINK_STATE_CONNECTED");
                result = MM_ERROR_WFD_INVALID_STATE;
        } else {
-               *codec = wfd->stream_info.video_stream_info.codec;
+               *codec = wfd_sink->stream_info.video_stream_info.codec;
        }
 
-       MMWFDSINK_CMD_UNLOCK(wfd);
+       MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
        wfd_sink_debug_fleave();
 
@@ -295,19 +337,19 @@ int mm_wfd_sink_get_negotiated_video_resolution(MMHandleType wfd_sink,  gint *wi
        return result;
 }
 
-int mm_wfd_sink_get_negotiated_video_frame_rate(MMHandleType wfd_sink,  gint *frame_rate)
+int mm_wfd_sink_get_negotiated_video_frame_rate(MMHandleType wfd_sink_handle,  gint *frame_rate)
 {
-       int result = MM_ERROR_NONE;
-       mm_wfd_sink_t *wfd = (mm_wfd_sink_t *)wfd_sink;
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        MMWFDSinkStateType cur_state = MM_WFD_SINK_STATE_NONE;
+       int result = MM_ERROR_NONE;
 
-       wfd_sink_return_val_if_fail(wfd, MM_ERROR_WFD_NOT_INITIALIZED);
+       wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(frame_rate, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       MMWFDSINK_CMD_LOCK(wfd);
+       MMWFDSINK_CMD_LOCK(wfd_sink);
 
-       MMWFDSINK_PRINT_STATE(wfd);
-       cur_state = MMWFDSINK_CURRENT_STATE(wfd);
+       MMWFDSINK_PRINT_STATE(wfd_sink);
+       cur_state = MMWFDSINK_CURRENT_STATE(wfd_sink);
        if (cur_state != MM_WFD_SINK_STATE_CONNECTED &&
                cur_state != MM_WFD_SINK_STATE_PLAYING &&
                cur_state != MM_WFD_SINK_STATE_PAUSED) {
@@ -315,29 +357,29 @@ int mm_wfd_sink_get_negotiated_video_frame_rate(MMHandleType wfd_sink,  gint *fr
                wfd_sink_error("This function must be called after MM_WFD_SINK_STATE_CONNECTED");
                result = MM_ERROR_WFD_INVALID_STATE;
        } else {
-               *frame_rate = wfd->stream_info.video_stream_info.frame_rate;
+               *frame_rate = wfd_sink->stream_info.video_stream_info.frame_rate;
        }
 
-       MMWFDSINK_CMD_UNLOCK(wfd);
+       MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
        wfd_sink_debug_fleave();
 
        return result;
 }
 
-int mm_wfd_sink_get_negotiated_audio_codec(MMHandleType wfd_sink,  gint *codec)
+int mm_wfd_sink_get_negotiated_audio_codec(MMHandleType wfd_sink_handle,  gint *codec)
 {
-       int result = MM_ERROR_NONE;
-       mm_wfd_sink_t *wfd = (mm_wfd_sink_t *)wfd_sink;
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        MMWFDSinkStateType cur_state = MM_WFD_SINK_STATE_NONE;
+       int result = MM_ERROR_NONE;
 
-       wfd_sink_return_val_if_fail(wfd, MM_ERROR_WFD_NOT_INITIALIZED);
+       wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(codec, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       MMWFDSINK_CMD_LOCK(wfd);
+       MMWFDSINK_CMD_LOCK(wfd_sink);
 
-       MMWFDSINK_PRINT_STATE(wfd);
-       cur_state = MMWFDSINK_CURRENT_STATE(wfd);
+       MMWFDSINK_PRINT_STATE(wfd_sink);
+       cur_state = MMWFDSINK_CURRENT_STATE(wfd_sink);
        if (cur_state != MM_WFD_SINK_STATE_CONNECTED &&
                cur_state != MM_WFD_SINK_STATE_PLAYING &&
                cur_state != MM_WFD_SINK_STATE_PAUSED) {
@@ -345,29 +387,29 @@ int mm_wfd_sink_get_negotiated_audio_codec(MMHandleType wfd_sink,  gint *codec)
                wfd_sink_error("This function must be called after MM_WFD_SINK_STATE_CONNECTED");
                result = MM_ERROR_WFD_INVALID_STATE;
        } else {
-               *codec = wfd->stream_info.audio_stream_info.codec;
+               *codec = wfd_sink->stream_info.audio_stream_info.codec;
        }
 
-       MMWFDSINK_CMD_UNLOCK(wfd);
+       MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
        wfd_sink_debug_fleave();
 
        return result;
 }
 
-int mm_wfd_sink_get_negotiated_audio_channel(MMHandleType wfd_sink,  gint *channel)
+int mm_wfd_sink_get_negotiated_audio_channel(MMHandleType wfd_sink_handle,  gint *channel)
 {
-       int result = MM_ERROR_NONE;
-       mm_wfd_sink_t *wfd = (mm_wfd_sink_t *)wfd_sink;
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        MMWFDSinkStateType cur_state = MM_WFD_SINK_STATE_NONE;
+       int result = MM_ERROR_NONE;
 
-       wfd_sink_return_val_if_fail(wfd, MM_ERROR_WFD_NOT_INITIALIZED);
+       wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(channel, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       MMWFDSINK_CMD_LOCK(wfd);
+       MMWFDSINK_CMD_LOCK(wfd_sink);
 
-       MMWFDSINK_PRINT_STATE(wfd);
-       cur_state = MMWFDSINK_CURRENT_STATE(wfd);
+       MMWFDSINK_PRINT_STATE(wfd_sink);
+       cur_state = MMWFDSINK_CURRENT_STATE(wfd_sink);
        if (cur_state != MM_WFD_SINK_STATE_CONNECTED &&
                cur_state != MM_WFD_SINK_STATE_PLAYING &&
                cur_state != MM_WFD_SINK_STATE_PAUSED) {
@@ -375,31 +417,31 @@ int mm_wfd_sink_get_negotiated_audio_channel(MMHandleType wfd_sink,  gint *chann
                wfd_sink_error("This function must be called after MM_WFD_SINK_STATE_CONNECTED");
                result = MM_ERROR_WFD_INVALID_STATE;
        } else {
-               *channel = wfd->stream_info.audio_stream_info.channels;
+               *channel = wfd_sink->stream_info.audio_stream_info.channels;
        }
 
-       MMWFDSINK_CMD_UNLOCK(wfd);
+       MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
        wfd_sink_debug_fleave();
 
        return result;
 }
 
-int mm_wfd_sink_get_negotiated_audio_sample_rate(MMHandleType wfd_sink,  gint *sample_rate)
+int mm_wfd_sink_get_negotiated_audio_sample_rate(MMHandleType wfd_sink_handle,  gint *sample_rate)
 {
-       int result = MM_ERROR_NONE;
-       mm_wfd_sink_t *wfd = (mm_wfd_sink_t *)wfd_sink;
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        MMWFDSinkStateType cur_state = MM_WFD_SINK_STATE_NONE;
+       int result = MM_ERROR_NONE;
 
        wfd_sink_debug_fenter();
 
-       wfd_sink_return_val_if_fail(wfd, MM_ERROR_WFD_NOT_INITIALIZED);
+       wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(sample_rate, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       MMWFDSINK_CMD_LOCK(wfd);
+       MMWFDSINK_CMD_LOCK(wfd_sink);
 
-       MMWFDSINK_PRINT_STATE(wfd);
-       cur_state = MMWFDSINK_CURRENT_STATE(wfd);
+       MMWFDSINK_PRINT_STATE(wfd_sink);
+       cur_state = MMWFDSINK_CURRENT_STATE(wfd_sink);
        if (cur_state != MM_WFD_SINK_STATE_CONNECTED &&
                cur_state != MM_WFD_SINK_STATE_PLAYING &&
                cur_state != MM_WFD_SINK_STATE_PAUSED) {
@@ -407,31 +449,31 @@ int mm_wfd_sink_get_negotiated_audio_sample_rate(MMHandleType wfd_sink,  gint *s
                wfd_sink_error("This function must be called after MM_WFD_SINK_STATE_CONNECTED");
                result = MM_ERROR_WFD_INVALID_STATE;
        } else {
-               *sample_rate = wfd->stream_info.audio_stream_info.sample_rate;
+               *sample_rate = wfd_sink->stream_info.audio_stream_info.sample_rate;
        }
 
-       MMWFDSINK_CMD_UNLOCK(wfd);
+       MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
        wfd_sink_debug_fleave();
 
        return result;
 }
 
-int mm_wfd_sink_get_negotiated_audio_bitwidth(MMHandleType wfd_sink,  gint *bitwidth)
+int mm_wfd_sink_get_negotiated_audio_bitwidth(MMHandleType wfd_sink_handle,  gint *bitwidth)
 {
-       int result = MM_ERROR_NONE;
-       mm_wfd_sink_t *wfd = (mm_wfd_sink_t *)wfd_sink;
+       mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
        MMWFDSinkStateType cur_state = MM_WFD_SINK_STATE_NONE;
+       int result = MM_ERROR_NONE;
 
        wfd_sink_debug_fenter();
 
-       wfd_sink_return_val_if_fail(wfd, MM_ERROR_WFD_NOT_INITIALIZED);
+       wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
        wfd_sink_return_val_if_fail(bitwidth, MM_ERROR_WFD_INVALID_ARGUMENT);
 
-       MMWFDSINK_CMD_LOCK(wfd);
+       MMWFDSINK_CMD_LOCK(wfd_sink);
 
-       MMWFDSINK_PRINT_STATE(wfd);
-       cur_state = MMWFDSINK_CURRENT_STATE(wfd);
+       MMWFDSINK_PRINT_STATE(wfd_sink);
+       cur_state = MMWFDSINK_CURRENT_STATE(wfd_sink);
        if (cur_state != MM_WFD_SINK_STATE_CONNECTED &&
                cur_state != MM_WFD_SINK_STATE_PLAYING &&
                cur_state != MM_WFD_SINK_STATE_PAUSED) {
@@ -439,10 +481,10 @@ int mm_wfd_sink_get_negotiated_audio_bitwidth(MMHandleType wfd_sink,  gint *bitw
                wfd_sink_error("This function must be called after MM_WFD_SINK_STATE_CONNECTED");
                result = MM_ERROR_WFD_INVALID_STATE;
        } else {
-               *bitwidth = wfd->stream_info.audio_stream_info.bitwidth;
+               *bitwidth = wfd_sink->stream_info.audio_stream_info.bitwidth;
        }
 
-       MMWFDSINK_CMD_UNLOCK(wfd);
+       MMWFDSINK_CMD_UNLOCK(wfd_sink);
 
        wfd_sink_debug_fleave();