From 9a7af2bfaea3f3a84785e1379652020002452508 Mon Sep 17 00:00:00 2001 From: christian mueller Date: Tue, 3 Apr 2012 20:15:27 +0200 Subject: * [GAM-35] implement DBus for SESSION or SYSTEM bus Signed-off-by: christian mueller --- AudioManagerDaemon/src/CAmDbusWrapper.cpp | 4 ++-- AudioManagerDaemon/src/main.cpp | 26 +++++++++++++++++++++++--- README | 27 +++++++++++++++------------ include/shared/CAmDbusWrapper.h | 2 +- 4 files changed, 41 insertions(+), 18 deletions(-) diff --git a/AudioManagerDaemon/src/CAmDbusWrapper.cpp b/AudioManagerDaemon/src/CAmDbusWrapper.cpp index 97b4ccd..0f511e2 100644 --- a/AudioManagerDaemon/src/CAmDbusWrapper.cpp +++ b/AudioManagerDaemon/src/CAmDbusWrapper.cpp @@ -46,7 +46,7 @@ DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE \ CAmDbusWrapper* CAmDbusWrapper::mpReference = NULL; -CAmDbusWrapper::CAmDbusWrapper(CAmSocketHandler* socketHandler) : +CAmDbusWrapper::CAmDbusWrapper(CAmSocketHandler* socketHandler, DBusBusType type) : pDbusDispatchCallback(this, &CAmDbusWrapper::dbusDispatchCallback), // pDbusFireCallback(this, &CAmDbusWrapper::dbusFireCallback), // pDbusCheckCallback(this, &CAmDbusWrapper::dbusCheckCallback), // @@ -61,7 +61,7 @@ CAmDbusWrapper::CAmDbusWrapper(CAmSocketHandler* socketHandler) : dbus_error_init(&mDBusError); logInfo("DBusWrapper::DBusWrapper Opening DBus connection"); - mpDbusConnection = dbus_bus_get(DBUS_BUS_SESSION, &mDBusError); + mpDbusConnection = dbus_bus_get(type, &mDBusError); if (dbus_error_is_set(&mDBusError)) { logError("DBusWrapper::DBusWrapper Error while getting the DBus"); diff --git a/AudioManagerDaemon/src/main.cpp b/AudioManagerDaemon/src/main.cpp index 74631f1..92a1e41 100644 --- a/AudioManagerDaemon/src/main.cpp +++ b/AudioManagerDaemon/src/main.cpp @@ -73,6 +73,9 @@ const char* USAGE_DESCRIPTION = "Usage:\tAudioManagerDaemon [options]\n" "\t-V: print DLT logs to stdout\t\n" #endif "\t-d: daemonize AudioManager \t\n" +#ifdef WITH_DBUS_WRAPPER + "\t-T: DbusType to be used by CAmDbusWrapper (0=DBUS_SESSION[default], 1=DBUS_SYSTEM)\t\n" +#endif "\t-p path for sqlite database (default is in memory)\t\n" "\t-t port for telnetconnection\t\n" "\t-m number of max telnetconnections\t\n" @@ -91,6 +94,10 @@ unsigned int maxConnections = MAX_TELNETCONNECTIONS; int fd0, fd1, fd2; bool enableNoDLTDebug = false; +#ifdef WITH_DBUS_WRAPPER + DBusBusType dbusWrapperType=DBUS_BUS_SESSION; +#endif + /** * the out of memory handler */ @@ -162,9 +169,17 @@ void parseCommandLine(int argc, char **argv) while (optind < argc) { #ifdef WITH_DLT - int option = getopt(argc, argv, "h::v::c::l::r::L::R::d::t::m::i::p::"); + #ifdef WITH_DBUS_WRAPPER + int option = getopt(argc, argv, "h::v::c::l::r::L::R::d::t::m::i::p::T::"); + #else + int option = getopt(argc, argv, "h::v::c::l::r::L::R::d::t::m::i::p::"); + #endif WITH_DBUS_WRAPPER #else - int option = getopt(argc, argv, "h::v::V::c::l::r::L::R::d::t::m::i::p::"); + #ifdef WITH_DBUS_WRAPPER + int option = getopt(argc, argv, "h::v::V::c::l::r::L::R::d::t::m::i::p::T::"); + #else + int option = getopt(argc, argv, "h::v::V::c::l::r::L::R::d::t::m::i::p::"); + #endif //WITH_DBUS_WRAPPER #endif switch (option) @@ -223,6 +238,11 @@ void parseCommandLine(int argc, char **argv) printf("[DLT] debug output to stdout enabled\n"); enableNoDLTDebug = true; break; +#endif +#ifdef WITH_DBUS_WRAPPER + case 'T': + dbusWrapperType=static_cast(atoi(optarg)); + break; #endif case 'h': default: @@ -292,7 +312,7 @@ int main(int argc, char *argv[]) CAmSocketHandler iSocketHandler; #ifdef WITH_DBUS_WRAPPER - CAmDbusWrapper iDBusWrapper(&iSocketHandler); + CAmDbusWrapper iDBusWrapper(&iSocketHandler,dbusWrapperType); #endif /*WITH_DBUS_WRAPPER */ CAmDatabaseHandler iDatabaseHandler(databasePath); diff --git a/README b/README index 03b4b63..67eb30e 100644 --- a/README +++ b/README @@ -133,18 +133,21 @@ The commandline options of the AudioManager: Usage: AudioManagerDaemon [options] options: - -h: print this message - -i: info about current settings - -v: print version - -d: daemonize AudioManager - -p path for sqlite database (default is in memory) - -t port for telnetconnection - -m number of max telnetconnections - -c use controllerPlugin (full path with .so ending) - -l replace command plugin directory with (full path) - -r replace routing plugin directory with (full path) - -L add command plugin directory with (full path) - -R add routing plugin directory with (full path) + + -h: print this message + -i: info about current settings + -v: print version + -V: print DLT logs to stdout + -d: daemonize AudioManager + -T: DbusType to be used by CAmDbusWrapper (0=DBUS_SESSION[default], 1=DBUS_SYSTEM) + -p path for sqlite database (default is in memory) + -t port for telnetconnection + -m number of max telnetconnections + -c use controllerPlugin (full path with .so ending) + -l replace command plugin directory with (full path) + -r replace routing plugin directory with (full path) + -L add command plugin directory with (full path) + -R add routing plugin directory with (full path) *********************************************************************************************************** diff --git a/include/shared/CAmDbusWrapper.h b/include/shared/CAmDbusWrapper.h index 020cf89..46b758a 100644 --- a/include/shared/CAmDbusWrapper.h +++ b/include/shared/CAmDbusWrapper.h @@ -39,7 +39,7 @@ namespace am class CAmDbusWrapper { public: - CAmDbusWrapper(CAmSocketHandler* socketHandler); + CAmDbusWrapper(CAmSocketHandler* socketHandler,DBusBusType type=DBUS_BUS_SESSION); virtual ~CAmDbusWrapper(); void registerCallback(const DBusObjectPathVTable* vtable, const std::string& path, void* userdata); -- cgit v1.2.1