return TDM_ERROR_NOT_IMPLEMENTED;
}
- if (!func_output->output_get_dpms) {
- dpms_value = private_output->current_dpms_value;
- } else {
- ret = func_output->output_get_dpms(private_output->output_backend, &dpms_value);
- if (ret != TDM_ERROR_NONE) {
- TDM_ERR("output_get_dpms failed");
- dpms_value = TDM_OUTPUT_DPMS_OFF;
- }
-
- if (dpms_value != private_output->current_dpms_value) {
- private_output->current_dpms_value = dpms_value;
- TDM_WRN("current_dpms_value changed: %s", tdm_dpms_str(dpms_value));
- }
- }
+ tdm_output_get_dpms_internal(output, &dpms_value);
if (dpms_value == TDM_OUTPUT_DPMS_ON) {
if (func) {
return ret;
}
-EXTERN tdm_error
-tdm_output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value)
+INTERN tdm_error
+tdm_output_get_dpms_internal(tdm_output *output, tdm_output_dpms *dpms_value)
{
tdm_func_output *func_output;
OUTPUT_FUNC_ENTRY();
- TDM_RETURN_VAL_IF_FAIL(dpms_value != NULL, TDM_ERROR_INVALID_PARAMETER);
-
- _pthread_mutex_lock(&private_display->lock);
+ TDM_RETURN_VAL_IF_FAIL(private_output != NULL, TDM_ERROR_INVALID_PARAMETER);
func_output = &private_display->func_output;
if (!func_output->output_get_dpms) {
*dpms_value = private_output->current_dpms_value;
- _pthread_mutex_unlock(&private_display->lock);
TDM_WRN("not implemented!!");
return TDM_ERROR_NONE;
}
ret = func_output->output_get_dpms(private_output->output_backend, dpms_value);
+ if (ret != TDM_ERROR_NONE) {
+ TDM_ERR("output_get_dpms failed");
+ *dpms_value = TDM_OUTPUT_DPMS_OFF;
+ }
if (*dpms_value != private_output->current_dpms_value) {
private_output->current_dpms_value = *dpms_value;
- TDM_WRN("current_dpms_value changed: %s", tdm_dpms_str(*dpms_value));
+ TDM_ERR("output(%d) dpms changed suddenly: %s", private_output->pipe, tdm_dpms_str(*dpms_value));
}
+ return ret;
+}
+
+EXTERN tdm_error
+tdm_output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value)
+{
+ OUTPUT_FUNC_ENTRY();
+
+ TDM_RETURN_VAL_IF_FAIL(dpms_value != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+ _pthread_mutex_lock(&private_display->lock);
+
+ ret = tdm_output_get_dpms_internal(output, dpms_value);
+
_pthread_mutex_unlock(&private_display->lock);
return ret;