static inline int errno_to_device_error(int err)
{
- if (err == -ECOMM)
+ if (err == -ECOMM || err == -EACCES || err == -EPERM)
return DEVICE_ERROR_PERMISSION_DENIED;
else if (err == -ENODEV || err == -ENOENT)
return DEVICE_ERROR_NOT_SUPPORTED;
if (!max_brightness)
return DEVICE_ERROR_INVALID_PARAMETER;
- if (display_cnt < 0)
- device_display_get_numbers(&display_cnt);
+ if (display_cnt < 0) {
+ ret = device_display_get_numbers(&display_cnt);
+ if (ret < 0)
+ return errno_to_device_error(ret);
+ }
if (display_index < 0 || display_index >= display_cnt)
return DEVICE_ERROR_INVALID_PARAMETER;
{
char *arr[4];
char str_timeout[32];
+ int ret;
arr[0] = get_state_str(state);
if (!arr[0])
else
arr[2] = STR_NULL;
+ snprintf(str_timeout, sizeof(str_timeout), "%d", -1);
+ arr[3] = str_timeout;
+ ret = dbus_method_sync(DEVICED_BUS_NAME,
+ DEVICED_PATH_DISPLAY, DEVICED_INTERFACE_DISPLAY,
+ METHOD_LOCK_STATE, "sssi", arr);
+ if (ret == -EACCES || ret == -ECOMM || ret == -EPERM)
+ return -EACCES;
+
snprintf(str_timeout, sizeof(str_timeout), "%d", timeout_ms);
arr[3] = str_timeout;
static int unlock_state(display_state_e state, unsigned int flag)
{
char *arr[2];
+ int ret;
+
+ arr[0] = "";
+ arr[1] = "";
+ ret = dbus_method_sync(DEVICED_BUS_NAME,
+ DEVICED_PATH_DISPLAY, DEVICED_INTERFACE_DISPLAY,
+ METHOD_UNLOCK_STATE, "ss", arr);
+ if (ret == -EACCES || ret == -ECOMM || ret == -EPERM)
+ return -EACCES;
arr[0] = get_state_str(state);
if (!arr[0])
else
return DEVICE_ERROR_INVALID_PARAMETER;
- if (ret == -ECOMM)
+ if (ret == -EACCES)
return DEVICE_ERROR_PERMISSION_DENIED;
else if (ret < 0)
return DEVICE_ERROR_OPERATION_FAILED;
else
return DEVICE_ERROR_INVALID_PARAMETER;
- if (ret == -ECOMM)
+ if (ret == -EACCES)
return DEVICE_ERROR_PERMISSION_DENIED;
else if (ret < 0)
return DEVICE_ERROR_OPERATION_FAILED;