mirror of
https://github.com/edeproject/ede.git
synced 2023-08-10 21:13:03 +03:00
Added emountd, a simple daemon that uses HAL to monitor when
devices get mounted or unmounted; reports will be send via dbus. Updated docs for dbus usage. Removed obsolete parts from jambuild.txt. Small tunings in asciidoc's xhtml11.conf. econtrol now can run program applets.
This commit is contained in:
@ -10,4 +10,5 @@
|
||||
|
||||
SubDir TOP docs ;
|
||||
|
||||
EdeManual index.txt introduction.txt jambuild.txt dbus-usage.txt ;
|
||||
EdeManual index.txt introduction.txt jambuild.txt ;
|
||||
EdeManualWithToc dbus-usage.txt ;
|
||||
|
@ -426,7 +426,7 @@ Version {revision}<br />
|
||||
Last updated {localdate} {localtime}
|
||||
</div>
|
||||
<div id="footer-badges">
|
||||
{edeversion}
|
||||
{edeversion} manual
|
||||
</div>
|
||||
ifdef::badges[]
|
||||
<div id="footer-badges">
|
||||
|
@ -1,6 +1,8 @@
|
||||
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.
|
||||
@ -14,21 +16,141 @@ EDE uses 'org.equinoxproject' as main namespace for interfaces and object paths,
|
||||
/org/equinoxproject/Eiconman # eiconman object path
|
||||
-----------------------------------------------------------
|
||||
|
||||
Applications
|
||||
------------
|
||||
rest of the name will be application name and method or signal name, like:
|
||||
|
||||
eiconman
|
||||
~~~~~~~~
|
||||
-----------------------------------------------------------
|
||||
org.equinoxproject.Eiconman.FooMethod # FooMethod belongs to eiconman
|
||||
-----------------------------------------------------------
|
||||
|
||||
Signals
|
||||
^^^^^^^
|
||||
*org.equinoxproject.Eiconman.DesktopChanged*
|
||||
Interfaces
|
||||
----------
|
||||
|
||||
org.equinoxproject.Eiconman.DesktopChanged(int32 n, string name)
|
||||
org.equinoxproject.Eiconman
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Used by eiconman and access object is '/org/eqiunoxproject/Eiconman'. 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
|
||||
-------------------------------------------------------------
|
||||
|
||||
|
@ -24,8 +24,9 @@
|
||||
*Programs*
|
||||
|
||||
- link:ecalc.html[Ecalc]
|
||||
- link:evoke.html[Evoke]
|
||||
- link:etip.html[Etip]
|
||||
- link:evoke.html[Evoke]
|
||||
- link:emountd.html[Emountd]
|
||||
|
||||
*Development*
|
||||
|
||||
|
@ -11,7 +11,7 @@ Introduction
|
||||
Why not make, you probably ask yourself, since the rest of the world
|
||||
use it? Well, make is a nice tool for small projects, or relatively
|
||||
large one with monolithic configuration file. This means, if you have
|
||||
1000 files and you want to build them on the same way, make can be usefull
|
||||
1000 files and you want to build them on the same way, make can be useful
|
||||
(sorta of).
|
||||
|
||||
On other hand, if you want some of them to have specific requirements,
|
||||
@ -27,22 +27,21 @@ libraries (today very often), that library 'will be tied to' that binary, even
|
||||
if binary does not use any function from it. It is silly that ecalc requires,
|
||||
for example, libogg for startup, even if it does not use any function from it!
|
||||
|
||||
In EDE 1.x we had pretty simple (and that is 'wohaaa' with arcane make syntax)
|
||||
build system based on make (without automake stuff because is... ah, check comments
|
||||
online about it :-P) that served us very well.
|
||||
In EDE 1.x we had pretty simple build system based on make (without automake stuff
|
||||
because is... ah, check comments online about it :-P) that served us very well.
|
||||
|
||||
But it had a lot of limitation. You couldn't, as sample, specify '-DSHAPE' flag
|
||||
for a window manager without passing it to every program in the tree. The same
|
||||
applies for linked libraries too.
|
||||
|
||||
Jam is designed for these cases, and when they occur, it is like homeland for him.
|
||||
Jam is designed for these cases and when they occur, it is like homeland for him.
|
||||
So, you want only 'foo.cpp' from 'baz' directory to get '-DXYZ' flag, no problem. Or you
|
||||
want that every file in 'baz' directory (no matter is it binary or shared library)
|
||||
be linked with 'libtaz'; no problem either.
|
||||
|
||||
So how it looks like
|
||||
--------------------
|
||||
Here are few samples with syntax explaination.
|
||||
Here are few samples with syntax explanation.
|
||||
|
||||
Let say you have 'foo.cpp', a cool application and you want to create executable from
|
||||
it. This is the way:
|
||||
@ -100,97 +99,3 @@ must have space before ending ';' character, like:
|
||||
Well, that is a jam syntax :-)
|
||||
|
||||
===================================
|
||||
|
||||
|
||||
EDE build specific rules
|
||||
------------------------
|
||||
This is the main reason why you are reading this :-P. This is a list of rules
|
||||
for easier building various pieces and short showcase how to use them.
|
||||
|
||||
Program rules
|
||||
~~~~~~~~~~~~~
|
||||
These rules are used to build binary file(s).
|
||||
|
||||
|
||||
Program [target] : [sources] : [libraries] : [flags] ;
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Creates [target] binary from [sources]. If libraries are given (normal way of linking
|
||||
like '-lfoo', they will be used. If [flags] are given, like '-DABC' they will be
|
||||
passed to compiler. Like:
|
||||
|
||||
-------------------------
|
||||
# Compile and link with fltk libraries
|
||||
SOURCE = Main.cpp SciCalc.cpp ;
|
||||
Program ecalc : $(SOURCE) : -L/usr/local/share -lfltk -lX11 -lm -lstdc++ ;
|
||||
|
||||
# Compile and link with fltk libraries; also pass -D_DEBUG
|
||||
SOURCE = Main.cpp SciCalc.cpp ;
|
||||
Program ecalc : $(SOURCE) : -L/usr/local/share -lfltk -lX11 -lm -lstdc++ : -D_DEBUG ;
|
||||
-------------------------
|
||||
|
||||
|
||||
EdeProgram [target] : [sources] : [optional-libraries] : [optional-flags] ;
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Create [target] and link it with edelib and fltk libraries. If [optional-libraries] and
|
||||
[optional-flags] are given, they will be used. Like:
|
||||
|
||||
-------------------------
|
||||
SOURCE = abc.cpp ;
|
||||
EdeProgram abc : abc.cpp ;
|
||||
-------------------------
|
||||
|
||||
EfltkProgram [target] : [sources] : [optional-libraries] : [optional-flags] ;
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
The same as EdeProgram, but will link with efltk libraries. This rule is used to compile
|
||||
some programs from 1.x version, and will be removed when those programs are ported
|
||||
to the edelib and fltk code.
|
||||
|
||||
FltkProgram [target] : [sources] : [optional-libraries] : [optional-flags] ;
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Create [target] linking it with fltk libraries only. Also will link with images libraries.
|
||||
|
||||
|
||||
FltkProgramBare [target] : [sources] : [optional-libraries] : [optional-flags] ;
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Same as FltkProgram, but will *not* link with images libraries. Usefull for programs
|
||||
which does not require images support.
|
||||
|
||||
Library rules
|
||||
~~~~~~~~~~~~~
|
||||
These rules are used to build either static or shared libraries.
|
||||
|
||||
StaticLibrary [library] : [sources] : [optional-flags] ;
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Creates static library from [sources] files. If [optional-flags] are given, they
|
||||
will be passed to the compiler. Sample:
|
||||
|
||||
-------------------------
|
||||
# Compile each file with -D_DEBUG flag and create
|
||||
# mylib.a library
|
||||
StaticLibrary mylib : file1.cpp file2.cpp file3.cpp : -D_DEBUG ;
|
||||
-------------------------
|
||||
|
||||
SharedLibrary [library] : [sources] : [optional-linklibs] ;
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Creates a shared library from [sources] and link with [optional-linklibs]. Shared library
|
||||
will, by default, have a '.so' extension, if extension in [library] was not given.
|
||||
|
||||
SharedLibraryVersioned [library] : [sources] : [optional-linklibs] : [optional-version] : [nolink] ;
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Creates a versioned shared library (like foo.so.1.2.0) and symbolic link (foo.so) to it.
|
||||
If [optional-version] is given, it will be used to add version extension, if not,
|
||||
this rule behaves the same as SharedLibrary (meaning symbolic link will *not* be created).
|
||||
|
||||
If option [nolink] was given, but [optional-version] does, symbolic link will not be created.
|
||||
Here are few samples:
|
||||
|
||||
-------------------------
|
||||
# Create foo.so.1.2.0 and symbolic link to it
|
||||
SharedLibraryVersioned foo : file1.cpp file2.cpp : -L/some/path -lsomelib : 1.2.0 ;
|
||||
|
||||
# Create foo.so.1.2.0 without symbolic link
|
||||
SharedLibraryVersioned foo : file1.cpp file2.cpp : -L/some/path -lsomelib : 1.2.0 : nolink ;
|
||||
|
||||
# Create foo.so.1.2.0 without linking with external libraries
|
||||
SharedLibraryVersioned foo : file1.cpp file2.cpp : : 1.2.0 : nolink ;
|
||||
-------------------------
|
||||
|
Reference in New Issue
Block a user