ede/doc/dbus-usage.txt
2008-10-02 09:58:27 +00:00

161 lines
5.4 KiB
Plaintext

D-BUS usage in EDE
==================
Introduction
------------
This document describes link:http://freedesktop.org/wiki/Software/dbus/[D-BUS] usage in EDE applications.
It is not meant to describe D-BUS protocol nor how to use it either via libdbus nor edelib, but
to document and explain what programs listen or send data via D-BUS protocol.
Naming convention
-----------------
EDE uses 'org.equinoxproject' as main namespace for interfaces and object paths, e.g.
-----------------------------------------------------------
org.equinoxproject.Desktop # ede-desktop interface
/org/equinoxproject/Desktop # ede-desktop object path
-----------------------------------------------------------
rest of the name will be application name and method or signal name. If application name
is not suitable or could not be represented as D-BUS name or could be ambiguous, it can be replaced
with application functionality (e.g. 'org.equinoxproject.Desktop' sounds much better than
'org.equinoxproject.Ede_Desktop').
Sample:
-----------------------------------------------------------
org.equinoxproject.Desktop.FooMethod # FooMethod belongs to ede-desktop
-----------------------------------------------------------
Interfaces
----------
org.equinoxproject.Desktop
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Used by ede-destkop and access object is '/org/eqiunoxproject/Desktop'. Provided
signals are:
DesktopChanged(int32 n, string name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[grid="all"]
`---------`---------`----------------
Name Type Description
-------------------------------------
n int32 Desktop number
name string Desktop name
-------------------------------------
Notify when desktop view was changed.
'''''
org.equinoxproject.Emountd
~~~~~~~~~~~~~~~~~~~~~~~~~~
Used by emountd and access object is '/org/equinoxproject/Emountd'. Provided
signals are:
Mounted(struct device_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
'device_info' contains the following fields:
[grid="all"]
`---------------`---------`-----------------------------------
Name Type Description
--------------------------------------------------------------
id uint32 Device ID for easier tracking
label string Device label (can be empty)
mount_point string Device mount point
device_file string Device file
drive_type int32 Drive type (see <<X1, Drive types>>)
cdrom_type int32 CDROM type, valid only if 'drive_type == DRIVE_TYPE_CDROM' (see <<X2, Volume disc types>>)
read_only bool Is device mounted read-only
--------------------------------------------------------------
Notify when storage device was mounted.
Unmounted(int32 udi)
^^^^^^^^^^^^^^^^^^^^^
[grid="all"]
`---------`---------`----------------
Name Type Description
-------------------------------------
id int32 Device ID for easier tracking
-------------------------------------
Notify when storage device was unmounted.
AudioCDAdded(struct audio_device_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'audio_device_info' contains the following fields:
[grid="all"]
`---------------`---------`-----------------------------------
Name Type Description
--------------------------------------------------------------
id uint32 Device ID for easier tracking
label string Device label (can be empty)
device_file string Device file
--------------------------------------------------------------
Notify when Audio CD was added.
AudioCDRemoved(int32 udi)
^^^^^^^^^^^^^^^^^^^^^^^^^
[grid="all"]
`---------`---------`----------------
Name Type Description
-------------------------------------
id int32 Device ID for easier tracking
-------------------------------------
Notify when Audio CD was removed.
Device enumerations directly maps to HAL ones and those values
are send in 'drive_type' and 'cdrom_type' (device_info struct).
[[X1]]
*Drive types:*
-------------------------------------------------------------
DRIVE_TYPE_REMOVABLE_DISK = 0x00
DRIVE_TYPE_DISK = 0x01
DRIVE_TYPE_CDROM = 0x02
DRIVE_TYPE_FLOPPY = 0x03
DRIVE_TYPE_TAPE = 0x04
DRIVE_TYPE_COMPACT_FLASH = 0x05
DRIVE_TYPE_MEMORY_STICK = 0x06
DRIVE_TYPE_SMART_MEDIA = 0x07
DRIVE_TYPE_SD_MMC = 0x08
DRIVE_TYPE_CAMERA = 0x09
DRIVE_TYPE_PORTABLE_AUDIO_PLAYER = 0x0a
DRIVE_TYPE_ZIP = 0x0b
DRIVE_TYPE_JAZ = 0x0c
DRIVE_TYPE_FLASHKEY = 0x0d
DRIVE_TYPE_MO = 0x0e
-------------------------------------------------------------
[[X2]]
*Volume disc types:*
-------------------------------------------------------------
VOLUME_DISC_TYPE_CDROM = 0x00
VOLUME_DISC_TYPE_CDR = 0x01
VOLUME_DISC_TYPE_CDRW = 0x02
VOLUME_DISC_TYPE_DVDROM = 0x03
VOLUME_DISC_TYPE_DVDRAM = 0x04
VOLUME_DISC_TYPE_DVDR = 0x05
VOLUME_DISC_TYPE_DVDRW = 0x06
VOLUME_DISC_TYPE_DVDPLUSR = 0x07
VOLUME_DISC_TYPE_DVDPLUSRW = 0x08
VOLUME_DISC_TYPE_DVDPLUSR_DL = 0x09
VOLUME_DISC_TYPE_BDROM = 0x0a
VOLUME_DISC_TYPE_BDR = 0x0b
VOLUME_DISC_TYPE_BDRE = 0x0c
VOLUME_DISC_TYPE_HDDVDROM = 0x0d
VOLUME_DISC_TYPE_HDDVDR = 0x0e
VOLUME_DISC_TYPE_HDDVDRW = 0x0f
VOLUME_DISC_TYPE_MO = 0x10
-------------------------------------------------------------