diff options
author | christian mueller <christian.ei.mueller@bmw.de> | 2012-02-23 17:25:23 +0100 |
---|---|---|
committer | christian mueller <christian.ei.mueller@bmw.de> | 2012-02-23 17:25:23 +0100 |
commit | bec7e4f38620d7855c0e5c0d4cea933dcf2827f3 (patch) | |
tree | 3b7b196f88f5b7cba4c885bcc39623b35e53e55f /AudioManagerDaemon/src | |
parent | 26b122e62777dddff469fa53058ab26fe212d4cf (diff) | |
download | audiomanager-bec7e4f38620d7855c0e5c0d4cea933dcf2827f3.tar.gz |
* [ GAM-4 ] Change Database Obsever notification implementation working, test are not ready yet. This implies that the Sockethandler is mandatory so I removed the cmake options.
Diffstat (limited to 'AudioManagerDaemon/src')
-rw-r--r-- | AudioManagerDaemon/src/CommandReceiver.cpp | 14 | ||||
-rw-r--r-- | AudioManagerDaemon/src/CommandSender.cpp | 24 | ||||
-rw-r--r-- | AudioManagerDaemon/src/ControlReceiver.cpp | 16 | ||||
-rw-r--r-- | AudioManagerDaemon/src/DBusWrapper.cpp | 41 | ||||
-rw-r--r-- | AudioManagerDaemon/src/DatabaseHandler.cpp | 2 | ||||
-rw-r--r-- | AudioManagerDaemon/src/DatabaseObserver.cpp | 225 | ||||
-rw-r--r-- | AudioManagerDaemon/src/RoutingReceiver.cpp | 24 | ||||
-rw-r--r-- | AudioManagerDaemon/src/main.cpp | 38 |
8 files changed, 239 insertions, 145 deletions
diff --git a/AudioManagerDaemon/src/CommandReceiver.cpp b/AudioManagerDaemon/src/CommandReceiver.cpp index 6114076..ff092dd 100644 --- a/AudioManagerDaemon/src/CommandReceiver.cpp +++ b/AudioManagerDaemon/src/CommandReceiver.cpp @@ -32,16 +32,6 @@ using namespace am; -CommandReceiver::CommandReceiver(DatabaseHandler *iDatabaseHandler, ControlSender *iControlSender, DBusWrapper *iDBusWrapper) : - mDatabaseHandler(iDatabaseHandler), // - mControlSender(iControlSender), // - mDBusWrapper(iDBusWrapper) -{ - assert(mDatabaseHandler!=NULL); - assert(mDBusWrapper!=NULL); - assert(mControlSender!=NULL); -} - CommandReceiver::CommandReceiver(DatabaseHandler *iDatabaseHandler, ControlSender *iControlSender, SocketHandler *iSocketHandler) : mDatabaseHandler(iDatabaseHandler), // mControlSender(iControlSender), // @@ -174,12 +164,8 @@ am_Error_e CommandReceiver::getDBusConnectionWrapper(DBusWrapper*& dbusConnectio am_Error_e CommandReceiver::getSocketHandler(SocketHandler *& socketHandler) const { -#ifdef WITH_SOCKETHANDLER_LOOP socketHandler = mSocketHandler; return E_OK; -#else - return E_UNKNOWN; -#endif /*WITH_SOCKETHANDLER_LOOP*/ } uint16_t CommandReceiver::getInterfaceVersion() const diff --git a/AudioManagerDaemon/src/CommandSender.cpp b/AudioManagerDaemon/src/CommandSender.cpp index d2cc1ca..c70509f 100644 --- a/AudioManagerDaemon/src/CommandSender.cpp +++ b/AudioManagerDaemon/src/CommandSender.cpp @@ -245,6 +245,30 @@ am_Error_e am::CommandSender::getListPlugins(std::vector<std::string> & interfac return E_OK; } +void am::CommandSender::cbNewMainConnection(const am_MainConnectionType_s mainConnection) +{ +} + +void am::CommandSender::cbRemovedMainConnection(const am_MainConnectionType_s mainConnection) +{ +} + +void am::CommandSender::cbNewSink(const am_SinkType_s sink) +{ +} + +void am::CommandSender::cbRemovedSink(const am_SinkType_s sink) +{ +} + +void am::CommandSender::cbNewSource(const am_SourceType_s source) +{ +} + +void am::CommandSender::cbRemovedSource(const am_SourceType_s source) +{ +} + void CommandSender::unloadLibraries(void) { std::vector<void*>::iterator iterator = mListLibraryHandles.begin(); diff --git a/AudioManagerDaemon/src/ControlReceiver.cpp b/AudioManagerDaemon/src/ControlReceiver.cpp index 5671fd0..2b2e8b0 100644 --- a/AudioManagerDaemon/src/ControlReceiver.cpp +++ b/AudioManagerDaemon/src/ControlReceiver.cpp @@ -48,18 +48,6 @@ ControlReceiver::ControlReceiver(DatabaseHandler *iDatabaseHandler, RoutingSende assert(mRouter!=NULL); } -ControlReceiver::ControlReceiver(DatabaseHandler *iDatabaseHandler, RoutingSender *iRoutingSender, CommandSender *iCommandSender, Router* iRouter) : - mDatabaseHandler(iDatabaseHandler), // - mRoutingSender(iRoutingSender), // - mCommandSender(iCommandSender), // - mRouter(iRouter) -{ - assert(mDatabaseHandler!=NULL); - assert(mRoutingSender!=NULL); - assert(mCommandSender!=NULL); - assert(mRouter!=NULL); -} - ControlReceiver::~ControlReceiver() { } @@ -491,12 +479,8 @@ void ControlReceiver::setRoutingReady() am_Error_e ControlReceiver::getSocketHandler(SocketHandler *& socketHandler) { -#ifdef WITH_SOCKETHANDLER_LOOP socketHandler = mSocketHandler; return E_OK; -#else - return E_UNKNOWN; -#endif } void am::ControlReceiver::setCommandRundown() diff --git a/AudioManagerDaemon/src/DBusWrapper.cpp b/AudioManagerDaemon/src/DBusWrapper.cpp index ac073a5..5a310ce 100644 --- a/AudioManagerDaemon/src/DBusWrapper.cpp +++ b/AudioManagerDaemon/src/DBusWrapper.cpp @@ -45,47 +45,6 @@ DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE \ DBusWrapper* DBusWrapper::mReference = NULL; -DBusWrapper::DBusWrapper() : - pDbusDispatchCallback(this, &DBusWrapper::dbusDispatchCallback), // - pDbusFireCallback(this, &DBusWrapper::dbusFireCallback), // - pDbusCheckCallback(this, &DBusWrapper::dbusCheckCallback), // - pDbusTimerCallback(this, &DBusWrapper::dbusTimerCallback), // - mDbusConnection(0), // - mDBusError(), // - mNodesList(), // - mListTimerhandlePointer() -{ - dbus_error_init(&mDBusError); - logInfo("DBusWrapper::DBusWrapper Opening DBus connection"); - mDbusConnection = dbus_bus_get(DBUS_BUS_SESSION, &mDBusError); - if (dbus_error_is_set(&mDBusError)) - { - logError("DBusWrapper::DBusWrapper Error while getting the DBus"); - dbus_error_free(&mDBusError); - } - if (NULL == mDbusConnection) - { - logError("DBusWrapper::DBusWrapper DBus Connection is null"); - } - - //first, we are old enought to live longer then the connection: - dbus_connection_set_exit_on_disconnect(mDbusConnection, FALSE); - - mObjectPathVTable.message_function = DBusWrapper::cbRootIntrospection; - dbus_connection_register_object_path(mDbusConnection, DBUS_SERVICE_OBJECT_PATH, &mObjectPathVTable, this); - int ret = dbus_bus_request_name(mDbusConnection, DBUS_SERVICE_PREFIX, DBUS_NAME_FLAG_DO_NOT_QUEUE, &mDBusError); - if (dbus_error_is_set(&mDBusError)) - { - logError("DBusWrapper::DBusWrapper Name Error",mDBusError.message); - dbus_error_free(&mDBusError); - } - if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) - { - logError("DBusWrapper::DBusWrapper Wrapper is not the Primary Owner",ret); - exit(1); - } -} - DBusWrapper::DBusWrapper(SocketHandler* socketHandler) : pDbusDispatchCallback(this, &DBusWrapper::dbusDispatchCallback), // pDbusFireCallback(this, &DBusWrapper::dbusFireCallback), // diff --git a/AudioManagerDaemon/src/DatabaseHandler.cpp b/AudioManagerDaemon/src/DatabaseHandler.cpp index 2337142..a80e241 100644 --- a/AudioManagerDaemon/src/DatabaseHandler.cpp +++ b/AudioManagerDaemon/src/DatabaseHandler.cpp @@ -818,7 +818,7 @@ am_Error_e DatabaseHandler::enterSourceDB(const am_Source_s & sourceData, am_sou } } - logInfo("DatabaseHandler::enterSinkDB entered new source with name", sourceData.name, "domainID:", sourceData.domainID, "classID:", sourceData.sourceClassID, "visible:", sourceData.visible, "assigned ID:", sourceID); + logInfo("DatabaseHandler::enterSourceDB entered new source with name", sourceData.name, "domainID:", sourceData.domainID, "classID:", sourceData.sourceClassID, "visible:", sourceData.visible, "assigned ID:", sourceID); am_Source_s source = sourceData; source.sourceID = sourceID; diff --git a/AudioManagerDaemon/src/DatabaseObserver.cpp b/AudioManagerDaemon/src/DatabaseObserver.cpp index 97a1d07..a1bc123 100644 --- a/AudioManagerDaemon/src/DatabaseObserver.cpp +++ b/AudioManagerDaemon/src/DatabaseObserver.cpp @@ -23,29 +23,72 @@ */ #include "DatabaseObserver.h" +#include <string.h> +#include <cassert> +#include <errno.h> +#include <sys/socket.h> +#include <sys/ioctl.h> #include "CommandSender.h" #include "RoutingSender.h" #include "TelnetServer.h" -#include <cassert> +#include "DLTWrapper.h" using namespace am; -DatabaseObserver::DatabaseObserver(CommandSender *iCommandSender, RoutingSender *iRoutingSender) : +DatabaseObserver::DatabaseObserver(CommandSender *iCommandSender, RoutingSender *iRoutingSender, SocketHandler *iSocketHandler) : + receiverCallbackT(this, &DatabaseObserver::receiverCallback), // + dispatcherCallbackT(this, &DatabaseObserver::dispatcherCallback), // + checkerCallbackT(this, &DatabaseObserver::checkerCallback), // mCommandSender(iCommandSender), // - mRoutingSender(iRoutingSender) + mRoutingSender(iRoutingSender), // + mSocketHandler(iSocketHandler), // + mPipe(), // + mHandle(), // + mQueue() { - assert(mCommandSender!=0); - assert(mRoutingSender!=0); + commonConstructor(); } -DatabaseObserver::DatabaseObserver(CommandSender *iCommandSender, RoutingSender *iRoutingSender, TelnetServer *iTelnetServer) : +DatabaseObserver::DatabaseObserver(CommandSender *iCommandSender, RoutingSender *iRoutingSender, SocketHandler *iSocketHandler, TelnetServer *iTelnetServer) : + receiverCallbackT(this, &DatabaseObserver::receiverCallback), // + dispatcherCallbackT(this, &DatabaseObserver::dispatcherCallback), // + checkerCallbackT(this, &DatabaseObserver::checkerCallback), // mCommandSender(iCommandSender), // mRoutingSender(iRoutingSender), // - mTelnetServer(iTelnetServer) + mTelnetServer(iTelnetServer), // + mSocketHandler(iSocketHandler), // + mPipe(), // + mHandle(), // + mQueue() +{ + assert(mTelnetServer!=0); + commonConstructor(); +} + +void DatabaseObserver::pipeCommand(const do_msg_s & message) +{ + mQueue.push(message); + + if (write(mPipe[1], &message.msgID, sizeof(do_msg_s)) == -1) + { + logError("DatabaseObserver::msgID pipe write failed, error code:", strerror(errno)); + } +} + +void DatabaseObserver::commonConstructor() { assert(mCommandSender!=0); assert(mRoutingSender!=0); - assert(mTelnetServer!=0); + assert(mSocketHandler!=0); + if (pipe(mPipe) == -1) + { + logError("RoutingReceiverAsyncShadow::setRoutingInterface could not create pipe!:"); + throw "could not create pipe"; + } + + short event = 0; + event |= POLLIN; + mSocketHandler->addFDPoll(mPipe[0], event, NULL, &receiverCallbackT, &checkerCallbackT, &dispatcherCallbackT, NULL, mHandle); } DatabaseObserver::~DatabaseObserver() @@ -55,13 +98,18 @@ DatabaseObserver::~DatabaseObserver() void DatabaseObserver::newSink(am_Sink_s sink) { mRoutingSender->addSinkLookup(sink); - mCommandSender->cbNumberOfSinksChanged(); + do_msg_s msg; + msg.msgID = MDO_cbNumberOfSinksChanged; + pipeCommand(msg); + } void DatabaseObserver::newSource(am_Source_s source) { mRoutingSender->addSourceLookup(source); - mCommandSender->cbNumberOfSourcesChanged(); + do_msg_s msg; + msg.msgID = MDO_cbNumberOfSourcesChanged; + pipeCommand(msg); } void DatabaseObserver::newDomain(am_Domain_s domain) @@ -83,13 +131,17 @@ void DatabaseObserver::newCrossfader(am_Crossfader_s crossfader) void DatabaseObserver::removedSink(am_sinkID_t sinkID) { mRoutingSender->removeSinkLookup(sinkID); - mCommandSender->cbNumberOfSinksChanged(); + do_msg_s msg; + msg.msgID = MDO_cbNumberOfSinksChanged; + pipeCommand(msg); } void DatabaseObserver::removedSource(am_sourceID_t sourceID) { mRoutingSender->removeSourceLookup(sourceID); - mCommandSender->cbNumberOfSourcesChanged(); + do_msg_s msg; + msg.msgID = MDO_cbNumberOfSourcesChanged; + pipeCommand(msg); } void DatabaseObserver::removeDomain(am_domainID_t domainID) @@ -110,62 +162,187 @@ void DatabaseObserver::removeCrossfader(am_crossfaderID_t crossfaderID) void DatabaseObserver::numberOfMainConnectionsChanged() { - mCommandSender->cbNumberOfMainConnectionsChanged(); + do_msg_s msg; + msg.msgID = MDO_cbNumberOfMainConnectionsChanged; + pipeCommand(msg); } void DatabaseObserver::numberOfSinkClassesChanged() { - mCommandSender->cbNumberOfSinkClassesChanged(); + do_msg_s msg; + msg.msgID = MDO_cbNumberOfSinkClassesChanged; + pipeCommand(msg); } void DatabaseObserver::numberOfSourceClassesChanged() { - mCommandSender->cbNumberOfSourceClassesChanged(); + do_msg_s msg; + msg.msgID = MDO_cbNumberOfSourceClassesChanged; + pipeCommand(msg); } void DatabaseObserver::mainConnectionStateChanged(const am_mainConnectionID_t connectionID, const am_ConnectionState_e connectionState) { - mCommandSender->cbMainConnectionStateChanged(connectionID, connectionState); + do_msg_s msg; + msg.msgID = MDO_cbMainConnectionStateChanged; + msg.parameters.connectionStateChanged.connectionID = connectionID; + msg.parameters.connectionStateChanged.connectionState = connectionState; + pipeCommand(msg); } void DatabaseObserver::mainSinkSoundPropertyChanged(const am_sinkID_t sinkID, const am_MainSoundProperty_s SoundProperty) { - mCommandSender->cbMainSinkSoundPropertyChanged(sinkID, SoundProperty); + do_msg_s msg; + msg.msgID = MDO_cbMainSinkSoundPropertyChanged; + msg.parameters.mainSinkSoundPropertyChanged.sinkID = sinkID; + msg.parameters.mainSinkSoundPropertyChanged.SoundProperty = SoundProperty; + pipeCommand(msg); } void DatabaseObserver::mainSourceSoundPropertyChanged(const am_sourceID_t sourceID, const am_MainSoundProperty_s & SoundProperty) { - mCommandSender->cbMainSourceSoundPropertyChanged(sourceID, SoundProperty); + do_msg_s msg; + msg.msgID = MDO_cbMainSourceSoundPropertyChanged; + msg.parameters.mainSourceSoundPropertyChanged.sourceID = sourceID; + msg.parameters.mainSourceSoundPropertyChanged.SoundProperty = SoundProperty; + pipeCommand(msg); } void DatabaseObserver::sinkAvailabilityChanged(const am_sinkID_t sinkID, const am_Availability_s & availability) { - mCommandSender->cbSinkAvailabilityChanged(sinkID, availability); + do_msg_s msg; + msg.msgID = MDO_cbSinkAvailabilityChanged; + msg.parameters.sinkAvailabilityChanged.sinkID = sinkID; + msg.parameters.sinkAvailabilityChanged.availability = availability; + pipeCommand(msg); } void DatabaseObserver::sourceAvailabilityChanged(const am_sourceID_t sourceID, const am_Availability_s & availability) { - mCommandSender->cbSourceAvailabilityChanged(sourceID, availability); + do_msg_s msg; + msg.msgID = MDO_cbSourceAvailabilityChanged; + msg.parameters.sourceAvailabilityChanged.sourceID = sourceID; + msg.parameters.sourceAvailabilityChanged.availability = availability; + pipeCommand(msg); } void DatabaseObserver::volumeChanged(const am_sinkID_t sinkID, const am_mainVolume_t volume) { - mCommandSender->cbVolumeChanged(sinkID, volume); + do_msg_s msg; + msg.msgID = MDO_cbVolumeChanged; + msg.parameters.volumeChanged.sinkID = sinkID; + msg.parameters.volumeChanged.volume = volume; + pipeCommand(msg); } void DatabaseObserver::sinkMuteStateChanged(const am_sinkID_t sinkID, const am_MuteState_e muteState) { - mCommandSender->cbSinkMuteStateChanged(sinkID, muteState); + do_msg_s msg; + msg.msgID = MDO_cbSinkMuteStateChanged; + msg.parameters.sinkMuteStateChanged.sinkID = sinkID; + msg.parameters.sinkMuteStateChanged.muteState = muteState; + pipeCommand(msg); } void DatabaseObserver::systemPropertyChanged(const am_SystemProperty_s & SystemProperty) { - mCommandSender->cbSystemPropertyChanged(SystemProperty); + do_msg_s msg; + msg.msgID = MDO_cbSystemPropertyChanged; + msg.parameters.systemProperty = SystemProperty; + pipeCommand(msg); } void DatabaseObserver::timingInformationChanged(const am_mainConnectionID_t mainConnection, const am_timeSync_t time) { - mCommandSender->cbTimingInformationChanged(mainConnection, time); + do_msg_s msg; + msg.msgID = MDO_cbTimingInformationChanged; + msg.parameters.timingInformationChanged.mainConnection = mainConnection; + msg.parameters.timingInformationChanged.time = time; + pipeCommand(msg); //todo:inform the controller via controlsender } +void DatabaseObserver::receiverCallback(const pollfd pollfd, const sh_pollHandle_t handle, void *userData) +{ + (void) handle; + (void) userData; + //it is no really important what to read here, we will read the queue later... + char buffer[10]; + if (read(pollfd.fd, buffer, 10) == -1) + { + logError("DatabaseObserver::receiverCallback could not read pipe!"); + } +} + +bool DatabaseObserver::dispatcherCallback(const sh_pollHandle_t handle, void *userData) +{ + (void) handle; + (void) userData; + do_msg_s msg; + + msg = mQueue.front(); + mQueue.pop(); + + switch (msg.msgID) + { + case MDO_cbNumberOfSinksChanged: + mCommandSender->cbNumberOfSinksChanged(); + break; + case MDO_cbNumberOfSourcesChanged: + mCommandSender->cbNumberOfSourcesChanged(); + break; + case MDO_cbNumberOfMainConnectionsChanged: + mCommandSender->cbNumberOfMainConnectionsChanged(); + break; + case MDO_cbNumberOfSinkClassesChanged: + mCommandSender->cbNumberOfSinkClassesChanged(); + break; + case MDO_cbNumberOfSourceClassesChanged: + mCommandSender->cbNumberOfSourceClassesChanged(); + break; + case MDO_cbMainConnectionStateChanged: + mCommandSender->cbMainConnectionStateChanged(msg.parameters.connectionStateChanged.connectionID, msg.parameters.connectionStateChanged.connectionState); + break; + case MDO_cbMainSinkSoundPropertyChanged: + mCommandSender->cbMainSinkSoundPropertyChanged(msg.parameters.mainSinkSoundPropertyChanged.sinkID, msg.parameters.mainSinkSoundPropertyChanged.SoundProperty); + break; + case MDO_cbMainSourceSoundPropertyChanged: + mCommandSender->cbMainSourceSoundPropertyChanged(msg.parameters.mainSourceSoundPropertyChanged.sourceID, msg.parameters.mainSourceSoundPropertyChanged.SoundProperty); + break; + case MDO_cbSinkAvailabilityChanged: + mCommandSender->cbSinkAvailabilityChanged(msg.parameters.sinkAvailabilityChanged.sinkID, msg.parameters.sinkAvailabilityChanged.availability); + break; + case MDO_cbSourceAvailabilityChanged: + mCommandSender->cbSourceAvailabilityChanged(msg.parameters.sourceAvailabilityChanged.sourceID, msg.parameters.sourceAvailabilityChanged.availability); + break; + case MDO_cbVolumeChanged: + mCommandSender->cbVolumeChanged(msg.parameters.volumeChanged.sinkID, msg.parameters.volumeChanged.volume); + break; + case MDO_cbSinkMuteStateChanged: + mCommandSender->cbSinkMuteStateChanged(msg.parameters.sinkMuteStateChanged.sinkID, msg.parameters.sinkMuteStateChanged.muteState); + break; + case MDO_cbSystemPropertyChanged: + mCommandSender->cbSystemPropertyChanged(msg.parameters.systemProperty); + break; + case MDO_cbTimingInformationChanged: + mCommandSender->cbTimingInformationChanged(msg.parameters.timingInformationChanged.mainConnection, msg.parameters.timingInformationChanged.time); + break; + default: + logError("Something went totally wrong in DatabaseObserver::dispatcherCallback"); + break; + } + + if (mQueue.size() > 0) + return (true); + return (false); +} + +bool DatabaseObserver::checkerCallback(const sh_pollHandle_t handle, void *userData) +{ + (void) handle; + (void) userData; + if (mQueue.size() > 0) + return (true); + return (false); +} + diff --git a/AudioManagerDaemon/src/RoutingReceiver.cpp b/AudioManagerDaemon/src/RoutingReceiver.cpp index b4b7764..49ee3f9 100644 --- a/AudioManagerDaemon/src/RoutingReceiver.cpp +++ b/AudioManagerDaemon/src/RoutingReceiver.cpp @@ -35,7 +35,7 @@ using namespace am; -am::RoutingReceiver::RoutingReceiver(DatabaseHandler *iDatabaseHandler, RoutingSender *iRoutingSender, ControlSender *iControlSender, SocketHandler *iSocketHandler) : +RoutingReceiver::RoutingReceiver(DatabaseHandler *iDatabaseHandler, RoutingSender *iRoutingSender, ControlSender *iControlSender, SocketHandler *iSocketHandler) : mDatabaseHandler(iDatabaseHandler), // mRoutingSender(iRoutingSender), // mControlSender(iControlSender), // @@ -47,19 +47,7 @@ am::RoutingReceiver::RoutingReceiver(DatabaseHandler *iDatabaseHandler, RoutingS assert(mSocketHandler!=NULL); } -am::RoutingReceiver::RoutingReceiver(DatabaseHandler *iDatabaseHandler, RoutingSender *iRoutingSender, ControlSender *iControlSender, DBusWrapper *iDBusWrapper) : - mDatabaseHandler(iDatabaseHandler), // - mRoutingSender(iRoutingSender), // - mControlSender(iControlSender), // - mDBusWrapper(iDBusWrapper) // -{ - assert(mDatabaseHandler!=NULL); - assert(mRoutingSender!=NULL); - assert(mControlSender!=NULL); - assert(mDBusWrapper!=NULL); -} - -am::RoutingReceiver::RoutingReceiver(DatabaseHandler *iDatabaseHandler, RoutingSender *iRoutingSender, ControlSender *iControlSender, SocketHandler *iSocketHandler, DBusWrapper *iDBusWrapper) : +RoutingReceiver::RoutingReceiver(DatabaseHandler *iDatabaseHandler, RoutingSender *iRoutingSender, ControlSender *iControlSender, SocketHandler *iSocketHandler, DBusWrapper *iDBusWrapper) : mDatabaseHandler(iDatabaseHandler), // mRoutingSender(iRoutingSender), // mControlSender(iControlSender), // @@ -317,12 +305,12 @@ void RoutingReceiver::sendChangedData(const std::vector<am_EarlyData_s> & earlyD am_Error_e RoutingReceiver::peekSinkClassID(const std::string& name, am_sinkClass_t& sinkClassID) { - return mDatabaseHandler->peekSinkClassID(name,sinkClassID); + return mDatabaseHandler->peekSinkClassID(name, sinkClassID); } am_Error_e RoutingReceiver::peekSourceClassID(const std::string& name, am_sourceClass_t& sourceClassID) { - return mDatabaseHandler->peekSourceClassID(name,sourceClassID); + return mDatabaseHandler->peekSourceClassID(name, sourceClassID); } am_Error_e RoutingReceiver::getDBusConnectionWrapper(DBusWrapper *& dbusConnectionWrapper) const @@ -337,12 +325,8 @@ am_Error_e RoutingReceiver::getDBusConnectionWrapper(DBusWrapper *& dbusConnecti am_Error_e RoutingReceiver::getSocketHandler(SocketHandler *& socketHandler) const { -#ifdef WITH_SOCKETHANDLER_LOOP socketHandler = mSocketHandler; return E_OK; -#else - return E_UNKNOWN; -#endif } uint16_t RoutingReceiver::getInterfaceVersion() const diff --git a/AudioManagerDaemon/src/main.cpp b/AudioManagerDaemon/src/main.cpp index bc74580..b4f0e99 100644 --- a/AudioManagerDaemon/src/main.cpp +++ b/AudioManagerDaemon/src/main.cpp @@ -37,12 +37,10 @@ #ifdef WITH_TELNET #include "TelnetServer.h" #endif -#ifdef WITH_SOCKETHANDLER_LOOP -#include <SocketHandler.h> -#endif #ifdef WITH_DBUS_WRAPPER #include <dbus/DBusWrapper.h> #endif +#include <SocketHandler.h> #include "DatabaseHandler.h" #include "ControlSender.h" #include "CommandSender.h" @@ -258,16 +256,11 @@ int main(int argc, char *argv[]) std::set_new_handler(&OutOfMemoryHandler); //Instantiate all classes. Keep in same order ! -#ifdef WITH_SOCKETHANDLER_LOOP SocketHandler iSocketHandler; -#endif + #ifdef WITH_DBUS_WRAPPER -#ifdef WITH_SOCKETHANDLER_LOOP DBusWrapper iDBusWrapper(&iSocketHandler); -#else /*WITH_SOCKETHANDLER_LOOP*/ - DBusWrapper iDBusWrapper; -#endif /*WITH_SOCKETHANDLER_LOOP*/ #endif /*WITH_DBUS_WRAPPER */ DatabaseHandler iDatabaseHandler(databasePath); @@ -277,33 +270,27 @@ int main(int argc, char *argv[]) Router iRouter(&iDatabaseHandler, &iControlSender); #ifdef WITH_DBUS_WRAPPER -#ifdef WITH_SOCKETHANDLER_LOOP CommandReceiver iCommandReceiver(&iDatabaseHandler, &iControlSender, &iSocketHandler, &iDBusWrapper); RoutingReceiver iRoutingReceiver(&iDatabaseHandler, &iRoutingSender, &iControlSender, &iSocketHandler, &iDBusWrapper); ControlReceiver iControlReceiver(&iDatabaseHandler, &iRoutingSender, &iCommandSender, &iSocketHandler, &iRouter); #ifdef WITH_TELNET TelnetServer iTelnetServer(&iSocketHandler, &iCommandSender, &iCommandReceiver, &iRoutingSender, &iRoutingReceiver, &iControlSender, &iControlReceiver, &iDatabaseHandler, &iRouter, telnetport, maxConnections); + DatabaseObserver iObserver(&iCommandSender, &iRoutingSender, &iSocketHandler, &iTelnetServer); +#else /*WITH_TELNET*/ + DatabaseObserver iObserver(&iCommandSender, &iSocketHandler, &iRoutingSender); #endif -#else /*WITH_SOCKETHANDLER_LOOP */ - CommandReceiver iCommandReceiver(&iDatabaseHandler,&iControlSender,&iDBusWrapper); - RoutingReceiver iRoutingReceiver(&iDatabaseHandler,&iRoutingSender,&iControlSender,&iDBusWrapper); - ControlReceiver iControlReceiver(&iDatabaseHandler,&iRoutingSender,&iCommandSender, &iRouter); -#endif /*WITH_SOCKETHANDLER_LOOP*/ #else /*WITH_DBUS_WRAPPER*/ CommandReceiver iCommandReceiver(&iDatabaseHandler,&iControlSender,&iSocketHandler); RoutingReceiver iRoutingReceiver(&iDatabaseHandler,&iRoutingSender,&iControlSender,&iSocketHandler); ControlReceiver iControlReceiver(&iDatabaseHandler,&iRoutingSender,&iCommandSender,&iSocketHandler, &iRouter); #ifdef WITH_TELNET TelnetServer iTelnetServer(&iSocketHandler,telnetport,maxConnections); + DatabaseObserver iObserver(&iCommandSender, &iRoutingSender, &iSocketHandler, &iTelnetServer); +#else /*WITH_TELNET*/ + DatabaseObserver iObserver(&iCommandSender, &iSocketHandler, &iRoutingSender); #endif #endif /*WITH_DBUS_WRAPPER*/ -#ifdef WITH_TELNET - DatabaseObserver iObserver(&iCommandSender, &iRoutingSender, &iTelnetServer); -#else - DatabaseObserver iObserver(&iCommandSender, &iRoutingSender); -#endif - iDatabaseHandler.registerObserver(&iObserver); //startup all the Plugins and Interfaces @@ -314,15 +301,8 @@ int main(int argc, char *argv[]) //when the routingInterface is done, all plugins are loaded: iControlSender.hookAllPluginsLoaded(); -#ifdef WITH_SOCKETHANDLER_LOOP + //start the mainloop here.... iSocketHandler.start_listenting(); -#endif /*WITH_SOCKETHANDLER_LOOP*/ - -#ifdef WITH_DBUS_WRAPPER -#ifdef WITH_SIMPLEDBUS_LOOP - iDBusWrapper.dbusMainLoop(); -#endif/*WITH_SIMPLEDBUS_LOOP*/ -#endif /*WITH_DBUS_WRAPPER*/ close(fd0); close(fd1); |