From 06476e68a42077a0597628dca1c4a53cd20f5236 Mon Sep 17 00:00:00 2001 From: christian mueller Date: Wed, 4 Apr 2012 15:27:10 +0200 Subject: * some enhancement to routingPluginDbus to make to get acces to all interfaces and handle multiple domains Signed-off-by: christian mueller --- .../include/IAmRoutingReceiverShadow.h | 143 +++++++++++++-------- 1 file changed, 87 insertions(+), 56 deletions(-) (limited to 'PluginRoutingInterfaceDbus/include/IAmRoutingReceiverShadow.h') diff --git a/PluginRoutingInterfaceDbus/include/IAmRoutingReceiverShadow.h b/PluginRoutingInterfaceDbus/include/IAmRoutingReceiverShadow.h index 4cd1b2d..642ab6f 100644 --- a/PluginRoutingInterfaceDbus/include/IAmRoutingReceiverShadow.h +++ b/PluginRoutingInterfaceDbus/include/IAmRoutingReceiverShadow.h @@ -1,7 +1,9 @@ /** * Copyright (c) copyright 2011-2012 Aricent® Group and its licensors + * Copyright (c) 2012 BMW * - * \author: Sampreeth Ramavana + * \author Sampreeth Ramavana + * \author Christian Mueller, christian.ei.mueller@bmw.de BMW 2011,2012 * * \copyright * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, @@ -18,79 +20,108 @@ #ifndef _IAMROUTINGRECEIVERSHADOW_H_ #define _IAMROUTINGRECEIVERSHADOW_H_ -#include "routing/IAmRoutingSend.h" #include -#include #include -#include "shared/CAmDbusWrapper.h" #include "CAmDbusMessageHandler.h" namespace am { -class IAmRoutingReceiverShadow; - -typedef void (IAmRoutingReceiverShadow::*CallBackMethod)(DBusConnection *connection, DBusMessage *message); +class CAmRoutingSenderDbus; +class IAmRoutingReceive; +class CAmDbusWrapper; /** * receives the DBus Callbacks, marhsalls and demarshalls the parameters and calls CommandReceive */ -class IAmRoutingReceiverShadow { +class IAmRoutingReceiverShadowDbus +{ public: - IAmRoutingReceiverShadow(); - virtual ~IAmRoutingReceiverShadow(); - void ackConnect(DBusConnection *conn, DBusMessage *msg) ; - void ackDisconnect(DBusConnection *conn, DBusMessage *msg) ; - void ackSetSinkVolume(DBusConnection *conn, DBusMessage *msg); - void ackSetSourceVolume(DBusConnection *conn, DBusMessage *msg); - void ackSinkVolumeTick(DBusConnection *conn, DBusMessage *msg); - void ackSourceVolumeTick(DBusConnection *conn, DBusMessage *msg); - void ackSetSinkSoundProperty(DBusConnection *conn, DBusMessage *msg); - void ackSetSourceSoundProperty(DBusConnection *conn, DBusMessage *msg); + IAmRoutingReceiverShadowDbus(CAmRoutingSenderDbus* pRoutingSenderDbus); + virtual ~IAmRoutingReceiverShadowDbus(); + void ackConnect(DBusConnection *conn, DBusMessage *msg); + void ackDisconnect(DBusConnection *conn, DBusMessage *msg); + void ackSetSinkVolume(DBusConnection *conn, DBusMessage *msg); + void ackSetSourceVolume(DBusConnection *conn, DBusMessage *msg); + void ackSetSourceState(DBusConnection *conn, DBusMessage *msg); + void ackSinkVolumeTick(DBusConnection *conn, DBusMessage *msg); + void ackSourceVolumeTick(DBusConnection *conn, DBusMessage *msg); + void ackSetSinkSoundProperty(DBusConnection *conn, DBusMessage *msg); + void ackSetSourceSoundProperty(DBusConnection *conn, DBusMessage *msg); + void ackSetSinkSoundProperties(DBusConnection *conn, DBusMessage *msg); + void ackSetSourceSoundProperties(DBusConnection *conn, DBusMessage *msg); + void ackCrossFading(DBusConnection *conn, DBusMessage *msg); + void registerDomain(DBusConnection *conn, DBusMessage *msg); + void registerSource(DBusConnection *conn, DBusMessage *msg); + void registerSink(DBusConnection *conn, DBusMessage *msg); + void registerGateway(DBusConnection *conn, DBusMessage *msg); + void peekDomain(DBusConnection *conn, DBusMessage *msg); + void deregisterDomain(DBusConnection *conn, DBusMessage *msg); + void deregisterGateway(DBusConnection *conn, DBusMessage *msg); + void peekSink(DBusConnection *conn, DBusMessage *msg); + void deregisterSink(DBusConnection *conn, DBusMessage *msg); + void peekSource(DBusConnection *conn, DBusMessage *msg); + void deregisterSource(DBusConnection *conn, DBusMessage *msg); + void registerCrossfader(DBusConnection *conn, DBusMessage *msg); + void deregisterCrossfader(DBusConnection *conn, DBusMessage *msg); + void peekSourceClassID(DBusConnection *conn, DBusMessage *msg); + void peekSinkClassID(DBusConnection *conn, DBusMessage *msg); + void hookInterruptStatusChange(DBusConnection *conn, DBusMessage *msg); + void hookDomainRegistrationComplete(DBusConnection *conn, DBusMessage *msg); + void hookSinkAvailablityStatusChange(DBusConnection *conn, DBusMessage *msg); + void hookSourceAvailablityStatusChange(DBusConnection *conn, DBusMessage *msg); + void hookDomainStateChange(DBusConnection *conn, DBusMessage *msg); + void hookTimingInformationChanged(DBusConnection *conn, DBusMessage *msg); + void sendChangedData(DBusConnection *conn, DBusMessage *msg); + void confirmRoutingReady(DBusConnection *conn, DBusMessage *msg); + void confirmRoutingRundown(DBusConnection *conn, DBusMessage *msg); + + /** + * sets the pointer to the CommandReceiveInterface and registers Callback + * @param receiver + */ + void setRoutingReceiver(IAmRoutingReceive*& receiver); - void registerDomain(DBusConnection *conn, DBusMessage *msg) ; - void registerSource(DBusConnection *conn, DBusMessage *msg) ; - void registerSink(DBusConnection *conn, DBusMessage *msg) ; - void registerGateway(DBusConnection *conn, DBusMessage *msg) ; - void hookDomainRegistrationComplete(DBusConnection *conn, DBusMessage *msg); + void gotReady(int16_t numberDomains, uint16_t handle); + void gotRundown(int16_t numberDomains, uint16_t handle); - /** - * sets the pointer to the CommandReceiveInterface and registers Callback - * @param receiver - */ - void setRoutingReceiver(IAmRoutingReceive*& receiver); private: - IAmRoutingReceive* mRoutingReceiveInterface; - CAmDbusWrapper* mDBusWrapper; - typedef std::map functionMap_t; - functionMap_t mFunctionMap; - CAmDbusMessageHandler mDBUSMessageHandler; + typedef void (IAmRoutingReceiverShadowDbus::*CallBackMethod)(DBusConnection *connection, DBusMessage *message); + IAmRoutingReceive* mRoutingReceiveInterface; + CAmDbusWrapper* mDBusWrapper; + CAmRoutingSenderDbus* mpRoutingSenderDbus; + + typedef std::map functionMap_t; + functionMap_t mFunctionMap; + CAmRoutingDbusMessageHandler mDBUSMessageHandler; + int16_t mNumberDomains; + uint16_t mHandle; - /** - * receives a callback whenever the path of the plugin is called - */ - static DBusHandlerResult receiveCallback(DBusConnection *conn, DBusMessage *msg, void *user_data); + /** + * receives a callback whenever the path of the plugin is called + */ + static DBusHandlerResult receiveCallback(DBusConnection *conn, DBusMessage *msg, void *user_data); - /** - * dynamic delegate that handles the Callback of the static receiveCallback - * @param conn DBus connection - * @param msg DBus message - * @param user_data pointer to instance of IAmRoutingReceiverShadow - * @return - */ - DBusHandlerResult receiveCallbackDelegate(DBusConnection *conn, DBusMessage *msg); + /** + * dynamic delegate that handles the Callback of the static receiveCallback + * @param conn DBus connection + * @param msg DBus message + * @param user_data pointer to instance of IAmRoutingReceiverShadow + * @return + */ + DBusHandlerResult receiveCallbackDelegate(DBusConnection *conn, DBusMessage *msg); - /** - * sends out introspectiondata read from an xml file. - * @param conn - * @param msg - */ - void sendIntrospection(DBusConnection* conn, DBusMessage* msg) ; + /** + * sends out introspectiondata read from an xml file. + * @param conn + * @param msg + */ + void sendIntrospection(DBusConnection* conn, DBusMessage* msg); - /** - * creates the function map needed to combine DBus messages and function adresses - * @return the map - */ - functionMap_t createMap(); + /** + * creates the function map needed to combine DBus messages and function adresses + * @return the map + */ + functionMap_t createMap(); }; } -- cgit v1.2.1