Name: libmm-wfd
Summary: Multimedia Framework Wifi-Display Library
-Version: 0.4.5
+Version: 0.4.6
Release: 0
Group: System/Libraries
License: Apache-2.0
*/
int mm_wfd_sink_set_resolution(MMHandleType wfd_sink_handle, gint resolution);
+/**
+ * This function sets the source device type for wi-fi display sink\n
+ *
+ * @param wfd_sink_handle [in] Handle of wi-fi display sink
+ * @param device_type [in] Source device type 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
+ *
+ */
+int mm_wfd_sink_set_src_device_type(MMHandleType wfd_sink_handle, gint device_type);
+
/**
* This function gets the negotiated video codec for wi-fi display sink\n
*
MM_WFD_SINK_RESOLUTION_MAX = 128,
} MMWFDSinkResolution;
+/**
+ * * Enumerations of device type.
+ * */
+typedef enum {
+ MM_WFD_SINK_DEVICE_TYPE_GENERIC = 0, /**< Generic devices */
+ MM_WFD_SINK_DEVICE_TYPE_TV, /**< TV */
+ MM_WFD_SINK_DEVICE_TYPE_MOBILE, /**< Mobile(Phone, Tablet) */
+} MMWFDSinkDeviceType;
+
typedef enum {
MM_WFD_SINK_RESOURCE_TYPE_VIDEO_DECODER,
MM_WFD_SINK_RESOURCE_TYPE_VIDEO_OVERLAY,
MMWFDSinkResource res;
int display_surface_id;
+ MMWFDSinkDeviceType src_device_type;
} mm_wfd_sink_t;
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_set_resolution(mm_wfd_sink_t *wfd_sink, MMWFDSinkResolution resolution);
+int _mm_wfd_sink_set_src_device_type(mm_wfd_sink_t *wfd_sink, MMWFDSinkDeviceType device_type);
int __mm_wfd_sink_link_audio_decodebin(mm_wfd_sink_t *wfd_sink);
int __mm_wfd_sink_link_video_decodebin(mm_wfd_sink_t *wfd_sink);
return result;
}
+int mm_wfd_sink_set_src_device_type(MMHandleType wfd_sink_handle, gint device_type)
+{
+ 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_src_device_type(wfd_sink, device_type);
+ MMWFDSINK_CMD_UNLOCK(wfd_sink);
+
+ return result;
+}
+
int mm_wfd_sink_get_negotiated_video_codec(MMHandleType wfd_sink_handle, gint *codec)
{
mm_wfd_sink_t *wfd_sink = (mm_wfd_sink_t *)wfd_sink_handle;
return MM_ERROR_NONE;
}
+int _mm_wfd_sink_set_src_device_type(mm_wfd_sink_t *wfd_sink, MMWFDSinkDeviceType device_type)
+{
+ MMWFDSinkStateType cur_state = MM_WFD_SINK_STATE_NONE;
+
+ wfd_sink_debug_fenter();
+
+ wfd_sink_return_val_if_fail(wfd_sink, MM_ERROR_WFD_NOT_INITIALIZED);
+
+ MMWFDSINK_PRINT_STATE(wfd_sink);
+ cur_state = MMWFDSINK_CURRENT_STATE(wfd_sink);
+ if (cur_state != MM_WFD_SINK_STATE_NULL) {
+ wfd_sink_error("This function must be called when MM_WFD_SINK_STATE_NULL");
+ return MM_ERROR_WFD_INVALID_STATE;
+ }
+
+ wfd_sink->src_device_type = device_type;
+
+ wfd_sink_debug_fleave();
+
+ return MM_ERROR_NONE;
+}
+
int _mm_wfd_sink_set_display_overlay(mm_wfd_sink_t *wfd_sink, void *display_object, gint display_type)
{
int wl_surface_id = 0;