Device State Management interface

Weinehall David (Nokia-M/Tampere) David.Weinehall at nokia.com
Mon Jul 3 14:19:03 EEST 2006


[I was directed to this list in a discussion with Jim Gettys; I hope
this is indeed the proper forum to discuss this issue.]

In the DSM-team at OSSO/Nokia (working on the 770 Internet Tablet),
we are currently using a home-brew set of DBus signals and method-calls
to handle state- and mode-management information.

What I'd like to open up a discussion about is:

a.) Is this something that already has other (better) solutions?
b.) Is this something anyone else is interested in, or is this something
that has a quite narrow scope of interest?

and if this indeed is something that has not been solved yet, and people
are interested, would our current interface be a reasonable starting
point?

The interface we currently provide is (pasted from the header file;
MCE stands for Mode Control Entity):

/** The MCE DBus service */
#define MCE_SERVICE                     "com.nokia.mce"

/** The MCE DBus Request interface */
#define MCE_REQUEST_IF                  "com.nokia.mce.request"
/** The MCE DBus Signal interface */
#define MCE_SIGNAL_IF                   "com.nokia.mce.signal"
/** The MCE DBus Request path */
#define MCE_REQUEST_PATH                "/com/nokia/mce/request"
/** The MCE DBus Signal path */
#define MCE_SIGNAL_PATH                 "/com/nokia/mce/signal"

/** The MCE DBus error interface; currently not used */
#define MCE_ERROR_FATAL                 "com.nokia.mce.error.fatal"
/** The DBus interface for invalid arguments; currently not used */
#define MCE_ERROR_INVALID_ARGS
"org.freedesktop.DBus.Error.InvalidArgs"
/**
 * Request device mode
 *
 * @since v0.5.3
 * @return @c dbus_string_t with the device mode
 *         (see @ref mce/mode-names.h for valid modes)
 */
#define MCE_DEVICE_MODE_GET             "get_device_mode"

/**
 * Request device lock mode
 *
 * @since v0.8.0
 * @return @c dbus_string_t with the device lock mode
 *         (see @ref mce/mode-names.h for valid lock modes)
 */
#define MCE_DEVLOCK_MODE_GET            "get_devicelock_mode"

/**
 * Request touchscreen/keypad lock mode
 *
 * @since v1.4.0
 * @return @c dbus_string_t with the touchscreen/keypad lock mode
 *         (see @ref mce/mode-names.h for valid lock modes)
 */
#define MCE_TKLOCK_MODE_GET             "get_tklock_mode"

/**
 * Request MCE version
 *
 * @since v1.1.6
 * @return @c dbus_string_t with the MCE version
 */
#define MCE_VERSION_GET                 "get_version"

/**
 * Unblank display
 *
 * @since v0.5
 */
#define MCE_DISPLAY_ON_REQ              "req_display_state_on"

/**
 * Prevent display from blanking
 *
 * @since v0.5
 */
#define MCE_PREVENT_BLANK_REQ           "req_display_blanking_pause"

/**
 * Request device mode change
 *
 * @since v0.5
 * @param mode @c dbus_string_t with the new device mode
 *             (see @ref mce/mode-names.h for valid device modes)
 */
#define MCE_DEVICE_MODE_CHANGE_REQ      "req_device_mode_change"

/**
 * Request tklock mode change
 *
 * @since v1.4.0
 * @param mode @c dbus_string_t with the new touchscreen/keypad lock
mode
 *             (see @ref mce/mode-names.h for valid lock modes)
 */
#define MCE_TKLOCK_MODE_CHANGE_REQ      "req_tklock_mode_change"

/**
 * Request powerup
 *
 * @since v0.5
 */
#define MCE_POWERUP_REQ                 "req_powerup"

/**
 * Request reboot
 *
 * @since v0.5.5
 */
#define MCE_REBOOT_REQ                  "req_reboot"

/**
 * Request shutdown
 *
 * @since v0.5
 */
#define MCE_SHUTDOWN_REQ                "req_shutdown"

/**
 * Validate device lock code
 *
 * @since v0.9.10
 * @param code @c dbus_string_t with the encrypted password from @c
crypt(3)
 * @param salt @c dbus_string_t with the salt used with @c crypt(3)
 * @return @c dbus_bool_t @c TRUE if the lock code is correct,
 *                        @c FALSE if the lock code is incorrect
 */
#define MCE_DEVLOCK_VALIDATE_CODE_REQ   "validate_devicelock_code"

/**
 * Set alarm mode
 *
 * @since v0.9.10
 * @param mode @c dbus_string_t with the new alarm mode
 *             (see @ref mce/mode-names.h for valid alarm modes)
 */
#define MCE_ALARM_MODE_CHANGE_REQ       "set_alarm_mode"

/**
 * Notify everyone that the system is about to shut down
 *
 * @since v0.4.1
 */
#define MCE_SHUTDOWN_SIG                "shutdown_ind"

/**
 * Signal that indicates that the device lock mode has changed
 *
 * @since v0.8.0
 * @param mode @c dbus_string_t with the new lock mode
 *             (see @ref mce/mode-names.h for valid lock modes)
 */
#define MCE_DEVLOCK_MODE_SIG            "devicelock_mode_ind"

/**
 * Signal that indicates that the touchscreen/keypad lock mode has
changed
 *
 * @since v1.4.0
 * @param mode @c dbus_string_t with the new lock mode
 *             (see @ref mce/mode-names.h for valid lock modes)
 */
#define MCE_TKLOCK_MODE_SIG             "tklock_mode_ind"

/**
 * Notify everyone to save unsaved data
 *
 * @since v0.3
 */
#define MCE_DATA_SAVE_SIG               "save_unsaved_data_ind"

/**
 * Notify everyone that the system is active/inactive
 *
 * @since v0.9.3
 * @param inactive @c dbus_bool_t @c TRUE if the system is inactive,
 *                                @c FALSE if the system is active
 */
#define MCE_INACTIVITY_SIG              "system_inactivity_ind"

/**
 * Notify everyone that the device mode has changed
 *
 * @since v0.5
 * @param mode @c dbus_string_t with the new device mode
 *             (see @ref mce/mode-names.h for valid device modes)
 */
#define MCE_DEVICE_MODE_SIG             "sig_device_mode_ind"

/**
 * Notify everyone that the home button was pressed (short press)
 *
 * @since v0.3
 */
#define MCE_HOME_KEY_SIG                "sig_home_key_pressed_ind"

/**
 * Notify everyone that the home button was pressed (long press)
 *
 * @since v0.3
 */
#define MCE_HOME_KEY_LONG_SIG           "sig_home_key_pressed_long_ind"


Regards: David Weinehall



More information about the xdg mailing list