virtual: add set_available_mode & set_phsycal_size function
[platform/core/uifw/libtdm.git] / src / tdm_output.c
index 550a750..a7813da 100644 (file)
@@ -1717,4 +1717,52 @@ tdm_output_choose_commit_per_vblank_mode(tdm_private_output *private_output, int
 
        return TDM_ERROR_NONE;
 }
+
+INTERN tdm_error
+tdm_output_set_available_mode(tdm_output *output, const tdm_output_mode *modes, int count)
+{
+       tdm_private_module *private_module = NULL;
+       tdm_func_output *func_output = NULL;
+
+       OUTPUT_FUNC_ENTRY();
+
+       TDM_RETURN_VAL_IF_FAIL(modes != NULL, TDM_ERROR_INVALID_PARAMETER);
+       TDM_RETURN_VAL_IF_FAIL(count != 0, TDM_ERROR_INVALID_PARAMETER);
+
+       private_module = private_output->private_module;
+       TDM_RETURN_VAL_IF_FAIL(private_module == private_display->virtual_module, TDM_ERROR_BAD_MODULE);
+
+       _pthread_mutex_lock(&private_display->lock);
+
+       func_output = &private_module->func_output;
+       ret = func_output->output_set_available_mode(private_output->output_backend, modes, count);
+
+       _pthread_mutex_unlock(&private_display->lock);
+
+       return ret;
+}
+
+INTERN tdm_error
+tdm_output_set_physical_size(tdm_output *output,  unsigned int mmwidth, unsigned int mmheight)
+{
+       tdm_private_module *private_module = NULL;
+       tdm_func_output *func_output = NULL;
+
+       OUTPUT_FUNC_ENTRY();
+
+       TDM_RETURN_VAL_IF_FAIL(mmwidth != 0, TDM_ERROR_INVALID_PARAMETER);
+       TDM_RETURN_VAL_IF_FAIL(mmheight != 0, TDM_ERROR_INVALID_PARAMETER);
+
+       private_module = private_output->private_module;
+       TDM_RETURN_VAL_IF_FAIL(private_module == private_display->virtual_module, TDM_ERROR_BAD_MODULE);
+
+       _pthread_mutex_lock(&private_display->lock);
+
+       func_output = &private_module->func_output;
+       ret = func_output->output_set_physical_size(private_output->output_backend, mmwidth, mmheight);
+
+       _pthread_mutex_unlock(&private_display->lock);
+
+       return ret;
+}
 /* LCOV_EXCL_STOP */