summaryrefslogtreecommitdiff
path: root/AudioManagerDaemon/src
diff options
context:
space:
mode:
authorchristian mueller <christian.ei.mueller@bmw.de>2012-02-23 17:25:23 +0100
committerchristian mueller <christian.ei.mueller@bmw.de>2012-02-23 17:25:23 +0100
commitbec7e4f38620d7855c0e5c0d4cea933dcf2827f3 (patch)
tree3b7b196f88f5b7cba4c885bcc39623b35e53e55f /AudioManagerDaemon/src
parent26b122e62777dddff469fa53058ab26fe212d4cf (diff)
downloadaudiomanager-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.cpp14
-rw-r--r--AudioManagerDaemon/src/CommandSender.cpp24
-rw-r--r--AudioManagerDaemon/src/ControlReceiver.cpp16
-rw-r--r--AudioManagerDaemon/src/DBusWrapper.cpp41
-rw-r--r--AudioManagerDaemon/src/DatabaseHandler.cpp2
-rw-r--r--AudioManagerDaemon/src/DatabaseObserver.cpp225
-rw-r--r--AudioManagerDaemon/src/RoutingReceiver.cpp24
-rw-r--r--AudioManagerDaemon/src/main.cpp38
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);