sync
authorJinkun Jang <jinkun.jang@samsung.com>
Thu, 14 Mar 2013 03:39:04 +0000 (12:39 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Thu, 14 Mar 2013 03:39:04 +0000 (12:39 +0900)
38 files changed:
.cvsignore [deleted file]
Doxyfile [deleted file]
configure.in [deleted file]
debian/.cvsignore [deleted file]
debian/changelog.in [deleted file]
debian/libedbus0.install [deleted file]
doc/images/_.gif [deleted file]
doc/images/b.png [deleted file]
doc/images/e.css [deleted file]
doc/images/foot.html [deleted file]
doc/images/head.html [deleted file]
doc/images/n.gif [deleted file]
doc/images/n.png [deleted file]
doc/images/t.gif [deleted file]
doc/images/t.png [deleted file]
doc/images/tl.gif [deleted file]
doc/images/tl.png [deleted file]
enm.pc.in [deleted file]
gendoc [deleted file]
src/.cvsignore [deleted file]
src/bin/.cvsignore [deleted file]
src/bin/hal.c [deleted file]
src/bin/nm.c [deleted file]
src/lib/.cvsignore [deleted file]
src/lib/dbus/.cvsignore [deleted file]
src/lib/hal/.cvsignore [deleted file]
src/lib/nm/.cvsignore [deleted file]
src/lib/nm/E_Nm.h [deleted file]
src/lib/nm/Makefile.am [deleted file]
src/lib/nm/README [deleted file]
src/lib/nm/e_nm.c [deleted file]
src/lib/nm/e_nm_device.c [deleted file]
src/lib/nm/e_nm_manager.c [deleted file]
src/lib/nm/e_nm_network.c [deleted file]
src/lib/nm/e_nm_private.h [deleted file]
src/lib/nm/e_nm_util.c [deleted file]
src/lib/notification/.cvsignore [deleted file]
src/lib/notification/notification-spec-0.9.txt [deleted file]

diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644 (file)
index 7a9dcad..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Makefile
-Makefile.in
-aclocal.m4
-autom4te.cache
-compile
-config.guess
-config.h
-config.h.in
-config.log
-config.status
-config.sub
-configure
-depcomp
-install-sh
-libtool
-ltmain.sh
-missing
-stamp-h1
-*.pc
-e_dbus.spec
diff --git a/Doxyfile b/Doxyfile
deleted file mode 100644 (file)
index 3d3346e..0000000
--- a/Doxyfile
+++ /dev/null
@@ -1,1252 +0,0 @@
-# Doxyfile 1.4.7
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-
-PROJECT_NAME           =  e_dbus
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = 0.1.0
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = doc
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of 
-# source files, where putting all generated files in the same directory would 
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, 
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, 
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, 
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, 
-# Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE        = English
-
-# This tag can be used to specify the encoding used in the generated output. 
-# The encoding is not always determined by the language that is chosen, 
-# but also whether or not the output is meant for Windows or non-Windows users. 
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
-# forces the Windows encoding (this is the default for the Windows binary), 
-# whereas setting the tag to NO uses a Unix-style encoding (the default for 
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING   = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is 
-# used as the annotated text. Otherwise, the brief description is used as-is. 
-# If left blank, the following values are used ("$name" is automatically 
-# replaced with the name of the entity): "The $name class" "The $name widget" 
-# "The $name file" "is" "provides" "specifies" "contains" 
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       = 
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = YES
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if those 
-# members were ordinary class members. Constructors, destructors and assignment 
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
-# path to strip.
-
-STRIP_FROM_PATH        = src/
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    = 
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like the Qt-style comments (thus requiring an 
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF      = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-
-DETAILS_AT_TOP         = YES
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
-# a new page for each member. If set to NO, the documentation of a member will 
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 4
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                = 
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-# sources only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
-# sources only. Doxygen will then generate output that is more tailored for Java. 
-# For instance, namespaces will be presented as packages, qualified scopes 
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
-# include (a tag file for) the STL sources as input, then you should 
-# set this tag to YES in order to let doxygen match functions declarations and 
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
-# func(std::string) {}). This also make the inheritance and collaboration 
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = YES
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
-# declaration order.
-
-SORT_BRIEF_DOCS        = YES
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = NO
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-# doxygen should invoke to get the current version for each file (typically from the 
-# version control system). Doxygen will invoke the program by executing (via 
-# popen()) the command <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
-# provided by doxygen. Whatever the program writes to standard output 
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for 
-# functions that are documented, but have no documentation for their parameters 
-# or return value. If set to NO (the default) doxygen will only warn about 
-# wrong or incomplete parameter documentation, but not about the absence of 
-# documentation.
-
-WARN_NO_PARAMDOC       = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. Optionally the format may contain 
-# $version, which will be replaced by the version of the file (if it could 
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-
-WARN_LOGFILE           = e_dbus_doxy_warnings.txt
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-
-INPUT                  = src/lib
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
-
-FILE_PATTERNS          = 
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = 
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
-# directories that are symbolic links (a Unix filesystem feature) are excluded 
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. Note that the wildcards are matched 
-# against the file with absolute path, so to exclude all test directories 
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = 
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-
-IMAGE_PATH             = doc/images/
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
-# ignored.
-
-INPUT_FILTER           = 
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
-# is applied to all files.
-
-FILTER_PATTERNS        = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentstion.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code 
-# will point to the HTML generated by the htags(1) tool instead of doxygen 
-# built-in source browser. The htags tool is part of GNU's global source 
-# tagging system (see http://www.gnu.org/software/global/global.html). You 
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          = e_ E_
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = doc/head.html
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = doc/foot.html
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        = doc/e.css
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output directory.
-
-CHM_FILE               = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-
-DISABLE_INDEX          = YES
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-
-GENERATE_LATEX         = YES
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_SCHEMA             = 
-
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_DTD                = 
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
-# instead of the = operator.
-
-PREDEFINED             =__UNUSED__=
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse 
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-# or super classes. Setting the tag to NO turns the diagrams off. Note that 
-# this option is superseded by the HAVE_DOT option below. This is only a 
-# fallback. It is recommended to install and use dot, since it yields more 
-# powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
-# Language.
-
-UML_LOOK               = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a call dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable call graphs for selected 
-# functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a caller dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable caller graphs for selected 
-# functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
-# then doxygen will show the dependencies a directory has on other directories 
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               = 
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-
-DOTFILE_DIRS           = 
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_WIDTH    = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT   = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes 
-# that lay further from the root node will be omitted. Note that setting this 
-# option to 1 or 2 may greatly reduce the computation time needed for large 
-# code bases. Also note that a graph may be further truncated if the graph's 
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
-# the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-# background. This is disabled by default, which results in a white background. 
-# Warning: Depending on the platform used, enabling this option may lead to 
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
-# read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-# files in one run (i.e. multiple -o and -T options on the command line). This 
-# makes dot run faster, but since only newer versions of dot (>1.8.10) 
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
-# the various graphs.
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
diff --git a/configure.in b/configure.in
deleted file mode 100644 (file)
index 6023589..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# get rid of that stupid cache mechanism
-rm -f config.cache
-
-AC_INIT(e_dbus, 0.5.0.043, enlightenment-devel@lists.sourceforge.net)
-AC_PREREQ(2.52)
-AC_CONFIG_SRCDIR(configure.in)
-AC_CANONICAL_BUILD
-AC_CANONICAL_HOST
-
-AM_INIT_AUTOMAKE(1.6 dist-bzip2)
-AM_CONFIG_HEADER(config.h)
-
-AC_PROG_CC
-AC_HEADER_STDC
-AM_PROG_CC_C_O
-
-define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
-define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
-AC_PROG_LIBTOOL
-
-VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
-VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
-VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'`
-SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'`
-version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN"
-AC_SUBST(version_info)
-
-dnl Check enabled modules to build
-AC_ARG_ENABLE(ehal,
-                                 AC_HELP_STRING([--disable-ehal],
-                                                                         [Disable ehal build]),
-                                 [enable_ehal=$enableval],
-                                 [enable_ehal="yes"])
-AC_ARG_ENABLE(enm,
-                                 AC_HELP_STRING([--disable-enm], 
-                                                                         [Disable enm build]),
-                                 [enable_enm=$enableval],
-                                 [enable_enm="yes"])
-AC_ARG_ENABLE(enotify,
-                                 AC_HELP_STRING([--disable-enotify], 
-                                                                         [Disable enotify build]),
-                                 [enable_enotify=$enableval],
-                                 [enable_enotify="yes"])
-
-
-PKG_CHECK_MODULES([EDBUS], [
-  dbus-1 >= 0.62
-  ecore >= 0.9.9
-])
-
-
-dnl evas
-if test "x${enable_enotify}" = "xyes"
-then
-       PKG_CHECK_MODULES(EVAS, [evas >= 0.9.9], [], [enable_enotify="no"])
-fi
-
-AC_ARG_ENABLE(build-test-gui,
-  AS_HELP_STRING([--enable-build-test-gui], [Build with gui for testing]),
-  [ PKG_CHECK_MODULES([HAL_TEST_GUI], [
-    ewl
-    efreet
-    ],
-    # temporarily disable until update to newer tree2 api
-    [AC_DEFINE([EWL_GUI], 0, [An ewl gui for e_dbus_hal])],
-    [AC_DEFINE([EWL_GUI], 0, [An ewl gui for e_dbus_hal])]
-    )
- ]
-)
-
-AM_CONDITIONAL([BUILD_EHAL],    [test "x${enable_ehal}"    = "xyes"])
-AM_CONDITIONAL([BUILD_ENM],     [test "x${enable_enm}"     = "xyes"])
-AM_CONDITIONAL([BUILD_ENOTIFY], [test "x${enable_enotify}" = "xyes"])
-
-AC_OUTPUT([
-e_dbus.spec
-Makefile
-src/Makefile
-src/lib/Makefile
-src/lib/dbus/Makefile
-src/lib/hal/Makefile
-src/lib/nm/Makefile
-src/lib/notification/Makefile
-src/bin/Makefile
-edbus.pc
-ehal.pc
-enotify.pc
-enm.pc
-])
-
-
-#####################################################################
-## Info
-
-echo
-echo
-echo
-echo "------------------------------------------------------------------------"
-echo "$PACKAGE $VERSION"
-echo "------------------------------------------------------------------------"
-echo
-echo "Modules:"
-echo
-echo "  EHal.................: $enable_ehal"
-echo "  ENM..................: $enable_enm"
-echo "  ENotify..............: $enable_enotify"
-echo
-echo "Configuration Options Summary:"
-echo
-echo "  Compilation..........: make"
-echo
-echo "  Installation.........: make install"
-echo
-echo "    prefix.............: $prefix"
-echo
diff --git a/debian/.cvsignore b/debian/.cvsignore
deleted file mode 100644 (file)
index 6d10dce..0000000
+++ /dev/null
@@ -1 +0,0 @@
-changelog
diff --git a/debian/changelog.in b/debian/changelog.in
deleted file mode 100644 (file)
index 97eb7b7..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-edbus (@VERSION@-1) unstable; urgency=low
-
-  * CVS snapshot.
-
- -- Falko Schmidt <falko@alphagemini.org>  Mon, 28 Apr 2008 15:53:27 +0000
-
diff --git a/debian/libedbus0.install b/debian/libedbus0.install
deleted file mode 100644 (file)
index 79bbe2f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/lib/*.so.*
diff --git a/doc/images/_.gif b/doc/images/_.gif
deleted file mode 100644 (file)
index 60fa7a1..0000000
Binary files a/doc/images/_.gif and /dev/null differ
diff --git a/doc/images/b.png b/doc/images/b.png
deleted file mode 100644 (file)
index 04e5ac8..0000000
Binary files a/doc/images/b.png and /dev/null differ
diff --git a/doc/images/e.css b/doc/images/e.css
deleted file mode 100644 (file)
index a9f6f64..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-body {
-    background: url("images/b.png");
-    background-repeat: repeat-x;
-    background-position: top left;
-    background-color: #f4f4f4;
-    text-align: center;
-    font-family: sans-serif;
-    padding: 0;
-    margin: 0;
-}
-
-div.main {
-    margin: 1em auto;
-    vertical-align: top;
-    font-family: "Bitstream Vera", "Vera", "Trebuchet MS", Trebuchet, Tahoma, sans-serif;
-    color: #444444;
-    font-size: 0.8em;
-    text-align: justify;
-    width: 80%;
-}
-
-td.t { background-image:url("images/t.gif"); }
-td.t[class] { background-image:url("images/t.png"); }
-td.tl { background-image:url("images/tl.gif"); }
-td.tl[class] { background-image:url("images/tl.png"); }
-
-td.nav, td.lnav,  td.rnav {
-   align: middle;
-   text-align: center;
-   vertical-align: middle;
-   width: 100px;
-   height: 25px;
-   font-family: "Bitstream Vera", "Vera", "Trebuchet MS", Trebuchet, Tahoma, sans-serif;
-   color: #000000;
-   font-size: 9px;
-   font-weight: bold;
-   white-space: no-wrap;
-}  
-
-td.lnav[class] { background-image:url("images/n.png"); }
-td.lnav[class] { background-image:url("images/n.png"); }
-td.rnav { background-image:url("images/n.gif"); }
-td.rnav[class] { background-image:url("images/n.png"); }
-
-hr {
-    width: 200px;
-    height: 1px;
-    background: #dddddd;
-    border: 0;
-}
-
-p { color: #444444 ;}
-p.tiny, small {
-    color: #888888;
-    font-size: 0.5em;
-}
-
-h1 { 
-    text-align: center;
-    font-size: 1.3em; 
-}
-
-h2 { font-size: 1.1em; }
-h3 { font-size: 0.9em; }
-
-span.keyword { color: #008000; }
-span.keywordtype { color: #604020; }
-span.keywordflow { color: #e08000; }
-span.comment { color: #800000; }
-span.preprocessor { color: #806020; }
-span.stringliteral { color: #002080; }
-span.charliteral { color: #008080; }
-
-a:link {
-    color: #445566;
-    text-decoration: underline;
-}  
-   
-a:visited {
-    color: #667788;
-    text-decoration: underline;
-}  
-
-a:active {                
-    color: #88cccc;
-    text-decoration: none;
-}
-
-a:hover {
-    color: #112266;
-    text-decoration: underline;
-}  
-
-a.nav {
-    text-decoration: none;
-    display: block;
-}
-a.nav:link, a.nav:visited { color: #888888; }
-a.nav:active { color: #000000; }
-a.nav:hover { color: #444444; }
-a.code:link, a.code:visited { text-decoration: none; }
-
-div.fragment {
-    font-size: 1em;
-    border: 1px dotted #cccccc;
-    background-color: #ffffff;
-    text-align: left;
-    vertical-align: middle;
-    padding: 2px;
-    margin-left: 25px;
-    margin-right: 25px;
-    overflow: auto;
-}
-
-td.indexkey {
-    font-weight: bold;
-    padding-left: 10px;
-    padding-right: 0;
-    padding-top: 2px;
-    padding-bottom: 0px;
-    margin: 0;
-    margin-top: 2px;
-    margin-bottom: 2px;
-    border: 1px dotted #cccccc;
-    border-right: 0px dotted #cccccc;
-}
-
-td.indexvalue {
-    font-style: italic;
-    padding-right: 10px;
-    padding-left: 0;
-    padding-top: 2px;
-    padding-bottom: 2px;
-    margin: 0;
-    margin-top: 2px;
-    margin-bottom: 2px;
-    border: 1px dotted #cccccc;
-    border-left: 0px dotted #cccccc;
-}
-
-.mdescRight { font-style: italic; }
-.memitem {
-    padding-left: 2px;
-    padding-right: 2px;
-    border: 1px dotted #cccccc;
-    background-color: #ffffff;
-}
-.memname {
-    white-space: nowrap;
-    font-weight: bold;
-}
-.paramname { font-weight: normal; }
-
-div.ah {
-    border: thin solid #888888;
-    font-weight: bold;
-    margin-bottom: 3px;
-    margin-top: 3px;
-}
-
diff --git a/doc/images/foot.html b/doc/images/foot.html
deleted file mode 100644 (file)
index 0d3303d..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-  </div>
-  <hr />
-  <p class="tiny">Copyright &copy; Enlightenment.org</p>
-  <p class="tiny">$projectname Documentation Generated: $datetime</p>
- </body>
-</html>
diff --git a/doc/images/head.html b/doc/images/head.html
deleted file mode 100644 (file)
index 1e8e960..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html>
- <head>
-  <title>$title</title>
-  <link href="e.css" rel="stylesheet" type="text/css" />
- </head>
-
-<body>
- <table width="100%" border="0" cellpadding="0" cellspacing="0">
-  <tr>
-   <td class="t" width="50%" valign="top" align="left">
-    <table width="100px" height="100px" border="0" cellpadding="0" cellspacing="0">
-     <tr><td class="lnav"><a class="nav" href="http://web.enlightenment.org/p.php?p=index">Home</a></td></tr>
-     <tr><td class="lnav"><a class="nav" href="http://web.enlightenment.org/p.php?p=news">News</a></td></tr>
-     <tr><td class="lnav"><a class="nav" href="http://web.enlightenment.org/p.php?p=about">About</a></td></tr>
-     <tr><td class="rnav"><a class="nav" href="http://web.enlightenment.org/p.php?p=download">Download</a></td></tr>
-    </table>
-   </td>
-   <td class="tl" width="612" height="250" valign="bottom" align="center">
-    <img src="images/_.gif" width="612" height="1"/>
-    <table border="0" cellpadding="0" cellspacing="4px">
-     <tr>
-      <td class='nav'><a class='nav' href="index.html">Main&nbsp;Page</a></td>
-      <td class="nav"><a class="nav" href="annotated.html">Data&nbsp;Structures</a></td>
-      <td class="nav"><a class="nav" href="classes.html">Index</a></td>
-     </tr>
-    </table>
-    <hr />
-   </td>
-   <td class="t" width="50%" valign="top" align="right">
-    <table width="100px" height="100px" border="0" cellpadding="0" cellspacing="0">
-     <tr><td class="rnav"><a class="nav" href="http://web.enlightenment.org/p.php?p=support">Support</a></td></tr>
-     <tr><td class="lnav"><a class="nav" href="http://web.enlightenment.org/p.php?p=contribute">Contribute</a></td></tr>
-     <tr><td class="lnav"><a class="nav" href="http://web.enlightenment.org/p.php?p=contact">Contact</a></td></tr>
-     <tr><td class="lnav"><a class="nav" href="http://trac.enlightenment.org/e">Tracker</a></td></tr>
-    </table>
-   </td>
-  </tr>
- </table>
-
- <div class="main">
diff --git a/doc/images/n.gif b/doc/images/n.gif
deleted file mode 100644 (file)
index 28608c4..0000000
Binary files a/doc/images/n.gif and /dev/null differ
diff --git a/doc/images/n.png b/doc/images/n.png
deleted file mode 100644 (file)
index 2bb256f..0000000
Binary files a/doc/images/n.png and /dev/null differ
diff --git a/doc/images/t.gif b/doc/images/t.gif
deleted file mode 100644 (file)
index cff3068..0000000
Binary files a/doc/images/t.gif and /dev/null differ
diff --git a/doc/images/t.png b/doc/images/t.png
deleted file mode 100644 (file)
index 06b6079..0000000
Binary files a/doc/images/t.png and /dev/null differ
diff --git a/doc/images/tl.gif b/doc/images/tl.gif
deleted file mode 100644 (file)
index 4455dbc..0000000
Binary files a/doc/images/tl.gif and /dev/null differ
diff --git a/doc/images/tl.png b/doc/images/tl.png
deleted file mode 100644 (file)
index 95ae5b6..0000000
Binary files a/doc/images/tl.png and /dev/null differ
diff --git a/enm.pc.in b/enm.pc.in
deleted file mode 100644 (file)
index 2247ced..0000000
--- a/enm.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: enotify
-Description: Network Manager convenience library
-Requires: ecore edbus
-Version: @VERSION@
-Libs: -L${libdir} -lenm
-Cflags: -I${includedir}
diff --git a/gendoc b/gendoc
deleted file mode 100755 (executable)
index 82948bd..0000000
--- a/gendoc
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-doxygen
-
-if [ ! -e doc/html/images ]; then
-    mkdir -p doc/html/images
-fi
-
-cp doc/images/*.png doc/images/*.gif doc/html/images
-
diff --git a/src/.cvsignore b/src/.cvsignore
deleted file mode 100644 (file)
index 282522d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/src/bin/.cvsignore b/src/bin/.cvsignore
deleted file mode 100644 (file)
index 9ee1dc8..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-.deps
-Makefile
-Makefile.in
-.libs
-e_dbus_hal
-e_dbus_test
-e_dbus_test_client
-e_dbus_nm
-e_dbus_notify
-e_dbus_notification_daemon
-e-notify-send
diff --git a/src/bin/hal.c b/src/bin/hal.c
deleted file mode 100644 (file)
index 215951c..0000000
+++ /dev/null
@@ -1,830 +0,0 @@
-#include "E_Hal.h"
-#include <config.h>
-
-#if EWL_GUI
-#include <Ewl.h>
-#include <Efreet.h>
-#endif
-
-#include <string.h>
-
-/* test app */
-
-static E_DBus_Connection *conn;
-#if EWL_GUI
-static int mount_id = 0;
-#endif
-
-#define DEVICE_TYPE_STORAGE 1
-#define DEVICE_TYPE_VOLUME  2
-typedef struct Device Device;
-struct Device {
-  int type;
-  char *udi;
-};
-
-typedef struct Storage Storage;
-struct Storage {
-  int type;
-  char *udi;
-  char *bus;
-  char *drive_type;
-
-  char *model;
-  char *vendor;
-  char *serial;
-
-  char removable;
-  char media_available;
-  unsigned long media_size;
-
-  char requires_eject;
-  char hotpluggable;
-  char media_check_enabled;
-
-  struct {
-    char *drive;
-    char *volume;
-  } icon;
-
-  Ecore_List *volumes;
-};
-
-
-typedef struct Volume Volume;
-struct Volume {
-  int type;
-  char *udi;
-  char *uuid;
-  char *label;
-  char *fstype;
-
-  char partition;
-  char *partition_label;
-  char mounted;
-  char *mount_point;
-
-  Storage *storage;
-};
-
-static Ecore_List *storage_devices;
-static Ecore_List *volumes;
-
-void
-devices_dirty(void)
-{
-#if EWL_GUI
-  Ewl_Widget *mvc;
-
-  mvc = ewl_widget_name_find("device_mvc");
-  ewl_mvc_dirty_set(EWL_MVC(mvc), 1);
-#endif
-}
-
-
-Storage *
-storage_new(void)
-{
-  Storage *s;
-  s = calloc(1, sizeof(Storage));
-  s->type = DEVICE_TYPE_STORAGE;
-  s->volumes = ecore_list_new();
-  return s;
-}
-
-void
-storage_free(Storage *storage)
-{
-  Volume *v;
-  printf("storage_free: %s\n", storage->udi);
-
-  /* disconnect storage from volume */
-  ecore_list_first_goto(storage->volumes);
-  while ((v = ecore_list_next(storage->volumes)))
-    v->storage = NULL;
-  ecore_list_destroy(storage->volumes);
-    
-  if (storage->udi) free(storage->udi);
-  if (storage->bus) free(storage->bus);
-  if (storage->drive_type) free(storage->drive_type);
-
-  if (storage->model) free(storage->model);
-  if (storage->vendor) free(storage->vendor);
-  if (storage->serial) free(storage->serial);
-  if (storage->icon.drive) free(storage->icon.drive);
-  if (storage->icon.volume) free(storage->icon.volume);
-
-  free(storage);
-}
-
-static int
-storage_find_helper(Storage *s, const char *udi)
-{
-  if (!s->udi) return -1;
-  return strcmp(s->udi, udi);
-}
-
-Storage *
-storage_find(const char *udi)
-{
-  Storage *s = NULL;
-  if (!udi) return NULL;
-  s = ecore_list_find(storage_devices, ECORE_COMPARE_CB(storage_find_helper), udi);
-  return s;
-}
-
-void
-storage_remove(const char *udi)
-{
-  if (storage_find(udi))
-  {
-    ecore_list_remove_destroy(storage_devices);
-    devices_dirty();
-  }
-}
-
-static void
-cb_storage_properties(void *data, void *reply_data, DBusError *error)
-{
-  Storage *s = data;
-  E_Hal_Properties *ret = reply_data;
-  int err = 0;
-
-  if (dbus_error_is_set(error)) 
-  {
-    // XXX handle...
-    dbus_error_free(error);
-    goto error;
-  }
-
-  s->bus = e_hal_property_string_get(ret, "storage.bus", &err);
-  if (err) goto error;
-  s->drive_type = e_hal_property_string_get(ret, "storage.drive_type", &err);
-  if (err) goto error;
-  s->model = e_hal_property_string_get(ret, "storage.model", &err);
-  if (err) goto error;
-  s->vendor = e_hal_property_string_get(ret, "storage.vendor", &err);
-  if (err) goto error;
-  s->serial = e_hal_property_string_get(ret, "storage.serial", &err);
-
-  s->removable = e_hal_property_bool_get(ret, "storage.removable", &err);
-  if (err) goto error;
-
-  if (s->removable)
-  {
-    s->media_available = e_hal_property_bool_get(ret, "storage.removable.media_available", &err);
-    s->media_size = e_hal_property_uint64_get(ret, "storage.removable.media_size", &err);
-  }
-
-  s->requires_eject = e_hal_property_bool_get(ret, "storage.requires_eject", &err);
-  s->hotpluggable = e_hal_property_bool_get(ret, "storage.hotpluggable", &err);
-  s->media_check_enabled = e_hal_property_bool_get(ret, "storage.media_check_enabled", &err);
-
-  s->icon.drive = e_hal_property_string_get(ret, "storage.icon.drive", &err);
-  s->icon.volume = e_hal_property_string_get(ret, "storage.icon.volume", &err);
-
-  devices_dirty();
-  /* now fetch the children (volumes?) */
-
-  //printf("Got storage:\n  udi: %s\n  bus: %s\n  drive_type: %s\n  model: %s\n  vendor: %s\n  serial: %s\n  icon.drive: %s\n  icon.volume: %s\n\n", s->udi, s->bus, s->drive_type, s->model, s->vendor, s->serial, s->icon.drive, s->icon.volume);
-  return;
-
-error:
-  storage_remove(s->udi);
-}
-
-Storage *
-storage_append(const char *udi)
-{
-  Storage *s;
-  if (!udi) return NULL;
-  s = storage_new();
-  s->udi = strdup(udi);
-  ecore_list_append(storage_devices, s);
-  e_hal_device_get_all_properties(conn, s->udi, cb_storage_properties, s);
-  devices_dirty();
-  return s;
-}
-
-Volume *
-volume_new(void)
-{
-  Volume *v;
-  v = calloc(1, sizeof(Volume));
-  v->type = DEVICE_TYPE_VOLUME;
-  return v;
-}
-
-void
-volume_free(Volume *volume)
-{
-  if (!volume) return;
-
-  /* disconnect volume from storage */
-  if (volume->storage)
-  {
-    if (ecore_list_goto(volume->storage->volumes, volume))
-      ecore_list_remove(volume->storage->volumes);
-  }
-
-  if (volume->udi) free(volume->udi);
-  if (volume->uuid) free(volume->uuid);
-  if (volume->label) free(volume->label);
-  if (volume->fstype) free(volume->fstype);
-  if (volume->partition_label) free(volume->partition_label);
-  if (volume->mount_point) free(volume->mount_point);
-
-  free(volume);
-}
-
-static int
-volume_find_helper(Volume *v, const char *udi)
-{
-  if (!v->udi) return -1;
-  return strcmp(v->udi, udi);
-}
-
-Volume *
-volume_find(const char *udi)
-{
-  if (!udi) return NULL;
-  return ecore_list_find(volumes, ECORE_COMPARE_CB(volume_find_helper), udi);
-}
-
-void
-volume_remove(const char *udi)
-{
-  if (volume_find(udi))
-  {
-    ecore_list_remove_destroy(volumes);
-    devices_dirty();
-  }
-}
-
-static void
-cb_volume_properties(void *data, void *reply_data, DBusError *error)
-{
-  Volume *v = data;
-  Storage *s = NULL;
-  E_Hal_Device_Get_All_Properties_Return *ret = reply_data;
-  int err = 0;
-  char *str = NULL;
-
-  if (dbus_error_is_set(error)) 
-  {
-    // XXX handle...
-    dbus_error_free(error);
-    goto error;
-  }
-
-  /* skip volumes with volume.ignore set */
-  if (e_hal_property_bool_get(ret, "volume.ignore", &err) || err)
-    goto error;
-
-  /* skip volumes that aren't filesystems */
-  str = e_hal_property_string_get(ret, "volume.fsusage", &err);
-  if (err || !str) goto error;
-  if (strcmp(str, "filesystem")) goto error;
-  free(str);
-  str = NULL;
-
-  v->uuid = e_hal_property_string_get(ret, "volume.uuid", &err);
-  if (err) goto error;
-
-  v->label = e_hal_property_string_get(ret, "volume.label", &err);
-  if (err) goto error;
-
-  v->fstype = e_hal_property_string_get(ret, "volume.fstype", &err);
-  if (err) goto error;
-
-  v->mounted = e_hal_property_bool_get(ret, "volume.is_mounted", &err);
-  if (err) goto error;
-
-  v->partition = e_hal_property_bool_get(ret, "volume.is_partition", &err);
-  if (err) goto error;
-
-  v->mount_point = e_hal_property_string_get(ret, "volume.mount_point", &err);
-  if (err) goto error;
-
-  if (v->partition)
-  {
-    v->partition_label = e_hal_property_string_get(ret, "volume.partition.label", &err);
-    if (err) goto error;
-  }
-
-  str = e_hal_property_string_get(ret, "info.parent", &err);
-  if (!err && str)
-  {
-    s = storage_find(str);
-    if (s)
-    {
-      v->storage = s;
-      ecore_list_append(s->volumes, v);
-    }
-    free(str);
-    str = NULL;
-  }
-  
-  //printf("Got volume\n  udi: %s\n  uuid: %s\n  fstype: %s\n  label: %s\n  partition: %d\n  partition_label: %s\n  mounted: %d\n  mount_point: %s\n\n", v->udi, v->uuid, v->fstype,  v->label, v->partition, v->partition ? v->partition_label : "(not a partition)", v->mounted, v->mount_point);
-  //if (s) printf("  for storage: %s\n", s->udi);
-  //else printf("  storage unknown\n");
-
-  devices_dirty();
-  return;
-
-error:
-  if (str) free(str);
-  volume_remove(v->udi);
-  return;
-  
-}
-
-void
-volume_setup(Volume *v)
-{
-  e_hal_device_get_all_properties(conn, v->udi, cb_volume_properties, v);
-}
-
-Volume *
-volume_append(const char *udi)
-{
-  Volume *v;
-  if (!udi) return NULL;
-  printf("ADDING %s\n", udi);
-  v = volume_new();
-  v->udi = strdup(udi);
-  ecore_list_append(volumes, v);
-  volume_setup(v);
-
-  //this will get called when volume_setup() returns, which is more important
-  //devices_dirty();
-
-  return v;
-}
-
-static void
-cb_test_get_all_devices(void *user_data, void *reply_data, DBusError *error)
-{
-  E_Hal_Manager_Get_All_Devices_Return *ret = reply_data;
-  char *device;
-  
-  if (!ret || !ret->strings) return;
-
-  if (dbus_error_is_set(error)) 
-  {
-    // XXX handle...
-    dbus_error_free(error);
-    return;
-  }
-
-  ecore_list_first_goto(ret->strings);
-  while ((device = ecore_list_next(ret->strings)))
-  {
-    printf("device: %s\n", device);
-  }
-}
-
-static void
-cb_test_find_device_by_capability_storage(void *user_data, void *reply_data, DBusError *error)
-{
-  E_Hal_Manager_Find_Device_By_Capability_Return *ret = reply_data;
-  char *device;
-  
-  if (!ret || !ret->strings) return;
-
-  if (dbus_error_is_set(error)) 
-  {
-    // XXX handle...
-    dbus_error_free(error);
-    return;
-  }
-
-  ecore_list_first_goto(ret->strings);
-  while ((device = ecore_list_next(ret->strings)))
-    storage_append(device);
-}
-
-static void
-cb_test_find_device_by_capability_volume(void *user_data, void *reply_data, DBusError *error)
-{
-  E_Hal_Manager_Find_Device_By_Capability_Return *ret = reply_data;
-  char *device;
-  
-  if (!ret || !ret->strings) return;
-
-  if (dbus_error_is_set(error)) 
-  {
-    // XXX handle...
-    dbus_error_free(error);
-    return;
-  }
-
-  ecore_list_first_goto(ret->strings);
-  while ((device = ecore_list_next(ret->strings)))
-    volume_append(device);
-}
-
-static void
-cb_is_storage(void *user_data, void *reply_data, DBusError *error)
-{
-  char *udi = user_data;
-  E_Hal_Device_Query_Capability_Return *ret = reply_data;
-
-  if (dbus_error_is_set(error)) 
-  {
-    // XXX handle...
-    dbus_error_free(error);
-    goto error;
-  }
-
-  if (ret && ret->boolean)
-    storage_append(udi);
-
-error:
-  free(udi);
-}
-
-static void
-cb_is_volume(void *user_data, void *reply_data, DBusError *error)
-{
-  char *udi = user_data;
-  E_Hal_Device_Query_Capability_Return *ret = reply_data;
-
-  if (dbus_error_is_set(error)) 
-  {
-    // XXX handle...
-    dbus_error_free(error);
-    goto error;
-  }
-
-  if (ret && ret->boolean)
-    volume_append(udi);
-
-error:
-  free(udi);
-}
-
-static void
-cb_signal_device_added(void *data, DBusMessage *msg)
-{
-  DBusError err;
-  char *udi;
-  int ret;
-
-  dbus_error_init(&err);
-  dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &udi, DBUS_TYPE_INVALID);
-  udi = strdup(udi);
-  printf("Device added: %s\n", udi); 
-  ret = e_hal_device_query_capability(conn, udi, "storage", cb_is_storage, strdup(udi));
-  e_hal_device_query_capability(conn, udi, "volume", cb_is_volume, strdup(udi));
-}
-
-void
-cb_signal_device_removed(void *data, DBusMessage *msg)
-{
-  DBusError err;
-  char *udi;
-
-  dbus_error_init(&err);
-
-  dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &udi, DBUS_TYPE_INVALID);
-  printf("Removed: %s\n", udi);
-  storage_remove(udi);
-  volume_remove(udi);
-}
-
-void
-cb_signal_new_capability(void *data, DBusMessage *msg)
-{
-  DBusError err;
-  char *udi, *capability;
-
-  dbus_error_init(&err);
-
-  dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &udi, DBUS_TYPE_STRING, &capability, DBUS_TYPE_INVALID);
-  if (!strcmp(capability, "storage"))
-    storage_append(udi);
-
-}
-
-/*** gui ***/
-
-#if EWL_GUI
-static void
-cb_window_destroy(Ewl_Widget *w, void *ev, void *data)
-{
-  ewl_main_quit();
-}
-
-static void
-cb_window_close(Ewl_Widget *w, void *ev, void *data)
-{
-  ewl_widget_destroy(w);
-}
-
-static void
-cb_volume_unmounted(void *user_data, void *method_return, DBusError *error)
-{
-  Volume *vol = user_data;
-  vol->mounted = 0;
-  printf("Volume unmounted reply: %s\n", vol->udi);
-}
-
-static void
-cb_volume_mounted(void *user_data, void *method_return, DBusError *error)
-{
-  Volume *vol = user_data;
-  vol->mounted = 1;
-  printf("Volume mounted reply: %s\n", vol->udi);
-}
-
-static void
-cb_device_view_clicked(Ewl_Widget *w, void *ev, void *data)
-{
-  Device *dev = data;
-  char buf[4096];
-
-  printf("Device clicked: %s\n", dev->udi);
-  if (dev->type == DEVICE_TYPE_VOLUME)
-  {
-    Volume *vol = (Volume *)dev;
-    if (vol->mounted)
-    {
-      e_hal_device_volume_unmount(conn, vol->udi, NULL, cb_volume_unmounted, vol);
-    }
-    else
-    {
-      char *mount_point;
-#if 0
-      if (vol->mount_point && vol->mount_point[0])
-        mount_point = vol->mount_point;
-#endif
-      if (vol->label && vol->label[0])
-        mount_point = vol->label;
-      else if (vol->uuid && vol->uuid[0])
-        mount_point = vol->uuid;
-      else
-      {
-        // XXX need to check this...
-        snprintf(buf, sizeof(buf), "%d\n", mount_id++);
-        mount_point = buf;
-      }
-
-      printf("Attempting to mount %s to %s\n", vol->udi, mount_point);
-      e_hal_device_volume_mount(conn, vol->udi, mount_point, vol->fstype, NULL, cb_volume_mounted, vol);
-    }
-  }
-}
-
-
-static Ewl_Widget *
-cb_device_view_constructor(void)
-{
-  Ewl_Widget *icon;
-
-  icon = ewl_icon_simple_new();
-  ewl_box_orientation_set(EWL_BOX(icon), EWL_ORIENTATION_HORIZONTAL);
-  return icon;
-}
-
-static void
-device_view_device_set(Ewl_Icon *icon, Device *dev)
-{
-  char buf[500];
-  const char *path;
-  const char *icon_name = NULL;
-
-  if (dev->type == DEVICE_TYPE_STORAGE)
-  {
-    Storage *s = (Storage *)dev;
-
-    if (s->icon.drive && s->icon.drive[0])
-      icon_name = s->icon.drive;
-
-    snprintf(buf, sizeof(buf), "%s", (s->model && s->model[0]) ? s->model : "Unknown drive");
-  }
-  else if (dev->type == DEVICE_TYPE_VOLUME)
-  {
-    Volume *v = (Volume *)dev;
-    if (v->storage && v->storage->icon.volume && v->storage->icon.volume[0])
-      icon_name = v->storage->icon.volume;
-    snprintf(buf, sizeof(buf), "%s (%s)", (v->label && v->label[0]) ? v->label : "Unlabeled Volume", v->fstype ? v->fstype : "Unknown");
-  }
-  else
-  {
-    fprintf(stderr, "Invalid device type.");
-    buf[0] = 0;
-  }
-
-  ewl_icon_label_set(icon, buf);
-  if (icon_name)
-  {
-    //printf("find icon path: %s\n", icon_name);
-    path = efreet_icon_path_find("Tango", icon_name, 32);
-    //printf("found: %s\n", path);
-    if (path)
-    {
-      ewl_icon_image_set(icon, path, NULL);
-      free(path);
-    }
-  }
-  ewl_callback_append(EWL_WIDGET(icon), EWL_CALLBACK_CLICKED, cb_device_view_clicked, dev);
-
-}
-
-static void
-cb_device_view_assign(Ewl_Widget *w, void *data)
-{
-  Device *dev = data;
-  device_view_device_set(EWL_ICON(w), dev);
-}
-
-static Ewl_Widget *
-cb_device_view_header_fetch(void *data, int column)
-{
-  Ewl_Widget *label;
-
-  label = ewl_label_new();
-  ewl_label_text_set(EWL_LABEL(label), "Device");
-  ewl_widget_show(label);
-  return label;
-}
-
-static int
-cb_device_tree_expandable_get(void *data, unsigned int row)
-{
-  Ecore_List *devices;
-  Device *dev;
-
-  devices = data;
-  if (!devices) return FALSE;
-
-  dev = ecore_list_index_goto(devices, row);
-  if (!dev) return FALSE;
-
-  if (dev->type == DEVICE_TYPE_STORAGE)
-  {
-    Storage *s = (Storage *)dev;
-    if (ecore_list_count(s->volumes) > 0)
-      return TRUE;
-  }
-
-  return FALSE;
-}
-
-static void *
-cb_device_tree_expansion_data_fetch(void *data, unsigned int parent)
-{
-  Ecore_List *devices;
-  Device *dev;
-  Storage *s;
-  dev = data;
-
-  devices = data;
-  if (!devices) return NULL;
-
-  dev = ecore_list_index_goto(devices, parent);
-  
-  if (!dev) return NULL;
-  if (dev->type != DEVICE_TYPE_STORAGE) return NULL;
-  s = (Storage *)dev;
-  return s->volumes;
-}
-
-#if 0
-Ewl_Widget *
-mountbox_list_new(void)
-{
-  Ewl_Widget *list;
-  Ewl_Model *model;
-  Ewl_View *view;
-
-  model = ewl_model_ecore_list_get();
-
-  view = ewl_view_new();
-  ewl_view_constructor_set(view, cb_device_view_constructor);
-  ewl_view_assign_set(view, EWL_VIEW_ASSIGN(cb_device_view_assign));
-
-  list = ewl_list_new();
-  ewl_mvc_model_set(EWL_MVC(list), model);
-  ewl_mvc_view_set(EWL_MVC(list), view);
-  ewl_mvc_data_set(EWL_MVC(list), volumes);
-
-  ewl_widget_name_set(list, "volume_mvc");
-
-  return list;
-}
-#endif
-
-Ewl_Widget *
-mountbox_tree_new(void)
-{
-  Ewl_Widget *tree;
-  Ewl_Model *model;
-  Ewl_View *view;
-
-  model = ewl_model_ecore_list_get();
-  ewl_model_expandable_set(model, cb_device_tree_expandable_get);
-  ewl_model_expansion_data_fetch_set(model, cb_device_tree_expansion_data_fetch);
-
-  view = ewl_view_new();
-  ewl_view_constructor_set(view, cb_device_view_constructor);
-  ewl_view_assign_set(view, EWL_VIEW_ASSIGN(cb_device_view_assign));
-  ewl_view_header_fetch_set(view, cb_device_view_header_fetch);
-
-  tree = ewl_tree2_new();
-  ewl_mvc_model_set(EWL_MVC(tree), model);
-  ewl_mvc_data_set(EWL_MVC(tree), storage_devices);
-  ewl_tree2_column_append(EWL_TREE2(tree), view, FALSE);
-
-  ewl_widget_name_set(tree, "device_mvc");
-
-  return tree;
-}
-
-Ewl_Widget *
-mountbox_mainwin_new(void)
-{
-  Ewl_Widget *win, *box, *list;
-  win = ewl_window_new();
-  ewl_window_title_set(EWL_WINDOW(win), "EWL Mountbox");
-  ewl_window_class_set(EWL_WINDOW(win), "ewl_mountbox");
-  ewl_window_name_set(EWL_WINDOW(win), "ewl_mountbox");
-
-  ewl_object_fill_policy_set(EWL_OBJECT(win), EWL_FLAG_FILL_ALL);
-  ewl_object_size_request(EWL_OBJECT(win), 400, 400);
-
-  ewl_callback_append(win, EWL_CALLBACK_DELETE_WINDOW, cb_window_close, NULL);
-  ewl_callback_append(win, EWL_CALLBACK_DESTROY, cb_window_destroy, NULL);
-
-  box = ewl_vbox_new();
-  ewl_container_child_append(EWL_CONTAINER(win), box);
-  ewl_widget_show(box);
-
-  list = mountbox_tree_new();
-  ewl_container_child_append(EWL_CONTAINER(box), list);
-  ewl_widget_show(list);
-
-  return win;
-}
-#endif
-int 
-main(int argc, char **argv)
-{
-#if EWL_GUI
-  Ewl_Widget *win;
-#endif
-
-  ecore_init();
-  ecore_string_init();
-  e_dbus_init();
-
-#if EWL_GUI
-  efreet_init();
-  if (!ewl_init(&argc, argv))
-  {
-    fprintf(stderr, "Unable to init EWL.\n");
-    return 1;
-  }
-#endif
-
-  conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-  if (!conn)
-  {
-    printf("Error connecting to system bus. Is it running?\n");
-    return 1;
-  }
-
-  storage_devices = ecore_list_new();
-  ecore_list_free_cb_set(storage_devices, ECORE_FREE_CB(storage_free));
-  volumes = ecore_list_new();
-  ecore_list_free_cb_set(volumes, ECORE_FREE_CB(volume_free));
-
-#if EWL_GUI
-  win = mountbox_mainwin_new();
-  ewl_widget_show(win);
-#endif
-
-  e_hal_manager_get_all_devices(conn, cb_test_get_all_devices, NULL);
-  e_hal_manager_find_device_by_capability(conn, "storage", cb_test_find_device_by_capability_storage, NULL);
-  e_hal_manager_find_device_by_capability(conn, "volume", cb_test_find_device_by_capability_volume, NULL);
-  
-  e_dbus_signal_handler_add(conn, "org.freedesktop.Hal", "/org/freedesktop/Hal/Manager", "org.freedesktop.Hal.Manager", "DeviceAdded", cb_signal_device_added, NULL);
-  e_dbus_signal_handler_add(conn, "org.freedesktop.Hal", "/org/freedesktop/Hal/Manager", "org.freedesktop.Hal.Manager", "DeviceRemoved", cb_signal_device_removed, NULL);
-  e_dbus_signal_handler_add(conn, "org.freedesktop.Hal", "/org/freedesktop/Hal/Manager", "org.freedesktop.Hal.Manager", "NewCapability", cb_signal_new_capability, NULL);
-
-#if EWL_GUI
-  ewl_main();
-  efreet_shutdown();
-  ewl_shutdown();
-#else
-  ecore_main_loop_begin();
-#endif
-  ecore_list_destroy(storage_devices);
-  ecore_list_destroy(volumes);
-  e_dbus_connection_close(conn);
-  e_dbus_shutdown();
-  ecore_string_shutdown();
-  ecore_shutdown();
-  return 1;
-}
diff --git a/src/bin/nm.c b/src/bin/nm.c
deleted file mode 100644 (file)
index 5ff90ec..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-#include <E_Nm.h>
-#include <Ecore_Data.h>
-#include <dbus/dbus.h>
-
-#define E_NM_DEVICE_TYPE_WIRED 1
-#define E_NM_DEVICE_TYPE_WIRELESS 2
-
-typedef struct NM_Manager NM_Manager;
-struct NM_Manager
-{
-  E_NM_Context *ctx;
-  Ecore_List *devices;
-};
-
-void
-cb_manager_get_udi(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    char *udi;
-
-    if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-
-    dbus_message_iter_init(reply, &iter);
-       dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &udi);
-
-    printf("Got udi: %s\n", udi);
-}
-
-void
-cb_manager_get_interface(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    char *interface;
-
-    if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-
-    dbus_message_iter_init(reply, &iter);
-    dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &interface);
-
-    printf("Got interface: %s\n", interface);
-}
-
-void
-cb_manager_get_driver(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    char *driver;
-
-    if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-
-    dbus_message_iter_init(reply, &iter);
-    dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &driver);
-
-    printf("Got driver: %s\n", driver);
-}
-
-void
-cb_manager_get_capabilities(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    dbus_uint32_t caps;
-
-    if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-
-    dbus_message_iter_init(reply, &iter);
-    dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &caps);
-
-    printf("Got capabilities: %i\n", caps);
-}
-
-void
-cb_manager_get_ip4address(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    dbus_int32_t ip;
-
-    if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-
-    dbus_message_iter_init(reply, &iter);
-    dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &ip);
-
-    printf("Got IPv4 address: %i.%i.%i.%i\n",
-          (ip       & 0xff),
-          ((ip >> 8 ) & 0xff),
-          ((ip >> 16) & 0xff),
-          ((ip >> 24) & 0xff)
-          );
-}
-
-void
-cb_manager_get_state(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    dbus_uint32_t state;
-
-    if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-
-    dbus_message_iter_init(reply, &iter);
-    dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &state);
-
-    printf("Got state: %i\n", state);
-}
-
-void
-cb_manager_get_ip4config(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    char *ip4config;
-
-    if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-
-    dbus_message_iter_init(reply, &iter);
-    dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &ip4config);
-
-    printf("Got IPv4 config path: %s\n", ip4config);
-}
-
-void
-cb_manager_get_carrier(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    dbus_uint32_t carrier;
-
-   if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-
-    dbus_message_iter_init(reply, &iter);
-    dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &carrier);
-
-    printf("Got carrier: %i\n", carrier);
-}
-
-void
-cb_manager_get_type(void *data, void *reply, DBusError *err)
-{
-    DBusMessageIter iter, sub;
-    dbus_uint32_t type;
-
-    if (dbus_error_is_set(err))
-      {
-        printf("Error: %s - %s\n" ,err->name, err->message);
-        return;
-      }
-
-    dbus_message_iter_init(reply, &iter);
-    dbus_message_iter_recurse(&iter, &sub);
-    dbus_message_iter_get_basic(&sub, &type);
-
-    printf("Got type: %i (1 = ethernet, 2 = wireless)\n", type);
-}
-
-void
-cb_manager_get_devices(void *data, void *reply, DBusError *err)
-{
-   NM_Manager *app = data;
-   const char *dev;
-
-   if (dbus_error_is_set(err))
-     {
-       printf("Error: %s - %s\n" ,err->name, err->message);
-       return;
-     }
-   
-   app->devices = reply;
-   ecore_list_first_goto(app->devices);
-   printf("Got devices:\n");
-   while ((dev = ecore_list_next(app->devices)))
-     {
-       printf("%s\n", dev);
-        e_nm_device_get_udi(app->ctx, dev, cb_manager_get_udi, app);
-       e_nm_device_get_interface(app->ctx, dev, cb_manager_get_interface, app);
-       e_nm_device_get_driver(app->ctx, dev, cb_manager_get_driver, app);
-       e_nm_device_get_capabilities(app->ctx, dev, cb_manager_get_capabilities, app);
-       e_nm_device_get_ip4address(app->ctx, dev, cb_manager_get_ip4address, app);
-       e_nm_device_get_state(app->ctx, dev, cb_manager_get_state, app);
-       /* FIXME: Getting the ip4config needs fixing */
-       //e_nm_device_get_ip4config(app->ctx, dev, cb_manager_get_ip4config, app);
-       e_nm_device_get_carrier(app->ctx, dev, cb_manager_get_carrier, app);
-       e_nm_device_get_type(app->ctx, dev, cb_manager_get_type, app);
-     }
-}
-
-int 
-main(int argc, char **argv)
-{
-   NM_Manager *app;
-   ecore_init();
-   ecore_string_init();
-   e_dbus_init();
-   
-   app = calloc(1, sizeof(NM_Manager));
-   
-   app->ctx = e_nm_new();
-   if (!app->ctx)
-     {
-       printf("Error connecting to system bus. Is it running?\n");
-       return 1;
-     }
-   
-   e_nm_get_devices(app->ctx, cb_manager_get_devices, app);
-   
-   ecore_main_loop_begin();
-   
-   e_nm_free(app->ctx);
-   free(app);
-   e_dbus_shutdown();
-   ecore_string_shutdown();
-   ecore_shutdown();
-   return 0;
-}
diff --git a/src/lib/.cvsignore b/src/lib/.cvsignore
deleted file mode 100644 (file)
index e995588..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.deps
-Makefile
-Makefile.in
diff --git a/src/lib/dbus/.cvsignore b/src/lib/dbus/.cvsignore
deleted file mode 100644 (file)
index e49f9e1..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.deps
-Makefile
-Makefile.in
-.libs
-e_dbus.lo
-e_dbus_interfaces.lo
-e_dbus_message.lo
-e_dbus_methods.lo
-e_dbus_object.lo
-e_dbus_signal.lo
-e_dbus_util.lo
-libedbus.la
diff --git a/src/lib/hal/.cvsignore b/src/lib/hal/.cvsignore
deleted file mode 100644 (file)
index 07d6b3d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-.deps
-Makefile
-Makefile.in
-.libs
-e_hal_device.lo
-e_hal_manager.lo
-e_hal_util.lo
-libehal.la
diff --git a/src/lib/nm/.cvsignore b/src/lib/nm/.cvsignore
deleted file mode 100644 (file)
index 09980ae..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-*.lo
-*.la
diff --git a/src/lib/nm/E_Nm.h b/src/lib/nm/E_Nm.h
deleted file mode 100644 (file)
index 46d637d..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-#ifndef E_NM_H
-#define E_NM_H
-
-#include <E_DBus.h>
-#include <Ecore_Data.h>
-
-#ifdef EAPI
-#undef EAPI
-#endif
-#ifdef _MSC_VER
-# ifdef BUILDING_DLL
-#  define EAPI __declspec(dllexport)
-# else
-#  define EAPI __declspec(dllimport)
-# endif
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
-#  else
-#   define EAPI
-#  endif
-# else
-#  define EAPI
-# endif
-#endif
-
-typedef struct E_NM_Context E_NM_Context;
-
-/**
- * Matching structs for the new "object" based DBus API
- * VPN is missing as this was still missing the redesign for the new 0.7 API
- */
-typedef struct E_NM_Device E_NM_Device;
-struct E_NM_Device
-{
-  char *udi; /* object_path */
-  char *interface;
-  char *driver;
-  uint capabilities;
-  int  ip4address;
-  uint state;
-  char *ip4config; /* object_path */
-  int  carrier;
-  uint type;
-};
-
-typedef struct E_NM_Device_Wireless E_NM_Device_Wireless;
-struct E_NM_Device_Wireless
-{
-  char *hwaddress;
-  int   mode;
-  uint bitrate;
-  char *activeaccesspoint; /* object_path */
-  uint wirelesscapabilities;
-};
-
-typedef struct E_NM_Device_Wired E_NM_Device_Wired;
-struct E_NM_Device_Wired
-{
-  char *hwaddress;
-  uint speed;
-};
-
-typedef struct E_NM_Access_Point E_NM_Access_Point;
-struct E_NM_Access_Point
-{
-  uint flags;
-  uint wpaflags;
-  uint rsnflags;
-  char *ssid;
-  uint frequency;
-  char *hwaddress;
-  int  mode;
-  uint rate;
-  uint strength;
-};
-
-typedef struct E_NM_IP4Config E_NM_IP4Config;
-struct E_NM_IP4Config
-{
-  uint address;
-  uint gateway;
-  uint netmask;
-  uint broadcast;
-  char *hostname;
-  Ecore_List *nameserver;  /* uints */
-  Ecore_List *domains; /* char* */
-  char *nisdomain;
-  Ecore_List *nisserver; /* uints */
-};
-
-typedef struct E_NM_Manager E_NM_Manager;
-struct E_NM_Manager
-{
-  int wirelessenabled; /* writeable*/
-  int wirelesshardwareenabled;
-  uint state;
-};
-
-typedef void (*E_NM_Cb_Manager_State_Change) (void *data, int state);
-typedef void (*E_NM_Cb_Manager_Device_Added) (void *data, const char *device);
-typedef void (*E_NM_Cb_Manager_Device_Removed) (void *data, const char *device);
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-   EAPI E_NM_Context *e_nm_new(void);
-   EAPI void          e_nm_free(E_NM_Context *ctx);
-
-
-/**
- * A callback function for a Network Manager call
- * @param user_data the data passed in to the method call
- * @param event_data a struct containing the return data.
- *
- * For method calls, the return structs use the following naming convention:
- *   E_NM_<Interface>_<Method_Call_Name>_Return
- */
-
-/* org.freedesktop.NetworkManager api */
-/* methods */
-   EAPI int e_nm_get_devices(E_NM_Context *ctx, E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_get_active_device(E_NM_Context *ctx, E_DBus_Callback_Func cb_func, void *data);
-/* TODO: EAPI int e_nm_set_active_device() */
-   EAPI int e_nm_status(E_NM_Context *ctx, E_DBus_Callback_Func cb_func, void *data);
-/* signals */
-/* TODO: These have changed! */
-   /* deprecated */EAPI void e_nm_callback_manager_state_change_set(E_NM_Context *ctx, E_NM_Cb_Manager_State_Change cb_func, void *user_data);
-   /* deprecated */EAPI void e_nm_callback_manager_device_added_set(E_NM_Context *ctx, E_NM_Cb_Manager_Device_Added cb_func, void *user_data);
-   /* deprecated */EAPI void e_nm_callback_manager_device_removed_set(E_NM_Context *ctx, E_NM_Cb_Manager_Device_Removed cb_func, void *user_data);
-/* TODO: EAPI void e_nm_callback_device_no_longer_active() */
-/* TODO: EAPI void e_nm_callback_device_now_active() */
-/* TODO: EAPI void e_nm_callback_device_activating() */
-/* TODO: EAPI void e_nm_callback_devices_changed() */
-/* TODO: EAPI void e_nm_callback_device_activation_failed() */
-/* TODO: EAPI void e_nm_callback_device_strength_changed() */
-/* TODO: EAPI void e_nm_callback_device_ipv4_address_changed() */
-/* TODO: EAPI void e_nm_callback_wireless_network_appeared() */
-/* TODO: EAPI void e_nm_callback_wireless_network_disappeared() */
-
-
-/* org.freedesktop.NetworkManager.Device api */
-   EAPI int e_nm_device_get_udi(E_NM_Context *ctx, const char *device,
-                                E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_device_get_interface(E_NM_Context *ctx, const char *device,
-                                      E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_device_get_driver(E_NM_Context *ctx, const char *device,
-                                   E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_device_get_capabilities(E_NM_Context *ctx, const char *device,
-                                         E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_device_get_ip4address(E_NM_Context *ctx, const char *device,
-                                       E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_device_get_state(E_NM_Context *ctx, const char *device,
-                                  E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_device_get_ip4config(E_NM_Context *ctx, const char *device,
-                                      E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_device_get_carrier(E_NM_Context *ctx, const char *device,
-                                    E_DBus_Callback_Func cb_func, void *data);
-   EAPI int e_nm_device_get_type(E_NM_Context *ctx, const char *device,
-                                 E_DBus_Callback_Func cb_func, void *data);
-
-/* org.freedesktop.NetworkManager.Devices api */
-/* TODO: EAPI int e_nm_network_get_name() */
-/* TODO: EAPI int e_nm_network_get_address() */
-/* TODO: EAPI int e_nm_network_get_strength() */
-/* TODO: EAPI int e_nm_network_get_frequency() */
-/* TODO: EAPI int e_nm_network_get_rate() */
-/* TODO: EAPI int e_nm_network_get_encrypted() */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/src/lib/nm/Makefile.am b/src/lib/nm/Makefile.am
deleted file mode 100644 (file)
index dc2ff55..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-MAINTAINERCLEANFILES = Makefile.in
-
-AM_CPPFLAGS = \
--I $(top_srcdir)/src/lib/dbus \
-@EDBUS_CFLAGS@
-
-if BUILD_ENM
-
-lib_LTLIBRARIES = libenm.la
-include_HEADERS = E_Nm.h
-
-libenm_la_SOURCES = \
-e_nm_private.h \
-e_nm.c \
-e_nm_manager.c \
-e_nm_device.c \
-e_nm_network.c \
-e_nm_util.c
-
-
-libenm_la_LIBADD = \
-@EDBUS_LIBS@ \
-$(top_builddir)/src/lib/dbus/libedbus.la
-libenm_la_LDFLAGS      = -version-info @version_info@
-
-
-libenm_la_DEPENDENCIES = \
-$(top_builddir)/src/lib/dbus/libedbus.la
-
-endif
diff --git a/src/lib/nm/README b/src/lib/nm/README
deleted file mode 100644 (file)
index e4b566f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-This depends on NetworkManager 0.7, which was unrealeased as of 2007-03-20.
-It is only a start, and can't really be finished until the NetworkManagerInfo interface is reworked. So, for now, ignore it :)
diff --git a/src/lib/nm/e_nm.c b/src/lib/nm/e_nm.c
deleted file mode 100644 (file)
index 82da6f1..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#include "E_Nm.h"
-#include "e_nm_private.h"
-
-EAPI E_NM_Context *
-e_nm_new(void)
-{
-  E_NM_Context *ctx;
-
-  ctx = calloc(1, sizeof(E_NM_Context));
-  if (!ctx) return NULL;
-
-  ctx->conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-  if (!ctx->conn)
-    goto error;
-
-  return ctx;
-
-error:
-  free(ctx);
-  return NULL;
-
-}
-
-EAPI void
-e_nm_free(E_NM_Context *ctx)
-{
-  e_dbus_connection_close(ctx->conn);
-  free(ctx);
-}
-
-static void
-cb_signal_manager_state_change(void *data, DBusMessage *msg)
-{
-  E_NM_Context *ctx;
-  dbus_uint32_t state;
-  DBusError err;
-  if (!msg || !data) return;
-
-  ctx = data;
-  dbus_error_init(&err);
-  dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &state, DBUS_TYPE_INVALID);
-  if (dbus_error_is_set(&err))
-  {
-    printf("Error: %s - %s\n", err.name, err.message);
-    return;
-  }
-
-  if (ctx->cb_manager_state_change)
-    ctx->cb_manager_state_change(ctx->data_manager_state_change, (int)state);
-}
-
-static void
-cb_signal_manager_device_added(void *data, DBusMessage *msg)
-{
-  E_NM_Context *ctx;
-  const char *device;
-  DBusError err;
-  if (!msg || !data) return;
-
-  ctx = data;
-  dbus_error_init(&err);
-  dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &device, DBUS_TYPE_INVALID);
-  if (dbus_error_is_set(&err))
-  {
-    printf("Error: %s - %s\n", err.name, err.message);
-    return;
-  }
-
-  if (ctx->cb_manager_device_added)
-    ctx->cb_manager_device_added(ctx->data_manager_device_added, device);
-}
-
-static void
-cb_signal_manager_device_removed(void *data, DBusMessage *msg)
-{
-  E_NM_Context *ctx;
-  const char *device;
-  DBusError err;
-  if (!msg || !data) return;
-
-  ctx = data;
-  dbus_error_init(&err);
-  dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &device, DBUS_TYPE_INVALID);
-  if (dbus_error_is_set(&err))
-  {
-    printf("Error: %s - %s\n", err.name, err.message);
-    return;
-  }
-
-  if (ctx->cb_manager_device_removed)
-    ctx->cb_manager_device_removed(ctx->data_manager_device_removed, device);
-}
-
-
-EAPI void
-e_nm_callback_manager_state_change_set(E_NM_Context *ctx, E_NM_Cb_Manager_State_Change cb_func, void *user_data)
-{
-  ctx->cb_manager_state_change = cb_func;
-  ctx->data_manager_state_change = user_data;
-
-  e_dbus_signal_handler_add(ctx->conn, E_NM_SERVICE, E_NM_PATH_NETWORK_MANAGER, E_NM_INTERFACE_NETWORK_MANAGER, "StateChange", cb_signal_manager_state_change, ctx);
-}
-
-EAPI void
-e_nm_callback_manager_device_added_set(E_NM_Context *ctx, E_NM_Cb_Manager_Device_Added cb_func, void *user_data)
-{
-  ctx->cb_manager_device_added = cb_func;
-  ctx->data_manager_device_added = user_data;
-
-  e_dbus_signal_handler_add(ctx->conn, E_NM_SERVICE, E_NM_PATH_NETWORK_MANAGER, E_NM_INTERFACE_NETWORK_MANAGER, "DeviceAdded", cb_signal_manager_device_added, ctx);
-}
-
-EAPI void
-e_nm_callback_manager_device_removed_set(E_NM_Context *ctx, E_NM_Cb_Manager_Device_Removed cb_func, void *user_data)
-{
-  ctx->cb_manager_device_removed = cb_func;
-  ctx->data_manager_device_removed = user_data;
-
-  e_dbus_signal_handler_add(ctx->conn, E_NM_SERVICE, E_NM_PATH_NETWORK_MANAGER, E_NM_INTERFACE_NETWORK_MANAGER, "DeviceRemoved", cb_signal_manager_device_removed, ctx);
-}
diff --git a/src/lib/nm/e_nm_device.c b/src/lib/nm/e_nm_device.c
deleted file mode 100644 (file)
index 1af65e0..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * This file defines functions that query each of the functions provided by
- * the org.freedesktop.NetworkManager.Device DBus interface.
- */
-
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include <Ecore_Data.h>
-
-
-/**
- * Get the UDI of a NetworkManager device
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_udi(E_NM_Context *ctx, const char *device,
-                    E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "Udi", cb_func, data);
-}
-
-
-/**
- * Get the interface name of a NetworkManager device
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_interface(E_NM_Context *ctx, const char *device,
-                          E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "Interface", cb_func, data);
-}
-
-
-/**
- * Get the driver name of a NetworkManager device
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_driver(E_NM_Context *ctx, const char *device,
-                       E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "Driver", cb_func, data);
-}
-
-
-/**
- * Get the capabilities of a NetworkManager device
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_capabilities(E_NM_Context *ctx, const char *device,
-                             E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "Capabilities", cb_func, data);
-}
-
-
-/**
- * Get the IPv4 address of a NetworkManager device
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_ip4address(E_NM_Context *ctx, const char *device,
-                           E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "Ip4Address", cb_func, data);
-}
-
-
-/**
- * Get the state of a NetworkManager device
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_state(E_NM_Context *ctx, const char *device,
-                      E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "State", cb_func, data);
-}
-
-
-/**
- * Get the IPv4 config object path of a NetworkManager device
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_ip4config(E_NM_Context *ctx, const char *device,
-                          E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "Ip4Config", cb_func, data);
-}
-
-
-/**
- * Get the carrier status of a NetworkManager device
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_carrier(E_NM_Context *ctx, const char *device,
-                        E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "Carrier", cb_func, data);
-}
-
-
-/**
- * Return the type of a an NM device:
- *
- * 0: unknown
- * 1: wired
- * 2: wireless
- *
- * @param ctx an e_nm context
- * @param device a NetworkManager device to communicate with
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- */
-EAPI int
-e_nm_device_get_type(E_NM_Context *ctx, const char *device, 
-                     E_DBus_Callback_Func cb_func, void *data)
-{
-  /* FIXME: Decide how to handle the return value for this functions */
-  e_nm_device_properties_get(ctx->conn, device, "DeviceType", cb_func, data);
-}
diff --git a/src/lib/nm/e_nm_manager.c b/src/lib/nm/e_nm_manager.c
deleted file mode 100644 (file)
index 265249e..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "E_Nm.h"
-#include "e_nm_private.h"
-
-
-/**
- * Get all network devices.
- *
- * Returns an Ecore_List of dbus object paths for network devices. This list is
- * of const char *, and is freed automatically after the callback returns.
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-EAPI int
-e_nm_get_devices(E_NM_Context *ctx, E_DBus_Callback_Func cb_func, void *data)
-{
-  DBusMessage *msg;
-  int ret;
-
-  msg = e_nm_manager_call_new("GetDevices");
-
-  ret = e_dbus_method_call_send(ctx->conn, msg, cb_nm_string_list, cb_func, free_nm_string_list, -1, data) ? 1 : 0;
-  dbus_message_unref(msg);
-  return ret;
-}
-
-
-/**
- * Find the active device that NM has chosen
- * 
- * Returns a single string containing the dbus path to the active device
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-EAPI int
-e_nm_get_active_device(E_NM_Context *ctx, E_DBus_Callback_Func cb_func,
-                       void *data)
-{
-  return e_nm_get_from_nm(ctx, cb_func, data,
-                          "getActiveDevice", DBUS_TYPE_STRING);
-}
-
-
-/**
- * Query the current state of the network
- * 
- * Returns a single string containing the status:
- *
- *  "connecting":  there is a pending network connection (waiting for a DHCP
- *                  request to complete, waiting for an encryption
- *                  key/passphrase, waiting for a wireless network, etc)
- *
- *  "connected":    there is an active network connection
- *
- *  "scanning":     there is no active network connection, but NetworkManager
- *                  is looking for an access point to associate with
- *
- *  "disconnected": there is no network connection
- * 
- *
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-EAPI int
-e_nm_status(E_NM_Context *ctx, E_DBus_Callback_Func cb_func,
-                       void *data)
-{
-
-  return e_nm_get_from_nm(ctx, cb_func, data,
-                          "status", DBUS_TYPE_STRING);
-}
diff --git a/src/lib/nm/e_nm_network.c b/src/lib/nm/e_nm_network.c
deleted file mode 100644 (file)
index 1f37a80..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-#include "E_Nm.h"
-#include "e_nm_private.h"
-
-/**
- * Get the ESSID of a wireless network
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-int
-e_nm_network_get_name(E_NM_Context *ctx, const char *device,
-                      E_DBus_Callback_Func cb_func, void *data)
-{
-  return e_nm_get_from_device(ctx, device, cb_func, data, "getName",
-                              DBUS_TYPE_STRING);
-}
-
-/**
- * Get the MAC address of a wireless network's AP
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-int
-e_nm_network_get_address(E_NM_Context *ctx, const char *device,
-                         E_DBus_Callback_Func cb_func, void *data)
-{
-  return e_nm_get_from_device(ctx, device, cb_func, data, "getAddress",
-                              DBUS_TYPE_STRING);
-}
-
-
-/**
- * Get the strength of the network; given out of 100
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-int
-e_nm_network_get_strength(E_NM_Context *ctx, const char *device,
-                          E_DBus_Callback_Func cb_func, void *data)
-{
-  return e_nm_get_from_device(ctx, device, cb_func, data, "getStrength",
-                              DBUS_TYPE_INT32);
-}
-
-
-/**
- * Get the frequency of the network; given in GHz
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-int
-e_nm_network_get_frequency(E_NM_Context *ctx, const char *device,
-                           E_DBus_Callback_Func cb_func, void *data)
-{
-  return e_nm_get_from_device(ctx, device, cb_func, data, "getFrequency",
-                              DBUS_TYPE_DOUBLE);
-}
-
-
-/**
- * Get the data rate of the network; given in Mbps
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-int
-e_nm_network_get_rate(E_NM_Context *ctx, const char *device,
-                         E_DBus_Callback_Func cb_func, void *data)
-{
-  return e_nm_get_from_device(ctx, device, cb_func, data, "getRate",
-                              DBUS_TYPE_INT32);
-}
-
-
-/**
- * Return true if the network requires encryption
- *
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- **/
-int
-e_nm_network_get_encryption(E_NM_Context *ctx, const char *device,
-                            E_DBus_Callback_Func cb_func, void *data)
-{
-  return e_nm_get_from_device(ctx, device, cb_func, data, "getEncryption",
-                              DBUS_TYPE_BOOLEAN);
-}
diff --git a/src/lib/nm/e_nm_private.h b/src/lib/nm/e_nm_private.h
deleted file mode 100644 (file)
index b7970c9..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef E_NM_PRIVATE_H
-#define E_NM_PRIVATE_H
-
-#define E_NM_SERVICE "org.freedesktop.NetworkManager"
-#define E_NM_PATH_NETWORK_MANAGER "/org/freedesktop/NetworkManager"
-#define E_NM_INTERFACE_NETWORK_MANAGER "org.freedesktop.NetworkManager"
-#define E_NM_INTERFACE_ACCESSPOINT "org.freedesktop.NetworkManager.AccessPoint"
-#define E_NM_INTERFACE_DEVICE "org.freedesktop.NetworkManager.Device"
-#define E_NM_INTERFACE_DEVICE_WIRELESS "org.freedesktop.NetworkManager.Device.Wireless"
-#define E_NM_INTERFACE_DEVICE_WIRED "org.freedesktop.NetworkManager.Device.Wired"
-#define E_NM_INTERFACE_IP4CONFIG "org.freedesktop.NetworkManager.IP4Config"
-
-#define e_nm_manager_call_new(member) dbus_message_new_method_call(E_NM_SERVICE, E_NM_PATH_NETWORK_MANAGER, E_NM_INTERFACE_NETWORK_MANAGER, member)
-
-#define e_nm_device_call_new(path, member) dbus_message_new_method_call(E_NM_SERVICE, path, E_NM_INTERFACE_DEVICE, member)
-
-#define e_nm_network_call_new(member) dbus_message_new_method_call(E_NM_SERVICE, E_NM_PATH_NETWORK_MANAGER, E_NM_INTERFACE_NETWORK_MANAGER, member)
-
-#define e_nm_device_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, E_NM_SERVICE, dev, E_NM_INTERFACE_DEVICE, prop, (E_DBus_Method_Return_Cb) cb, data)
-
-struct E_NM_Context
-{
-  E_DBus_Connection *conn;
-
-  E_NM_Cb_Manager_State_Change cb_manager_state_change;
-  void *data_manager_state_change;
-
-  E_NM_Cb_Manager_Device_Added cb_manager_device_added;
-  void *data_manager_device_added;
-
-  E_NM_Cb_Manager_Device_Removed cb_manager_device_removed;
-  void *data_manager_device_removed;
-};
-
-
-int e_nm_get_from_nm(E_NM_Context *ctx, E_DBus_Callback_Func cb_func, void *data,
-                     const char *method, int rettype);
-int e_nm_get_from_device(E_NM_Context *ctx, const char *device,
-                         E_DBus_Callback_Func cb_func, void *data,
-                         const char *method, int rettype);
-
-void *cb_nm_generic(DBusMessage *msg, DBusError *err);
-void  free_nm_generic(void *data);
-void *cb_nm_int32(DBusMessage *msg, DBusError *err);
-void *cb_nm_uint32(DBusMessage *msg, DBusError *err);
-void *cb_nm_string(DBusMessage *msg, DBusError *err);
-void *cb_nm_boolean(DBusMessage *msg, DBusError *err);
-void *cb_nm_string_list(DBusMessage *msg, DBusError *err);
-void  free_nm_string_list(void *data);
-#endif
diff --git a/src/lib/nm/e_nm_util.c b/src/lib/nm/e_nm_util.c
deleted file mode 100644 (file)
index 740186e..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-#include "E_Nm.h"
-#include "e_nm_private.h"
-#include "E_DBus.h"
-#include <string.h>
-#include <Ecore_Data.h>
-
-/**
- * @internal
- * @brief returns an e_dbus callback for a given dbus type
- * @param rettype the return type we want to find a callback for
- **/
-static E_DBus_Unmarshal_Func
-e_nm_callback_by_type(int rettype)
-{
-  switch (rettype)
-  {
-    case DBUS_TYPE_STRING:
-      return cb_nm_string;
-      
-    case DBUS_TYPE_INT32:
-      return cb_nm_int32;
-      
-    case DBUS_TYPE_UINT32:
-      return cb_nm_uint32;
-      
-    case DBUS_TYPE_BOOLEAN:
-      return cb_nm_boolean;
-
-    default:
-      return cb_nm_generic;
-  }
-}
-
-/**
- * @internal
- * @brief returns an e_dbus free for a given dbus type
- * @param rettype the return type we want to find a free for
- **/
-static E_DBus_Free_Func
-e_nm_free_by_type(int rettype)
-{
-  switch (rettype)
-  {
-    case DBUS_TYPE_STRING:
-      return NULL;
-    case DBUS_TYPE_INT32:
-    case DBUS_TYPE_UINT32:
-    case DBUS_TYPE_BOOLEAN:
-    default:
-      return free_nm_generic;
-  }
-}
-
-/**
- * @internal
- * @brief Send "get" messages to NetworkManager via e_dbus
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- * @param method the name of the method that should be called
- * @param rettype the type of the data that will be returned to the callback
- **/
-int
-e_nm_get_from_nm(E_NM_Context *ctx, E_DBus_Callback_Func cb_func, void *data,
-                 const char *method, int rettype)
-{
-  DBusMessage *msg;
-  int ret;
-
-  msg = e_nm_manager_call_new(method);
-  ret = e_dbus_method_call_send(ctx->conn, msg, e_nm_callback_by_type(rettype),
-                                cb_func, e_nm_free_by_type(rettype), -1, data) ? 1 : 0;
-  dbus_message_unref(msg);
-  return ret;
-}
-
-
-/**
- * @internal
- * @brief Send "get" messages to a Device via e_dbus
- * @param ctx an e_nm context
- * @param cb a callback, used when the method returns (or an error is received)
- * @param data user data to pass to the callback function
- * @param method the name of the method that should be called
- * @param rettype the type of the data that will be returned to the callback
- **/
-int
-e_nm_get_from_device(E_NM_Context *ctx, const char *device,
-                     E_DBus_Callback_Func cb_func, void *data,
-                     const char *method, int rettype)
-{
-  DBusMessage *msg;
-  int ret;
-
-  msg = e_nm_device_call_new(device, method);
-  ret = e_dbus_method_call_send(ctx->conn, msg, e_nm_callback_by_type(rettype),
-                                cb_func,
-                               e_nm_free_by_type(rettype),
-                               -1, data) ? 1 : 0;
-  dbus_message_unref(msg);
-  return ret;
-}
-
-/**
- * @internal
- * @brief Generic callback for methods that return nothing
- */
-void *
-cb_nm_generic(DBusMessage *msg, DBusError *err)
-{
-  return NULL;
-}
-
-/**
- * @internal
- * @brief Generic free for methods
- */
-void
-free_nm_generic(void *data)
-{
-  if (!data) return;
-  free(data);
-}
-
-/**
- * @internal
- * @brief Callback for methods that return DBUS_TYPE_INT32
- */
-void *
-cb_nm_int32(DBusMessage *msg, DBusError *err)
-{
-  dbus_int32_t *i;
-
-  i = malloc(sizeof(dbus_int32_t));
-  /* Actually emit the integer */
-  dbus_message_get_args(msg, err,
-                        DBUS_TYPE_INT32, i,
-                        DBUS_TYPE_INVALID);
-
-  return i;
-}
-
-/**
- * @internal
- * @brief Callback for methods that return DBUS_TYPE_UINT32
- */
-void *
-cb_nm_uint32(DBusMessage *msg, DBusError *err)
-{
-  dbus_uint32_t *i;
-
-  i = malloc(sizeof(dbus_uint32_t));
-  /* Actually emit the unsigned integer */
-  dbus_message_get_args(msg, err,
-                        DBUS_TYPE_UINT32, i,
-                        DBUS_TYPE_INVALID);
-
-  return i;
-}
-
-/**
- * @internal
- * @brief Callback for methods that return DBUS_TYPE_BOOLEAN
- */
-void *
-cb_nm_boolean(DBusMessage *msg, DBusError *err)
-{
-  dbus_bool_t *i;
-
-  i = malloc(sizeof(dbus_bool_t));
-  /* Actually emit the unsigned integer */
-  dbus_message_get_args(msg, err,
-                        DBUS_TYPE_BOOLEAN, i,
-                        DBUS_TYPE_INVALID);
-  
-  return i;
-}
-
-/**
- * @internal
- * @brief Callback for methods returning a single string
- */
-void *
-cb_nm_string(DBusMessage *msg, DBusError *err)
-{
-  char *str;
-
-  /* Actually emit the string */
-  dbus_message_get_args(msg, err,
-                        DBUS_TYPE_STRING, &str,
-                        DBUS_TYPE_INVALID);
-
-  return str;
-}
-
-
-/**
- * @internal
- * @brief Callback for methods returning a list of strings or object paths
- */
-void *
-cb_nm_string_list(DBusMessage *msg, DBusError *err)
-{
-  Ecore_List *devices;
-  DBusMessageIter iter, sub;
-
-  dbus_message_iter_init(msg, &iter);
-  if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY ||
-      dbus_message_iter_get_element_type(&iter) != DBUS_TYPE_OBJECT_PATH) return NULL;
-
-  devices = ecore_list_new();
-  dbus_message_iter_recurse(&iter, &sub);
-  while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID)
-  {
-    char *dev = NULL;
-
-    dbus_message_iter_get_basic(&sub, &dev);
-    if (dev) ecore_list_append(devices, dev);
-    dbus_message_iter_next(&sub);
-  }
-
-  return devices;
-}
-
-void
-free_nm_string_list(void *data)
-{
-  Ecore_List *list = data;
-
-  if (list) ecore_list_destroy(list);
-}
-
diff --git a/src/lib/notification/.cvsignore b/src/lib/notification/.cvsignore
deleted file mode 100644 (file)
index 09980ae..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-.deps
-.libs
-Makefile
-Makefile.in
-*.lo
-*.la
diff --git a/src/lib/notification/notification-spec-0.9.txt b/src/lib/notification/notification-spec-0.9.txt
deleted file mode 100644 (file)
index f392c8c..0000000
+++ /dev/null
@@ -1,827 +0,0 @@
-                      Desktop Notifications Specification
-
-  Mike Hearn
-
-         <[1]mike@navi.cx>
-
-
-  Christian Hammond
-
-         <[2]chipx86@chipx86.com>
-
-
-   Version 0.9
-
-   Revision History
-   Revision 0.9           15 January 2006            Revised by: cdh
-   Clarify the naming for the application IDs. Put back a number of things
-   that probably shouldn't have been removed from the spec.
-   Revision 0.8           23 September 2005          Revised by: J5
-   Major overhaul of spec to work with the newer D-Bus recursive type system.
-   Simplify protocol. Changed the verbage notification type to category
-   Revision 0.7           28 July 2005               Revised by: cdh
-   Added "x" and "y" hints. Talk about the variant type for hint values.
-   Revision 0.6           1 April 2005               Revised by: cdh
-   Updated to work with D-BUS 0.31+.
-   Revision 0.5           2 October 2004             Revised by: cdh
-   Added a "suppress-sound" hint. Added a "sound" capability. Renamed the
-   "soundfile" hint to sound-file".
-   Revision 0.4           29 September 2004          Revised by: cdh
-   Added image support in markup, and made the restrictions on markup more
-   clear. Removed the High urgency. Added new notification types. Fixed
-   notification expiration.
-   Revision 0.3           15 September 2004          Revised by: cdh
-   Added hint and notification type sections
-   Revision 0.2           foo                        Revised by: mh
-   Added replaces field to protocol
-   Revision 0.1           foo                        Revised by: mh
-   Initial version
-
-   --------------------------------------------------------------------------
-
-   Table of Contents
-
-   1. [3]Introduction
-
-   2. [4]Basic Design
-
-   3. [5]Backwards Compatibility
-
-   4. [6]Markup
-
-                4.1. [7]Hyperlinks
-
-                4.2. [8]Images
-
-   5. [9]Icons
-
-   6. [10]Categories
-
-   7. [11]Urgency Levels
-
-   8. [12]Hints
-
-   9. [13]D-BUS Protocol
-
-                9.1. [14]Message commands
-
-                             9.1.1.
-                             [15]org.freedesktop.Notifications.GetCapabilities
-
-                             9.1.2. [16]org.freedesktop.Notifications.Notify
-
-                             9.1.3.
-                             [17]org.freedesktop.Notifications.CloseNotification
-
-                             9.1.4.
-                             [18]org.freedesktop.Notifications.GetServerInformation
-
-                9.2. [19]Signals
-
-                             9.2.1.
-                             [20]org.freedesktop.Notifications.NotificationClosed
-
-                             9.2.2.
-                             [21]org.freedesktop.Notifications.ActionInvoked
-
-1. Introduction
-
-     This is a draft standard for a desktop notifications service, through
-   which applications can generate passive popups (sometimes known as
-   "poptarts") to notify the user in an asynchronous manner of events.
-
-     This specification explicitly does not include other types of
-   notification presentation such as modal message boxes, window manager
-   decorations or window list annotations.
-
-     Example use cases include:
-
-     *   Presence changes in IM programs: for instance, MSN Messenger on
-       Windows pioneered the use of passive popups to indicate presence
-       changes.
-
-     * Scheduled alarm
-
-     * Completed file transfer
-
-     * New mail notification
-
-     * Low disk space/battery warnings
-
-   --------------------------------------------------------------------------
-
-2. Basic Design
-
-     In order to ensure that multiple notifications can easily be displayed
-   at once, and to provide a convenient implementation, all notifications are
-   controlled by a single session-scoped service which exposes a D-BUS
-   interface.
-
-     On startup, a conforming implementation should take the
-   org.freedesktop.Notifications service on the session bus. This service
-   will be referred to as the "notification server" or just "the server" in
-   this document. It can optionally be activated automatically by the bus
-   process, however this is not required and notification server clients must
-   not assume that it is available.
-
-     The server should implement the org.freedesktop.Notifications interface
-   on an object with the path "/org/freedesktop/Notifications". This is the
-   only interface required by this version of the specification.
-
-     A notification has the following components:
-
-   Table 1. Notification Components
-
-   +------------------------------------------------------------------------+
-   |     Component      |                    Description                    |
-   |--------------------+---------------------------------------------------|
-   |                    |   This is the optional name of the application    |
-   |                    | sending the notification. This should be the      |
-   | Application Name   | application's formal name, rather than some sort  |
-   |                    | of ID. An example would be "FredApp E-Mail        |
-   |                    | Client," rather than "fredapp-email-client."      |
-   |--------------------+---------------------------------------------------|
-   | Replaces ID        |   An optional ID of an existing notification that |
-   |                    | this notification is intended to replace.         |
-   |--------------------+---------------------------------------------------|
-   |                    |   The notification icon. This is represented      |
-   |                    | either as a URI (file:// is the only URI schema   |
-   | Notification Icon  | supported right now) or a name in a               |
-   |                    | freedesktop.org-compliant icon theme (not a GTK+  |
-   |                    | stock ID).                                        |
-   |--------------------+---------------------------------------------------|
-   |                    |   This is a single line overview of the           |
-   |                    | notification. For instance, "You have mail" or "A |
-   |                    | friend has come online". It should generally not  |
-   | Summary            | be longer than 40 characters, though this is not  |
-   |                    | a requirement, and server implementations should  |
-   |                    | word wrap if necessary. The summary must be       |
-   |                    | encoded using UTF-8.                              |
-   |--------------------+---------------------------------------------------|
-   |                    |                                                   |
-   |                    |                                                   |
-   |                    |   This is a multi-line body of text. Each line is |
-   |                    | a paragraph, server implementations are free to   |
-   |                    | word wrap them as they see fit.                   |
-   | Body               |                                                   |
-   |                    |   The body may contain simple markup as specified |
-   |                    | in [22]Markup. It must be encoded using UTF-8.    |
-   |                    |                                                   |
-   |                    |   If the body is omitted, just the summary is     |
-   |                    | displayed.                                        |
-   |--------------------+---------------------------------------------------|
-   |                    |                                                   |
-   |                    |                                                   |
-   |                    |   The actions send a request message back to the  |
-   |                    | notification client when invoked. This            |
-   |                    | functionality may not be implemented by the       |
-   |                    | notification server, conforming clients should    |
-   |                    | check if it is available before using it (see the |
-   |                    | GetCapabilities message in [23]Protocol). An      |
-   |                    | implementation is free to ignore any requested by |
-   |                    | the client. As an example one possible rendering  |
-   |                    | of actions would be as buttons in the             |
-   | Actions            | notification popup.                               |
-   |                    |                                                   |
-   |                    |   Actions are sent over as a list of pairs. Each  |
-   |                    | even element in the list (starting at index 0)    |
-   |                    | represents the identifier for the action. Each    |
-   |                    | odd element in the list is the localized string   |
-   |                    | that will be displayed to the user.               |
-   |                    |                                                   |
-   |                    |   The default action (usually invoked my clicking |
-   |                    | the notification) should have a key named         |
-   |                    | "default". The name can be anything, though       |
-   |                    | implementations are free not to display it.       |
-   |--------------------+---------------------------------------------------|
-   |                    |                                                   |
-   |                    |                                                   |
-   |                    | See [24]Hints.                                    |
-   |                    |                                                   |
-   |                    |   Beyond the core protocol is the hints table. A  |
-   |                    | couple of core elements have been moved to hints  |
-   |                    | mostly because in a huge number of cases their    |
-   |                    | default values would be sufficent. The elements   |
-   |                    | moved to hints are:                               |
-   |                    |                                                   |
-   |                    | Elements Moved to Hints                           |
-   |                    |                                                   |
-   |                    | Element: Category ID                              |
-   |                    |                                                   |
-   | Hints              | Description: An optional ID representing the type |
-   |                    | of notification (the name has been changed from   |
-   |                    | Notification Type ID in pervious versions). See   |
-   |                    | [25]Categories.                                   |
-   |                    |                                                   |
-   |                    | Element: Urgency Level                            |
-   |                    |                                                   |
-   |                    | Description: The urgency of the notification. See |
-   |                    | [26]Urgency Levels. (Defaults to 1 - Normal)      |
-   |                    |                                                   |
-   |                    | Element: Icon Data                                |
-   |                    |                                                   |
-   |                    | Description: Instead of overloading the icon      |
-   |                    | field we now have an icon_data field that is used |
-   |                    | when icon is blank.                               |
-   |--------------------+---------------------------------------------------|
-   |                    |                                                   |
-   |                    |                                                   |
-   |                    |   The timeout time in milliseconds since the      |
-   |                    | display of the notification at which the          |
-   |                    | notification should automatically close.          |
-   | Expiration Timeout |                                                   |
-   |                    |   If -1, the notification's expiration time is    |
-   |                    | dependent on the notification server's settings,  |
-   |                    | and may vary for the type of notification.        |
-   |                    |                                                   |
-   |                    |   If 0, the notification never expires.           |
-   +------------------------------------------------------------------------+
-
-     Each notification displayed is allocated a unique ID by the server. This
-   is unique within the session. While the notification server is running,
-   the ID will not be recycled unless the capacity of a uint32 is exceeded.
-
-     This can be used to hide the notification before the expiration timeout
-   is reached. It can also be used to atomically replace the notification
-   with another. This allows you to (for instance) modify the contents of a
-   notification while it's on-screen.
-
-   --------------------------------------------------------------------------
-
-3. Backwards Compatibility
-
-     Clients should try and avoid making assumptions about the presentation
-   and abilities of the notification server. The message content is the most
-   important thing.
-
-     Clients can check with the server what capabilities are supported using
-   the GetCapabilities message. See [27]Protocol.
-
-     If a client requires a response from a passive popup, it should be coded
-   such that a non-focus-stealing message box can be used in the case that
-   the notification server does not support this feature.
-
-   --------------------------------------------------------------------------
-
-4. Markup
-
-     Body text may contain markup. The markup is XML-based, and consists of a
-   small subset of HTML along with a few additional tags.
-
-     The following tags should be supported by the notification server.
-   Though it is optional, it is recommended. Notification servers that do not
-   support these tags should filter them out.
-
-   +------------------------------------------+
-   |   <b> ... </b>               | Bold      |
-   |------------------------------+-----------|
-   |   <i> ... </i>               | Italic    |
-   |------------------------------+-----------|
-   |   <u> ... </u>               | Underline |
-   |------------------------------+-----------|
-   |   <a href="..."> ... </a>    | Hyperlink |
-   |------------------------------+-----------|
-   |   <img src="..." alt="..."/> | Image     |
-   +------------------------------------------+
-
-     A full-blown HTML implementation is not required of this spec, and
-   notifications should never take advantage of tags that are not listed
-   above. As notifications are not a substitute for web browsers or complex
-   dialogs, advanced layout is not necessary, and may in fact limit the
-   number of systems that notification services can run on, due to memory
-   usage and screen space. Such examples are PDAs, certain cell phones, and
-   slow PCs or laptops with little memory.
-
-     For the same reason, a full XML or XHTML implementation using XSLT or
-   CSS stylesheets is not part of this specification. Information that must
-   be presented in a more complex form should use an application-specific
-   dialog, a web browser, or some other display mechanism.
-
-     The tags specified above mark up the content in a way that allows them
-   to be stripped out on some implementations without impacting the actual
-   content.
-
-   --------------------------------------------------------------------------
-
-  4.1. Hyperlinks
-
-     Hyperlinks allow for linking one or more words to a URI. There is no
-   requirement to allow for images to be linked, and it is highly suggested
-   that implementations do not allow this, as there is no clean-looking,
-   standard visual indicator for a hyperlinked image.
-
-     Hyperlinked text should appear in the standard blue underline format.
-
-     Hyperlinks cannot function as a replacement for actions. They are used
-   to link to local directories or remote sites using standard URI schemes.
-
-     Implementations are not required to support hyperlinks.
-
-   --------------------------------------------------------------------------
-
-  4.2. Images
-
-     Images may be placed in the notification, but this should be done with
-   caution. The image should never exceed 200x100, but this should be thought
-   of as a maximum size. Images should always have alternative text provided
-   through the alt="..." attribute.
-
-     Image data cannot be embedded in the message itself. Images referenced
-   must always be local files.
-
-     Implementations are not required to support images.
-
-   --------------------------------------------------------------------------
-
-5. Icons
-
-     A notification can optionally have an icon specified by the Notification
-   Icon field or by the icon_data hint.
-
-     The icon_data field should be a raw image data structure of signature
-   (iiibiiay) which describes the width, height, rowstride, has alpha, bits
-   per sample, channels and image data respectively.
-
-   --------------------------------------------------------------------------
-
-6. Categories
-
-     Notifications can optionally have a type indicator. Although neither
-   client or nor server must support this, some may choose to. Those servers
-   implementing categories may use them to intelligently display the
-   notification in a certain way, or group notifications of similar types.
-
-     Categories are in class.specific form. class specifies the generic type
-   of notification, and specific specifies the more specific type of
-   notification.
-
-     If a specific type of notification does not exist for your notification,
-   but the generic kind does, a notification of type class is acceptable.
-
-     Third parties, when defining their own categories, should discuss the
-   possibility of standardizing on the hint with other parties, preferably in
-   a place such as the [28]xdg mailing list at [29]freedesktop.org. If it
-   warrants a standard, it will be added to the table above. If no consensus
-   is reached, the category should be in the form of "x-vendor.class.name."
-
-     The following table lists standard notifications as defined by this
-   spec. More will be added in time.
-
-   Table 2. Categories
-
-   +------------------------------------------------------------------------+
-   |          Type          |                  Description                  |
-   |------------------------+-----------------------------------------------|
-   | "device"               |   A generic device-related notification that  |
-   |                        | doesn't fit into any other category.          |
-   |------------------------+-----------------------------------------------|
-   | "device.added"         | A device, such as a USB device, was added to  |
-   |                        | the system.                                   |
-   |------------------------+-----------------------------------------------|
-   | "device.error"         | A device had some kind of error.              |
-   |------------------------+-----------------------------------------------|
-   | "device.removed"       |   A device, such as a USB device, was removed |
-   |                        | from the system.                              |
-   |------------------------+-----------------------------------------------|
-   | "email"                |   A generic e-mail-related notification that  |
-   |                        | doesn't fit into any other category.          |
-   |------------------------+-----------------------------------------------|
-   | "email.arrived"        | A new e-mail notification.                    |
-   |------------------------+-----------------------------------------------|
-   | "email.bounced"        | A notification stating that an e-mail has     |
-   |                        | bounced.                                      |
-   |------------------------+-----------------------------------------------|
-   |                        |   A generic instant message-related           |
-   | "im"                   | notification that doesn't fit into any other  |
-   |                        | category.                                     |
-   |------------------------+-----------------------------------------------|
-   | "im.error"             | An instant message error notification.        |
-   |------------------------+-----------------------------------------------|
-   | "im.received"          | A received instant message notification.      |
-   |------------------------+-----------------------------------------------|
-   | "network"              |   A generic network notification that doesn't |
-   |                        | fit into any other category.                  |
-   |------------------------+-----------------------------------------------|
-   |                        |   A network connection notification, such as  |
-   | "network.connected"    | successful sign-on to a network service. This |
-   |                        | should not be confused with device.added for  |
-   |                        | new network devices.                          |
-   |------------------------+-----------------------------------------------|
-   |                        |   A network disconnected notification. This   |
-   | "network.disconnected" | should not be confused with device.removed    |
-   |                        | for disconnected network devices.             |
-   |------------------------+-----------------------------------------------|
-   | "network.error"        |   A network-related or connection-related     |
-   |                        | error.                                        |
-   |------------------------+-----------------------------------------------|
-   |                        |   A generic presence change notification that |
-   | "presence"             | doesn't fit into any other category, such as  |
-   |                        | going away or idle.                           |
-   |------------------------+-----------------------------------------------|
-   | "presence.offline"     | An offline presence change notification.      |
-   |------------------------+-----------------------------------------------|
-   | "presence.online"      | An online presence change notification.       |
-   |------------------------+-----------------------------------------------|
-   |                        |   A generic file transfer or download         |
-   | "transfer"             | notification that doesn't fit into any other  |
-   |                        | category.                                     |
-   |------------------------+-----------------------------------------------|
-   | "transfer.complete"    | A file transfer or download complete          |
-   |                        | notification.                                 |
-   |------------------------+-----------------------------------------------|
-   | "transfer.error"       | A file transfer or download error.            |
-   +------------------------------------------------------------------------+
-
-   --------------------------------------------------------------------------
-
-7. Urgency Levels
-
-     Notifications have an urgency level associated with them. This defines
-   the importance of the notification. For example, "Joe Bob signed on" would
-   be a low urgency. "You have new mail" or "A USB device was unplugged"
-   would be a normal urgency. "Your computer is on fire" would be a critical
-   urgency.
-
-   Urgency levels are defined as follows:
-
-   Table 3. Urgency Levels
-
-   +--------------------+
-   | Type | Description |
-   |------+-------------|
-   | 0    | Low         |
-   |------+-------------|
-   | 1    | Normal      |
-   |------+-------------|
-   | 2    | Critical    |
-   +--------------------+
-
-     Developers must use their own judgement when deciding the urgency of a
-   notification. Typically, if the majority of programs are using the same
-   level for a specific type of urgency, other applications should follow
-   them.
-
-     For low and normal urgencies, server implementations may display the
-   notifications how they choose. They should, however, have a sane
-   expiration timeout dependent on the urgency level.
-
-     Critical notifications should not automatically expire, as they are
-   things that the user will most likely want to know about. They should only
-   be closed when the user dismisses them, for example, by clicking on the
-   notification.
-
-   --------------------------------------------------------------------------
-
-8. Hints
-
-     Hints are a way to provide extra data to a notification server that the
-   server may be able to make use of.
-
-     Neither clients nor notification servers are required to support any
-   hints. Both sides should assume that hints are not passed, and should
-   ignore any hints they do not understand.
-
-     Third parties, when defining their own hints, should discuss the
-   possibility of standardizing on the hint with other parties, preferably in
-   a place such as the [30]xdg mailing list at [31]freedesktop.org. If it
-   warrants a standard, it will be added to the table above. If no consensus
-   is reached, the hint name should be in the form of "x-vendor-name."
-
-     The value type for the hint dictionary in D-BUS is of the
-   DBUS_TYPE_VARIANT container type. This allows different data types
-   (string, integer, boolean, etc.) to be used for hints. When adding a
-   dictionary of hints, this type must be used, rather than putting the
-   actual hint value in as the dictionary value.
-
-     The following table lists the standard hints as defined by this
-   specification. Future hints may be proposed and added to this list over
-   time. Once again, implementations are not required to support these.
-
-   Table 4. Standard Hints
-
-   +------------------------------------------------------------------------+
-   |       Name       | Value Type |              Description               |
-   |------------------+------------+----------------------------------------|
-   | "urgency"        | byte       |   The urgency level.                   |
-   |------------------+------------+----------------------------------------|
-   | "category"       | string     |   The type of notification this is.    |
-   |------------------+------------+----------------------------------------|
-   |                  |            |   This specifies the name of the       |
-   |                  |            | desktop filename representing the      |
-   |                  |            | calling program. This should be the    |
-   |                  |            | same as the prefix used for the        |
-   | "desktop-entry"> | string     | application's .desktop file. An        |
-   |                  |            | example would be "rhythmbox" from      |
-   |                  |            | "rhythmbox.desktop". This can be used  |
-   |                  |            | by the daemon to retrieve the correct  |
-   |                  |            | icon for the application, for logging  |
-   |                  |            | purposes, etc.                         |
-   |------------------+------------+----------------------------------------|
-   |                  |            |   This is a raw data image format      |
-   |                  |            | which describes the width, height,     |
-   | "image_data"     | (iiibiiay) | rowstride, has alpha, bits per sample, |
-   |                  |            | channels and image data respectively.  |
-   |                  |            | We use this value if the icon field is |
-   |                  |            | left blank.                            |
-   |------------------+------------+----------------------------------------|
-   | "sound-file"     | string     |   The path to a sound file to play     |
-   |                  |            | when the notification pops up.         |
-   |------------------+------------+----------------------------------------|
-   |                  |            |   Causes the server to suppress        |
-   |                  |            | playing any sounds, if it has that     |
-   | "suppress-sound" | boolean    | ability. This is usually set when the  |
-   |                  |            | client itself is going to play its own |
-   |                  |            | sound.                                 |
-   |------------------+------------+----------------------------------------|
-   |                  |            |   Specifies the X location on the      |
-   | "x"              | int        | screen that the notification should    |
-   |                  |            | point to. The "y" hint must also be    |
-   |                  |            | specified.                             |
-   |------------------+------------+----------------------------------------|
-   |                  |            |   Specifies the Y location on the      |
-   | "y"              | int        | screen that the notification should    |
-   |                  |            | point to. The "x" hint must also be    |
-   |                  |            | specified.                             |
-   +------------------------------------------------------------------------+
-
-   --------------------------------------------------------------------------
-
-9. D-BUS Protocol
-
-     The following messages must be supported by all implementations.
-
-   --------------------------------------------------------------------------
-
-  9.1. Message commands
-
-    9.1.1. org.freedesktop.Notifications.GetCapabilities
-
-   STRING_ARRAY org.freedesktop.Notifications.GetCapabilities (void);
-
-     This message takes no parameters.
-
-     It returns an array of strings. Each string describes an optional
-   capability implemented by the server. The following values are defined by
-   this spec:
-
-   Table 5. Server Capabilities
-
-   +------------------------------------------------------------------------+
-   |                   |   The server will provide the specified actions to |
-   | "actions"         | the user. Even if this cap is missing, actions may |
-   |                   | still be specified by the client, however the      |
-   |                   | server is free to ignore them.                     |
-   |-------------------+----------------------------------------------------|
-   |                   |   Supports body text. Some implementations may     |
-   | "body"            | only show the summary (for instance, onscreen      |
-   |                   | displays, marquee/scrollers)                       |
-   |-------------------+----------------------------------------------------|
-   | "body-hyperlinks" |   The server supports hyperlinks in the            |
-   |                   | notifications.                                     |
-   |-------------------+----------------------------------------------------|
-   | "body-images"     |   The server supports images in the notifications. |
-   |-------------------+----------------------------------------------------|
-   |                   |   Supports markup in the body text. If marked up   |
-   | "body-markup"     | text is sent to a server that does not give this   |
-   |                   | cap, the markup will show through as regular text  |
-   |                   | so must be stripped clientside.                    |
-   |-------------------+----------------------------------------------------|
-   |                   |   The server will render an animation of all the   |
-   |                   | frames in a given image array. The client may      |
-   | "icon-multi"      | still specify multiple frames even if this cap     |
-   |                   | and/or "icon-static" is missing, however the       |
-   |                   | server is free to ignore them and use only the     |
-   |                   | primary frame.                                     |
-   |-------------------+----------------------------------------------------|
-   |                   |   Supports display of exactly 1 frame of any given |
-   | "icon-static"     | image array. This value is mutually exclusive with |
-   |                   | "icon-multi", it is a protocol error for the       |
-   |                   | server to specify both.                            |
-   |-------------------+----------------------------------------------------|
-   |                   |   The server supports sounds on notifications. If  |
-   | "sound"           | returned, the server must support the "sound-file" |
-   |                   | and "suppress-sound" hints.                        |
-   +------------------------------------------------------------------------+
-
-     New vendor-specific caps may be specified as long as they start with
-   "x-vendor". For instance, "x-gnome-foo-cap". Capability names must not
-   contain spaces. They are limited to alpha-numeric characters and dashes
-   ("-").
-
-   --------------------------------------------------------------------------
-
-    9.1.2. org.freedesktop.Notifications.Notify
-
-   UINT32 org.freedesktop.Notifications.Notify (STRING app_name, UINT32
-   replaces_id, STRING app_icon, STRING summary, STRING body, ARRAY actions,
-   DICT hints, INT32 expire_timeout);
-
-     Sends a notification to the notification server.
-
-   Table 6. Notify Parameters
-
-   +------------------------------------------------------------------------+
-   |      Name      |  Type  |                 Description                  |
-   |----------------+--------+----------------------------------------------|
-   | app_name       | STRING |   The optional name of the application       |
-   |                |        | sending the notification. Can be blank.      |
-   |----------------+--------+----------------------------------------------|
-   |                |        |   The optional notification ID that this     |
-   |                |        | notification replaces. The server must       |
-   |                |        | atomically (ie with no flicker or other      |
-   |                |        | visual cues) replace the given notification  |
-   | replaces_id    | UINT32 | with this one. This allows clients to        |
-   |                |        | effectively modify the notification while    |
-   |                |        | it's active. A value of value of 0 means     |
-   |                |        | that this notification won't replace any     |
-   |                |        | existing notifications.                      |
-   |----------------+--------+----------------------------------------------|
-   |                |        |   The optional program icon of the calling   |
-   | app_icon       | STRING | application. See [32]Icons. Can be an empty  |
-   |                |        | string, indicating no icon.                  |
-   |----------------+--------+----------------------------------------------|
-   | summary        | STRING | The summary text briefly describing the      |
-   |                |        | notification.                                |
-   |----------------+--------+----------------------------------------------|
-   | body           | STRING | The optional detailed body text. Can be      |
-   |                |        | empty.                                       |
-   |----------------+--------+----------------------------------------------|
-   |                |        |   Actions are sent over as a list of pairs.  |
-   |                |        | Each even element in the list (starting at   |
-   | actions        | ARRAY  | index 0) represents the identifier for the   |
-   |                |        | action. Each odd element in the list is the  |
-   |                |        | localized string that will be displayed to   |
-   |                |        | the user.                                    |
-   |----------------+--------+----------------------------------------------|
-   |                |        |   Optional hints that can be passed to the   |
-   |                |        | server from the client program. Although     |
-   |                |        | clients and servers should never assume each |
-   | hints          | DICT   | other supports any specific hints, they can  |
-   |                |        | be used to pass along information, such as   |
-   |                |        | the process PID or window ID, that the       |
-   |                |        | server may be able to make use of. See       |
-   |                |        | [33]Hints. Can be empty.                     |
-   |----------------+--------+----------------------------------------------|
-   |                |        |                                              |
-   |                |        |                                              |
-   |                |        |   The timeout time in milliseconds since the |
-   |                |        | display of the notification at which the     |
-   | expire_timeout | INT32  | notification should automatically close.     |
-   |                |        |                                              |
-   |                |        |   If -1, the notification's expiration time  |
-   |                |        | is dependent on the notification server's    |
-   |                |        | settings, and may vary for the type of       |
-   |                |        | notification. If 0, never expire.            |
-   +------------------------------------------------------------------------+
-
-     If replaces_id is 0, the return value is a UINT32 that represent the
-   notification. It is unique, and will not be reused unless a MAXINT number
-   of notifications have been generated. An acceptable implementation may
-   just use an incrementing counter for the ID. The returned ID is always
-   greater than zero. Servers must make sure not to return zero as an ID.
-
-     If replaces_id is not 0, the returned value is the same value as
-   replaces_id.
-
-   --------------------------------------------------------------------------
-
-    9.1.3. org.freedesktop.Notifications.CloseNotification
-
-   void org.freedesktop.Notifications.CloseNotification (UINT32 id);
-
-     Causes a notification to be forcefully closed and removed from the
-   user's view. It can be used, for example, in the event that what the
-   notification pertains to is no longer relevant, or to cancel a
-   notification with no expiration time.
-
-     The NotificationClosed signal is emitted by this method.
-
-     If the notification no longer exists, an empty D-BUS Error message is
-   sent back.
-
-   --------------------------------------------------------------------------
-
-    9.1.4. org.freedesktop.Notifications.GetServerInformation
-
-     void org.freedesktop.Notifications.GetServerInformation (out STRING
-   name, out STRING vendor, out STRING version);
-
-     This message returns the information on the server. Specifically, the
-   server name, vendor, and version number.
-
-   Table 7. GetServerInformation Return Values
-
-   +------------------------------------------------------------------------+
-   |  Name   |  Type  |                     Description                     |
-   |---------+--------+-----------------------------------------------------|
-   | name    | STRING | The product name of the server.                     |
-   |---------+--------+-----------------------------------------------------|
-   | vendor  | STRING |   The vendor name. For example, "KDE," "GNOME,"     |
-   |         |        | "freedesktop.org," or "Microsoft."                  |
-   |---------+--------+-----------------------------------------------------|
-   | version | STRING | The server's version number.                        |
-   +------------------------------------------------------------------------+
-
-   --------------------------------------------------------------------------
-
-  9.2. Signals
-
-    9.2.1. org.freedesktop.Notifications.NotificationClosed
-
-     org.freedesktop.Notifications.NotificationClosed (UINT32 id, UINT32
-   reason);
-
-     A completed notification is one that has timed out, or has been
-   dismissed by the user.
-
-   Table 8. NotificationClosed Parameters
-
-   +------------------------------------------------------------------------+
-   |  Name  |  Type  |                     Description                      |
-   |--------+--------+------------------------------------------------------|
-   | id     | UINT32 | The ID of the notification that was closed.          |
-   |--------+--------+------------------------------------------------------|
-   |        |        |                                                      |
-   |        |        |                                                      |
-   |        |        | The reason the notification was closed.              |
-   |        |        |                                                      |
-   |        |        | 1 - The notification expired.                        |
-   | reason | UINT32 |                                                      |
-   |        |        | 2 - The notification was dismissed by the user.      |
-   |        |        |                                                      |
-   |        |        | 3 - The notification was closed by a call to         |
-   |        |        | CloseNotification.                                   |
-   |        |        |                                                      |
-   |        |        | 4 - Undefined/reserved reasons.                      |
-   +------------------------------------------------------------------------+
-
-     The ID specified in the signal is invalidated before the signal is sent
-   and may not be used in any further communications with the server.
-
-   --------------------------------------------------------------------------
-
-    9.2.2. org.freedesktop.Notifications.ActionInvoked
-
-     org.freedesktop.Notifications.ActionInvoked (UINT32 id, STRING
-   action_key);
-
-     This signal is emitted when one of the following occurs:
-
-     *   The user performs some global "invoking" action upon a notification.
-       For instance, clicking somewhere on the notification itself.
-
-     *   The user invokes a specific action as specified in the original
-       Notify request. For example, clicking on an action button.
-
-   Table 9. ActionInvoked Parameters
-
-   +------------------------------------------------------------------------+
-   |    Name    |  Type  |                   Description                    |
-   |------------+--------+--------------------------------------------------|
-   | id         | UINT32 |   The ID of the notification emitting the        |
-   |            |        | ActionInvoked signal.                            |
-   |------------+--------+--------------------------------------------------|
-   | action_key | STRING |   The key of the action invoked. These match the |
-   |            |        | keys sent over in the list of actions.           |
-   +------------------------------------------------------------------------+
-
-   [34]Note   Clients should not assume the server will generate this signal.
-            Some servers may not support user interaction at all, or may not
-            support the concept of being able to "invoke" a notification.
-
-References
-
-   Visible links
-   1. mailto:mike@navi.cx
-   2. mailto:chipx86@chipx86.com
-   3. file:///tmp/html-A2Tahl#introduction
-   4. file:///tmp/html-A2Tahl#basic-design
-   5. file:///tmp/html-A2Tahl#backwards-compat
-   6. file:///tmp/html-A2Tahl#markup
-   7. file:///tmp/html-A2Tahl#hyperlinks
-   8. file:///tmp/html-A2Tahl#images
-   9. file:///tmp/html-A2Tahl#icons
-  10. file:///tmp/html-A2Tahl#categories
-  11. file:///tmp/html-A2Tahl#urgency-levels
-  12. file:///tmp/html-A2Tahl#hints
-  13. file:///tmp/html-A2Tahl#protocol
-  14. file:///tmp/html-A2Tahl#commands
-  15. file:///tmp/html-A2Tahl#command-get-capabilities
-  16. file:///tmp/html-A2Tahl#command-notify
-  17. file:///tmp/html-A2Tahl#command-close-notification
-  18. file:///tmp/html-A2Tahl#command-get-server-information
-  19. file:///tmp/html-A2Tahl#signals
-  20. file:///tmp/html-A2Tahl#signal-notification-closed
-  21. file:///tmp/html-A2Tahl#signal-action-invoked
-  22. file:///tmp/html-A2Tahl#markup
-  23. file:///tmp/html-A2Tahl#protocol
-  24. file:///tmp/html-A2Tahl#hints
-  25. file:///tmp/html-A2Tahl#categories
-  26. file:///tmp/html-A2Tahl#urgency-levels
-  27. file:///tmp/html-A2Tahl#protocol
-  28. http://freedesktop.org/mailman/listinfo/xdg
-  29. http://freedesktop.org/
-  30. http://freedesktop.org/mailman/listinfo/xdg
-  31. http://freedesktop.org/
-  32. file:///tmp/html-A2Tahl#icons
-  33. file:///tmp/html-A2Tahl#hints