*/
#include "mm_wfd_sink_attrs.h"
+#include "mm_wfd_sink_dlog.h"
+#include "mm_wfd_sink_priv.h"
typedef struct {
char *name;
int valid_type;
int value_min;
int value_max;
+ mm_wfd_sink_commit_func_t attr_commit;
} MMWfdAttrsSpec;
-/*static gboolean __mmwfd_apply_attribute(MMHandleType handle, const char *attribute_name); */
+static void __mm_wfd_sink_print_attrs(const char *attr_name, const MMAttrsValue * value, const char *prefix)
+{
+ switch (value->type) {
+ case MM_ATTRS_TYPE_INT:
+ wfd_sink_debug("[ %s : %s : %d ]", prefix, attr_name, value->value.i_val);
+ break;
+ case MM_ATTRS_TYPE_DOUBLE:
+ wfd_sink_debug("[ %s : %s : %f ]", prefix, attr_name, value->value.d_val);
+ break;
+ case MM_ATTRS_TYPE_STRING:
+ wfd_sink_debug("[ %s : %s : %s ]", prefix, attr_name, value->value.s_val);
+ break;
+ case MM_ATTRS_TYPE_DATA:
+ wfd_sink_debug("[ %s : %s : %p ]", prefix, attr_name, value->value.p_val);
+ break;
+ default:
+ break;
+ }
+
+ return;
+}
+
+static bool _mmwfd_set_display_info(MMHandleType handle, int attr_idx, const MMAttrsValue *value);
+
+MMWfdAttrsSpec wfd_attrs[] = {
+ {
+ (char *)"server_ip",
+ MM_ATTRS_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ (void *)"127.0.0.1",
+ MM_ATTRS_VALID_TYPE_NONE,
+ 0,
+ 0,
+ NULL,
+ },
+ {
+ (char *)"server_port",
+ MM_ATTRS_TYPE_STRING,
+ MM_ATTRS_FLAG_RW,
+ (void *)"8554",
+ MM_ATTRS_VALID_TYPE_NONE,
+ 0,
+ 0,
+ NULL,
+ },
+ {
+ (char *)"max_client_count",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *)1,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 10,
+ NULL,
+ },
+ /* Initialized with invalid native type, if a valid value is set then only this atribute will be considered */
+ {
+ (char *)"native_resolution",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *)0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 3,
+ NULL,
+ },
+ /* Initialized with invalid resolution, if a valid value is set then only this atribute will be considered */
+ {
+ (char *)"prefered_resolutions",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *)2147483647,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 2147483647,
+ NULL,
+ },
+ /* Initialized with invalid uibc option, if a valid value is set then only this atribute will be considered */
+ {
+ (char *)"set_hdcp",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *)2,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 2,
+ NULL,
+ },
+ {
+ (char *)"display_rotate",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *)0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 3,
+ NULL,
+ },
+ {
+ (char *)"display_src_crop_x",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_src_crop_y",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_src_crop_width",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_src_crop_height",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_roi_x",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_roi_y",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_roi_width",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 480,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_roi_height",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 800,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_roi_mode",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) MM_DISPLAY_METHOD_CUSTOM_ROI_FULL_SCREEN,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ MM_DISPLAY_METHOD_CUSTOM_ROI_FULL_SCREEN,
+ MM_DISPLAY_METHOD_CUSTOM_ROI_LETER_BOX,
+ NULL,
+ },
+ {
+ (char *)"display_rotation",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) MM_DISPLAY_ROTATION_NONE,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ MM_DISPLAY_ROTATION_NONE,
+ MM_DISPLAY_ROTATION_270,
+ NULL,
+ },
+ {
+ (char *)"display_visible",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) FALSE,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 1,
+ NULL,
+ },
+ {
+ (char *)"display_method",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) MM_DISPLAY_METHOD_LETTER_BOX,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ MM_DISPLAY_METHOD_LETTER_BOX,
+ MM_DISPLAY_METHOD_CUSTOM_ROI,
+ NULL,
+ },
+ {
+ (char *)"display_overlay",
+ MM_ATTRS_TYPE_DATA,
+ MM_ATTRS_FLAG_RW,
+ (void *) NULL,
+ MM_ATTRS_VALID_TYPE_NONE,
+ 0,
+ 0,
+ _mmwfd_set_display_info,
+ },
+ {
+ (char *)"display_overlay_user_data",
+ MM_ATTRS_TYPE_DATA,
+ MM_ATTRS_FLAG_RW,
+ (void *) NULL,
+ MM_ATTRS_VALID_TYPE_NONE,
+ 0,
+ 0,
+ NULL,
+ },
+ {
+ (char *)"display_zoom",
+ MM_ATTRS_TYPE_DOUBLE,
+ MM_ATTRS_FLAG_RW,
+ (void *) 1,
+ MM_ATTRS_VALID_TYPE_DOUBLE_RANGE,
+ 1.0,
+ 9.0,
+ NULL,
+ },
+ {
+ (char *)"display_surface_type",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) MM_DISPLAY_SURFACE_OVERLAY,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ MM_DISPLAY_SURFACE_OVERLAY,
+ MM_DISPLAY_SURFACE_REMOTE,
+ NULL,
+ },
+ {
+ (char *)"display_width", /* dest width of fimcconvert ouput */
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_height", /* dest height of fimcconvert ouput */
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_evas_do_scaling",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) TRUE,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ FALSE,
+ TRUE,
+ NULL,
+ },
+ {
+ (char *)"display_x",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"display_y",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"hdcp_version",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 2,
+ NULL,
+ },
+ {
+ (char *)"hdcp_port",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 2147483647,
+ NULL,
+ },
+ {
+ (char *)"hdcp_handle",
+ MM_ATTRS_TYPE_DATA,
+ MM_ATTRS_FLAG_RW,
+ (void *) NULL,
+ MM_ATTRS_VALID_TYPE_NONE,
+ 0,
+ 0,
+ NULL,
+ },
+ {
+ (char *)"window_width",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"window_height",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 0,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 0,
+ 4096,
+ NULL,
+ },
+ {
+ (char *)"resource_priority",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) 1000,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ 1000,
+ 1001,
+ NULL,
+ }
+};
+
+bool _mm_wfd_sink_commit_wfd_attrs(int attr_idx, const char *attr_name, const MMAttrsValue * value, void *commit_param)
+{
+ bool ret = true;
+ return_val_if_fail(commit_param, FALSE);
+ return_val_if_fail(attr_idx >= 0, FALSE);
+ return_val_if_fail(attr_name, FALSE);
+ return_val_if_fail(value, FALSE);
+
+ if (wfd_attrs[attr_idx].attr_commit) {
+ __mm_wfd_sink_print_attrs(attr_name, value, "Dynamic");
+ ret = wfd_attrs[attr_idx].attr_commit((MMHandleType) commit_param, attr_idx, value);
+ } else {
+ __mm_wfd_sink_print_attrs(attr_name, value, "Static");
+ }
+
+ return ret;
+}
MMHandleType
_mmwfd_construct_attribute(MMHandleType handle)
MMAttrsConstructInfo *base = NULL;
int ret = MM_ERROR_NONE;
- debug_fenter();
+ wfd_sink_debug_fenter();
return_val_if_fail(handle, (MMHandleType) NULL);
- MMWfdAttrsSpec wfd_attrs[] = {
- {
- (char *)"server_ip",
- MM_ATTRS_TYPE_STRING,
- MM_ATTRS_FLAG_RW,
- (void *)"127.0.0.1",
- MM_ATTRS_VALID_TYPE_NONE,
- 0,
- 0
- },
-
- {
- (char *)"server_port",
- MM_ATTRS_TYPE_STRING,
- MM_ATTRS_FLAG_RW,
- (void *)"8554",
- MM_ATTRS_VALID_TYPE_NONE,
- 0,
- 0
- },
-
- {
- (char *)"max_client_count",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *)1,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 10
- },
- /* Initialized with invalid native type, if a valid value is set then only this atribute will be considered */
- {
- (char *)"native_resolution",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *)0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 3
- },
- /* Initialized with invalid resolution, if a valid value is set then only this atribute will be considered */
- {
- (char *)"prefered_resolutions",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *)2147483647,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 2147483647
- },
- /* Initialized with invalid uibc option, if a valid value is set then only this atribute will be considered */
- {
- (char *)"set_hdcp",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *)2,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 2
- },
- {
- (char *)"display_rotate",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *)0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 3
- },
- {
- (char *)"display_src_crop_x",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_src_crop_y",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_src_crop_width",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_src_crop_height",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_roi_x",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_roi_y",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_roi_width",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 480,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_roi_height",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 800,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_roi_mode",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) MM_DISPLAY_METHOD_CUSTOM_ROI_FULL_SCREEN,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- MM_DISPLAY_METHOD_CUSTOM_ROI_FULL_SCREEN,
- MM_DISPLAY_METHOD_CUSTOM_ROI_LETER_BOX
- },
- {
- (char *)"display_rotation",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) MM_DISPLAY_ROTATION_NONE,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- MM_DISPLAY_ROTATION_NONE,
- MM_DISPLAY_ROTATION_270
- },
- {
- (char *)"display_visible",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) FALSE,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 1
- },
- {
- (char *)"display_method",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) MM_DISPLAY_METHOD_LETTER_BOX,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- MM_DISPLAY_METHOD_LETTER_BOX,
- MM_DISPLAY_METHOD_CUSTOM_ROI
- },
- {
- (char *)"display_overlay",
- MM_ATTRS_TYPE_DATA,
- MM_ATTRS_FLAG_RW,
- (void *) NULL,
- MM_ATTRS_VALID_TYPE_NONE,
- 0,
- 0
- },
- {
- (char *)"display_overlay_user_data",
- MM_ATTRS_TYPE_DATA,
- MM_ATTRS_FLAG_RW,
- (void *) NULL,
- MM_ATTRS_VALID_TYPE_NONE,
- 0,
- 0
- },
- {
- (char *)"display_zoom",
- MM_ATTRS_TYPE_DOUBLE,
- MM_ATTRS_FLAG_RW,
- (void *) 1,
- MM_ATTRS_VALID_TYPE_DOUBLE_RANGE,
- 1.0,
- 9.0
- },
- {
- (char *)"display_surface_type",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) MM_DISPLAY_SURFACE_OVERLAY,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- MM_DISPLAY_SURFACE_OVERLAY,
- MM_DISPLAY_SURFACE_REMOTE
- },
- {
- (char *)"display_width", /* dest width of fimcconvert ouput */
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_height", /* dest height of fimcconvert ouput */
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_evas_do_scaling",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) TRUE,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- FALSE,
- TRUE
- },
- {
- (char *)"display_x",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"display_y",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"hdcp_version",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 2
- },
- {
- (char *)"hdcp_port",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 2147483647
- },
- {
- (char *)"hdcp_handle",
- MM_ATTRS_TYPE_DATA,
- MM_ATTRS_FLAG_RW,
- (void *) NULL,
- MM_ATTRS_VALID_TYPE_NONE,
- 0,
- 0
- },
- {
- (char *)"window_width",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"window_height",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 0,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 0,
- 4096
- },
- {
- (char *)"resource_priority",
- MM_ATTRS_TYPE_INT,
- MM_ATTRS_FLAG_RW,
- (void *) 1000,
- MM_ATTRS_VALID_TYPE_INT_RANGE,
- 1000,
- 1001
- }
- };
-
num_of_attrs = ARRAY_SIZE(wfd_attrs);
base = (MMAttrsConstructInfo *)malloc(num_of_attrs * sizeof(MMAttrsConstructInfo));
if (!base) {
- debug_error("Cannot create mmwfd attribute\n");
+ wfd_sink_error("Cannot create mmwfd attribute\n");
goto ERROR;
}
base,
num_of_attrs,
"mmwfd_attrs",
- NULL,
- NULL, &attrs);
+ _mm_wfd_sink_commit_wfd_attrs,
+ (void *)handle, &attrs);
if (base) {
g_free(base);
}
if (ret != MM_ERROR_NONE) {
- debug_error("Cannot create mmwfd attribute\n");
+ wfd_sink_error("Cannot create mmwfd attribute\n");
goto ERROR;
}
}
}
- debug_fleave();
+ wfd_sink_debug_fleave();
return attrs;
void
_mmwfd_deconstruct_attribute(MMHandleType handle)
{
- debug_fenter();
+ wfd_sink_debug_fenter();
return_if_fail(handle);
if (handle)
mm_attrs_free(handle);
- debug_fleave();
+ wfd_sink_debug_fleave();
}
int
int result = MM_ERROR_NONE;
MMHandleType attrs = 0;
- debug_fenter();
+ wfd_sink_debug_fenter();
/* NOTE : Don't need to check err_attr_name because it can be set NULL */
/* if it's not want to know it. */
result = mm_attrs_get_valist(attrs, err_attr_name, attribute_name, args_list);
if (result != MM_ERROR_NONE)
- debug_error("failed to get %s attribute\n", attribute_name);
+ wfd_sink_error("failed to get %s attribute\n", attribute_name);
- debug_fleave();
+ wfd_sink_debug_fleave();
return result;
}
int result = MM_ERROR_NONE;
MMHandleType attrs = 0;
- debug_fenter();
+ wfd_sink_debug_fenter();
/* NOTE : Don't need to check err_attr_name because it can be set NULL */
/* if it's not want to know it. */
result = mm_attrs_set_valist(attrs, err_attr_name, attribute_name, args_list);
if (result != MM_ERROR_NONE) {
- debug_error("failed to set %s attribute\n", attribute_name);
+ wfd_sink_error("failed to set %s attribute\n", attribute_name);
return result;
}
/*__mmwfd_apply_attribute(handle, attribute_name); */
- debug_fleave();
+ wfd_sink_debug_fleave();
return result;
}
-/* Currently not used. */
-/*static gboolean
-__mmwfd_apply_attribute(MMHandleType handle, const char *attribute_name)
-{
- MMHandleType attrs = 0;
- mm_wfd_t* wfd = 0;
-
- debug_fenter();
-
- return_val_if_fail(handle, MM_ERROR_COMMON_INVALID_ARGUMENT);
- return_val_if_fail(attribute_name, MM_ERROR_COMMON_INVALID_ARGUMENT);
-
- attrs = handle;
-
- return_val_if_fail(attrs, MM_ERROR_COMMON_INVALID_ARGUMENT);
-
- wfd = (mm_wfd_t*)handle;
-
- // TODO: This function is not useful at this moment
-
- debug_fleave();
-
- return TRUE;
-}*/
-
int
_mmwfd_get_attributes_info(MMHandleType handle, const char *attribute_name, MMWfdAttrsInfo *dst_info)
{
MMHandleType attrs = 0;
MMAttrsInfo src_info = {0, };
- debug_fenter();
+ wfd_sink_debug_fenter();
return_val_if_fail(attribute_name, MM_ERROR_COMMON_INVALID_ARGUMENT);
return_val_if_fail(dst_info, MM_ERROR_COMMON_INVALID_ARGUMENT);
result = mm_attrs_get_info_by_name(attrs, attribute_name, &src_info);
if (result != MM_ERROR_NONE) {
- debug_error("failed to get attribute info\n");
+ wfd_sink_error("failed to get attribute info\n");
return result;
}
break;
}
- debug_fleave();
+ wfd_sink_debug_fleave();
return result;
}
+static bool _mmwfd_set_display_info(MMHandleType handle, int attr_idx, const MMAttrsValue *value)
+{
+ gint surface_type = MM_DISPLAY_SURFACE_OVERLAY;
+ mm_wfd_sink_t *wfd_sink = MMWFDSINK_CAST(handle);
+
+ wfd_sink_debug_fenter();
+
+ /* update display surface */
+ mm_attrs_get_int_by_name(MMWFDSINK_GET_ATTRS(wfd_sink), "display_surface_type", &surface_type);
+ wfd_sink_info("check display surface type attribute: %d", surface_type);
+
+ /* configuring display */
+ switch (surface_type) {
+ case MM_DISPLAY_SURFACE_EVAS:
+ /* nothing to do */
+ break;
+ case MM_DISPLAY_SURFACE_OVERLAY:
+ if (MM_ERROR_NONE != _mm_wfd_sink_set_display_overlay(wfd_sink, value->value.p_val)) {
+ wfd_sink_error("Setting overlay display is failed.");
+ return false;
+ }
+ break;
+ case MM_DISPLAY_SURFACE_NULL:
+ default:
+ wfd_sink_error("Not Supported Surface. surface_type: [%d]", surface_type);
+ return false;
+ }
+
+ wfd_sink_debug_fleave();
+
+ return true;
+}