int device_power_remove_lock_count_change_callback(power_lock_e power_lock_type,
device_power_lock_count_change_callback power_lock_count_change_callback);
+/**
+ * @brief Get current power state such as normal, sleep and poweroff.
+ * @details Get current power state and save it into the state argument.
+ * @since_tizen 9.0
+ * @privilege %http://tizen.org/privilege/power
+ * @param[out] state The power state
+ * @return @c 0 on success, otherwise a negative error value
+ * @retval #DEVICE_ERROR_NONE Successful
+ * @retval #DEVICE_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #DEVICE_ERROR_OPERATION_FAILED Operation failed
+ * @code
+ * #include <device/power-internal.h>
+ * ...
+ * int ret = 0;
+ * device_power_state_e state;
+ *
+ * ret = device_power_get_power_state(&state);
+ * if (ret != DEVICE_ERROR_NONE) {
+ * ....
+ * }
+ * ...
+ * @endcode
+ */
+int device_power_get_power_state(device_power_state_e *state);
#ifdef __cplusplus
}
#endif
return DEVICE_ERROR_NONE;
}
+
+int device_power_get_power_state(device_power_state_e *state)
+{
+ GDBusConnection *connection = NULL;
+ GVariant *retgv = NULL;
+ GError *err = NULL;
+ guint64 _state;
+
+ if (!state)
+ return DEVICE_ERROR_INVALID_PARAMETER;
+
+ connection = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &err);
+ if (!connection) {
+ _E("Failed to get dbus connection, %s", err->message);
+ g_clear_error(&err);
+ return DEVICE_ERROR_OPERATION_FAILED;
+ }
+
+ retgv = g_dbus_connection_call_sync(connection,
+ DEVICED_BUS_NAME,
+ DEVICED_PATH_POWER,
+ DEVICED_INTERFACE_POWER,
+ "PowerGetState",
+ NULL,
+ NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ DBUS_METHOD_SYNC_CALL_TIMEOUT_MS,
+ NULL,
+ &err);
+ if (!retgv || err) {
+ _E("Failed to request PowerGetState, %s", err->message);
+ g_clear_error(&err);
+ return DEVICE_ERROR_OPERATION_FAILED;
+ }
+
+ g_variant_get(retgv, "(t)", &_state);
+
+ *state = (device_power_state_e) _state;
+
+ return DEVICE_ERROR_NONE;
+}
+
//LCOV_EXCL_STOP
\ No newline at end of file