Merge branch 'tizen' into sandbox/cyeon/devel
[platform/core/uifw/libtdm.git] / src / tdm.c
index c7289e8..6375b53 100644 (file)
--- a/src/tdm.c
+++ b/src/tdm.c
@@ -404,6 +404,8 @@ _tdm_display_update_caps_pp(tdm_private_module *private_module, tdm_caps_pp *cap
                return TDM_ERROR_BAD_MODULE;
        }
 
+       memset(caps, 0, sizeof(tdm_caps_pp));
+
        ret = func_display->display_get_pp_capability(private_module->bdata, caps);
        if (ret != TDM_ERROR_NONE) {
                TDM_ERR("backend(%s) display_get_pp_capability() failed", private_module->module_data->name);
@@ -464,6 +466,7 @@ _tdm_display_update_caps_output(tdm_private_module *private_module, int pipe,
        char temp[TDM_NAME_LEN];
        tdm_error ret;
        double stamp;
+       int n;
 
        stamp = tdm_helper_get_time();
        ret = func_output->output_get_capability(output_backend, caps);
@@ -476,7 +479,11 @@ _tdm_display_update_caps_output(tdm_private_module *private_module, int pipe,
        }
 
        /* FIXME: Use model for tdm client to distinguish amoung outputs */
-       snprintf(temp, TDM_NAME_LEN, "%s-%d", caps->model, pipe);
+       n = snprintf(temp, sizeof(temp), "%s-%d", caps->model, pipe);
+       if ((size_t)n >= sizeof(temp)) {
+                temp[sizeof(temp) - 1] = '\0';
+       }
+
        snprintf(caps->model, TDM_NAME_LEN, "%s", temp);
 
        return TDM_ERROR_NONE;
@@ -764,6 +771,7 @@ _tdm_display_setup(tdm_private_display *private_display)
        tdm_error ret = TDM_ERROR_NONE;
        int output_count = 0;
        int virtual = 0;
+       int virtual_hwc_target_buffer_bo_default = 0;
 
        if (private_display->pp_module) {
                ret = _tdm_display_update_caps_pp(private_display->pp_module,
@@ -829,6 +837,10 @@ _tdm_display_setup(tdm_private_display *private_display)
                ret = _tdm_display_load_module_with_file(private_display, TDM_VIRTUAL_MODULE);
                TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, failed_update);
                TDM_GOTO_IF_FAIL(private_display->virtual_module != NULL, failed_update);
+
+               virtual_hwc_target_buffer_bo_default = tdm_config_get_int(TDM_CONFIG_KEY_GENERAL_VIRTUAL_OUTPUT_HWC_TARGET_BO_DEFAULT, 0);
+               if (virtual_hwc_target_buffer_bo_default)
+                       private_display->virtual_module->use_default_type_bo = 1;
        }
 
        return TDM_ERROR_NONE;