summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchristian mueller <christian.ei.mueller@bmw.de>2012-02-21 18:21:51 +0100
committerchristian mueller <christian.ei.mueller@bmw.de>2012-02-21 18:21:51 +0100
commit817b5ead32bb080bd5a6fff26b3957d400ba598c (patch)
tree8a9ee999711a1fc2300b086d2acab558da6fded9
parente2773d0816b538c241d63054e2850e215ac96f97 (diff)
downloadaudiomanager-817b5ead32bb080bd5a6fff26b3957d400ba598c.tar.gz
* [ GAM-18 ] Add cancel rundown messages to interfaces: added possbility for controller to call rundown on command and routing interfaces
* beautified EA generated code in comments
-rw-r--r--AudioManagerDaemon/include/ControlReceiver.h2
-rw-r--r--AudioManagerDaemon/src/ControlReceiver.cpp12
-rw-r--r--PluginControlInterface/include/ControlSender.h2
-rw-r--r--PluginControlInterface/src/ControlSender.cpp7
-rw-r--r--includes/audiomanagertypes.h256
-rw-r--r--includes/command/CommandReceiveInterface.h21
-rw-r--r--includes/command/CommandSendInterface.h21
-rw-r--r--includes/control/ControlReceiveInterface.h29
-rw-r--r--includes/control/ControlSendInterface.h24
-rw-r--r--includes/projecttypes.h43
-rw-r--r--includes/routing/RoutingReceiveInterface.h21
-rw-r--r--includes/routing/RoutingSendInterface.h21
12 files changed, 228 insertions, 231 deletions
diff --git a/AudioManagerDaemon/include/ControlReceiver.h b/AudioManagerDaemon/include/ControlReceiver.h
index 45788f5..9aec23f 100644
--- a/AudioManagerDaemon/include/ControlReceiver.h
+++ b/AudioManagerDaemon/include/ControlReceiver.h
@@ -112,6 +112,8 @@ public:
am_Error_e getListSystemProperties(std::vector<am_SystemProperty_s>& listSystemProperties) const;
void setRoutingReady();
void setCommandReady();
+ void setCommandRundown();
+ void setRoutingRundown();
am_Error_e getSocketHandler(SocketHandler*& socketHandler);
uint16_t getInterfaceVersion() const;
diff --git a/AudioManagerDaemon/src/ControlReceiver.cpp b/AudioManagerDaemon/src/ControlReceiver.cpp
index 7909851..5671fd0 100644
--- a/AudioManagerDaemon/src/ControlReceiver.cpp
+++ b/AudioManagerDaemon/src/ControlReceiver.cpp
@@ -499,6 +499,18 @@ am_Error_e ControlReceiver::getSocketHandler(SocketHandler *& socketHandler)
#endif
}
+void am::ControlReceiver::setCommandRundown()
+{
+ logInfo("ControlReceiver::setCommandRundown got called");
+ mCommandSender->cbCommunicationRundown();
+}
+
+void am::ControlReceiver::setRoutingRundown()
+{
+ logInfo("ControlReceiver::setRoutingRundown got called");
+ mRoutingSender->routingInterfacesRundown();
+}
+
uint16_t ControlReceiver::getInterfaceVersion() const
{
return ControlReceiveVersion;
diff --git a/PluginControlInterface/include/ControlSender.h b/PluginControlInterface/include/ControlSender.h
index ace61a6..0e98768 100644
--- a/PluginControlInterface/include/ControlSender.h
+++ b/PluginControlInterface/include/ControlSender.h
@@ -77,7 +77,7 @@ public:
void cbAckSetSourceSoundProperties(const am_Handle_s handle, const am_Error_e error);
void cbAckSetSinkSoundProperty(const am_Handle_s handle, const am_Error_e error);
void cbAckSetSinkSoundProperties(const am_Handle_s handle, const am_Error_e error);
- am_Error_e getConnectionFormatChoice(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const std::vector<am_ConnectionFormat_e> listPossibleConnectionFormats, std::vector<am_ConnectionFormat_e>& listPrioConnectionFormats);
+ am_Error_e getConnectionFormatChoice(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector<am_ConnectionFormat_e> listPossibleConnectionFormats, std::vector<am_ConnectionFormat_e>& listPrioConnectionFormats);
uint16_t getInterfaceVersion() const;
private:
diff --git a/PluginControlInterface/src/ControlSender.cpp b/PluginControlInterface/src/ControlSender.cpp
index 8969b1a..60ae417 100644
--- a/PluginControlInterface/src/ControlSender.cpp
+++ b/PluginControlInterface/src/ControlSender.cpp
@@ -57,6 +57,7 @@ am_Error_e ControlSenderPlugin::startupController(ControlReceiveInterface *contr
assert(controlreceiveinterface);
mControlReceiveInterface = controlreceiveinterface;
//here is a good place to insert SystemProperties into the database...
+ //and might be a good place to insert the Source and Sink CLasses as well
return E_NOT_USED;
}
@@ -134,7 +135,8 @@ am_Error_e ControlSenderPlugin::hookUserDisconnectionRequest(const am_mainConnec
am_Error_e ControlSenderPlugin::hookUserSetMainSinkSoundProperty(const am_sinkID_t sinkID, const am_MainSoundProperty_s & soundProperty)
{
- if (sinkID==0) return E_NON_EXISTENT;
+ if (sinkID == 0)
+ return E_NON_EXISTENT;
mainSinkSoundPropertySet set;
set.sinkID = sinkID;
@@ -438,10 +440,11 @@ void ControlSenderPlugin::cbAckSetSinkSoundProperties(const am_Handle_s handle,
(void) handle;
}
-am_Error_e ControlSenderPlugin::getConnectionFormatChoice(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const std::vector<am_ConnectionFormat_e> listPossibleConnectionFormats, std::vector<am_ConnectionFormat_e>& listPrioConnectionFormats)
+am_Error_e ControlSenderPlugin::getConnectionFormatChoice(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector<am_ConnectionFormat_e> listPossibleConnectionFormats, std::vector<am_ConnectionFormat_e> & listPrioConnectionFormats)
{
(void) sourceID;
(void) sinkID;
+ (void) listRoute;
//ok, this is cheap. In a real product you have your preferences, right?
listPrioConnectionFormats = listPossibleConnectionFormats;
return (E_OK);
diff --git a/includes/audiomanagertypes.h b/includes/audiomanagertypes.h
index c29afd6..f1bd542 100644
--- a/includes/audiomanagertypes.h
+++ b/includes/audiomanagertypes.h
@@ -10,7 +10,7 @@
*
* \section License
* GNU Lesser General Public License, version 2.1, with special exception (GENIVI clause)
-* Copyright (C) 2011, BMW AG Christian M?ller Christian.ei.mueller@bmw.de
+* Copyright (C) 2011, BMW AG Christian Mueller Christian.ei.mueller@bmw.de
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, version 2.1, for more details.
@@ -22,8 +22,8 @@
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_BB47505C_A541_4063_AF54_010D0AC22821__INCLUDED_)
-#define EA_BB47505C_A541_4063_AF54_010D0AC22821__INCLUDED_
+#if !defined(EA_6D2D8AED_B7CC_424e_8C3F_EB10C5EBDC21__INCLUDED_)
+#define EA_6D2D8AED_B7CC_424e_8C3F_EB10C5EBDC21__INCLUDED_
#include <stdint.h>
#include "projecttypes.h"
@@ -37,10 +37,9 @@ namespace am {
* This is the domain type. Each domain has a unique identifier.
*
* \mainpage
- * \image html "Bild1.png"
- * Copyright Copyright (C) 2011, BMW AG
+ * Copyright Copyright (C) 2011,2012 BMW AG
*
- * \date 22.06.2011
+ * \date 21.2.2012
*
* \author Christian Mueller (christian.ei.mueller@bmw.de)
*
@@ -95,6 +94,14 @@ namespace am {
*
* This interface is used by the AudioManager to control the RoutingAdapters and communicate with them. The communication is based on two interfaces, one is provided by the AudioManager for communication from the adapters towards the AudioManager and one for the opposite direction. The design of the AudioManager shall be done in such a way that several Interfaces are supported at the same time via a plug-in mechanism. The plug-ins are (either statically - due to performance reasons or dynamically) loaded at start-up. Due to this architecture, the number of buses and routing adapters that are supported are as low as possible for each system and as high as needed without the need of changing the AudioManager itself. The AudioManager expects a bus-like structure behind each plug-in, so that a plug-in can implement a bus interface and proxy the messages to the routing adapters - the AudioManager will be capable of addressing more than one adapter one each plug-in. The interface shall is asynchronous for all timely critical commands.
*
+ * \section interfaces Interfaces
+ * the calls to the interfaces of the AudioManagerDaemon are generally not threadsafe !
+ * Nevertheless if such calls from a different thread-context are needed, you may use the defered-call pattern that utilizes the mainloop (Sockethandler) to get self called in the next loop of the mainloop. For more infomation please check the audiomanger wiki page.
+ *
+ * \section deferred The deferred call pattern
+ * Create a unix pipe or socket and add the file descriptor to the Sockethandler. Whenever a call needs to be deferred you can store the necessary information protected by a mutex in a queue and write to the socket or pipe. This will lead to a callback in the next loop of the mainloop - when getting called by the callback that was registered at the Sockethandler execute your call with the information stored away.
+ *
+ *
* \section sources_sinks Sources & Sinks
* \subsection Visibility
* Sources and sinks can either be visible or not. If they are visible, the HMI is informed about their existence and can use them. \n
@@ -122,113 +129,98 @@ namespace am {
* It is the job of the AudioManager to retrieve all latency timing information from each connection, to aggregate this information and provide a latency information on a per MainConnection Basis. It is not the task of the AudioManager to actually delay or speed up video or audio signals to achieve a lipsync. The actual correction shall be done in the videoplayer with the information provided by the AudioManager.
* The time information is always reported by the routingadaptors for each connection. Delays that are introduced in a sink or a gateway are counting for the connection that connects to this sink or gateway.\n
* After the buildup of a connection the first timing information needs to be sent within 5 seconds, the timing information from the routing adaptors need to be sent via 4 seconds. If the latency for a connection is variable and changes over lifetime of the connection, the routing adaptors shall resend the value and the audiomanger will correct the over all latency.\n
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_domainID_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_sourceID_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_sinkID_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_gatewayID_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_crossfaderID_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_connectionID_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_mainConnectionID_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_speed_t;
/**
* The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and maximum can be limited by actual project.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef int16_t am_volume_t;
/**
* This is the volume presented on the command interface. It is in the duty of the Controller to change the volumes given here into meaningful values on the routing interface.
* The range of this type is customer specific.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef int16_t am_mainVolume_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_sourceClass_t;
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_sinkClass_t;
/**
* time in ms!
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef uint16_t am_time_t;
/**
* offset time that is introduced in milli seconds.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
typedef int16_t am_timeSync_t;
/**
* with the help of this enum, sinks and sources can report their availability state
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_Availablility_e
{
@@ -249,9 +241,8 @@ namespace am {
/**
* represents the connection state
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_ConnectionState_e
{
@@ -280,9 +271,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_DomainState_e
{
@@ -307,9 +297,8 @@ namespace am {
/**
* This enum characterizes the data of the EarlyData_t
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_EarlyDataType_e
{
@@ -338,9 +327,8 @@ namespace am {
/**
* the errors of the audiomanager. All possible errors are in here. This enum is used widely as return parameter.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_Error_e
{
@@ -392,9 +380,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_MuteState_e
{
@@ -415,9 +402,8 @@ namespace am {
/**
* The source state reflects the state of the source
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_SourceState_e
{
@@ -439,9 +425,8 @@ namespace am {
/**
* This enumeration is used to define the type of the action that is correlated to a handle.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_Handle_e
{
@@ -460,9 +445,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:31 PM
*/
enum am_InterruptState_e
{
@@ -483,9 +467,8 @@ namespace am {
/**
* describes the active sink of a crossfader.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:32 PM
*/
enum am_HotSink_e
{
@@ -510,9 +493,8 @@ namespace am {
/**
* this describes the availability of a sink or a source together with the latest change
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:32 PM
*/
struct am_Availability_s
{
@@ -530,9 +512,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:50 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:32 PM
*/
struct am_ClassProperty_s
{
@@ -544,9 +525,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:51 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:32 PM
*/
struct am_Crossfader_s
{
@@ -562,9 +542,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:51 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:32 PM
*/
struct am_Gateway_s
{
@@ -603,9 +582,8 @@ namespace am {
/**
* This represents one "hopp" in a route
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:51 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:32 PM
*/
struct am_RoutingElement_s
{
@@ -619,9 +597,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:51 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:32 PM
*/
struct am_Route_s
{
@@ -634,9 +611,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:51 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:32 PM
*/
struct am_SoundProperty_s
{
@@ -648,9 +624,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:51 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:33 PM
*/
struct am_SystemProperty_s
{
@@ -668,9 +643,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:51 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:33 PM
*/
struct am_SinkClass_s
{
@@ -683,9 +657,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:51 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:33 PM
*/
struct am_SourceClass_s
{
@@ -702,9 +675,8 @@ namespace am {
/**
* this type holds all information of sources relevant to the HMI
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:52 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:33 PM
*/
struct am_SourceType_s
{
@@ -719,9 +691,8 @@ namespace am {
/**
* this type holds all information of sinks relevant to the HMI
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:52 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:33 PM
*/
struct am_SinkType_s
{
@@ -737,9 +708,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:52 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:33 PM
*/
struct am_Handle_s
{
@@ -751,9 +721,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:52 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:34 PM
*/
struct am_MainSoundProperty_s
{
@@ -766,9 +735,8 @@ namespace am {
/**
* this type holds all information of connections relevant to the HMI
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:52 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:34 PM
*/
struct am_MainConnectionType_s
{
@@ -783,9 +751,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:52 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:34 PM
*/
struct am_MainConnection_s
{
@@ -807,9 +774,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:52 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:34 PM
*/
struct am_Sink_s
{
@@ -831,9 +797,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:53 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:34 PM
*/
struct am_Source_s
{
@@ -864,9 +829,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:53 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:34 PM
*/
struct am_Domain_s
{
@@ -883,9 +847,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:53 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:34 PM
*/
struct am_Connection_s
{
@@ -903,9 +866,8 @@ namespace am {
* data type depends of am_EarlyDataType_e:
* volume_t in case of ED_SOURCE_VOLUME, ED_SINK_VOLUME
* soundProperty_t in case of ED_SOURCE_PROPERTY, ED_SINK_PROPERTY
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:53 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
union am_EarlyData_u
{
@@ -920,9 +882,8 @@ namespace am {
* data type depends of am_EarlyDataType_e:
* sourceID in case of ED_SOURCE_VOLUME, ED_SOURCE_PROPERTY
* sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:53 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
union am_DataType_u
{
@@ -934,9 +895,8 @@ namespace am {
};
/**
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:53 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
struct am_EarlyData_s
{
@@ -948,4 +908,4 @@ namespace am {
};
}
-#endif // !defined(EA_BB47505C_A541_4063_AF54_010D0AC22821__INCLUDED_)
+#endif // !defined(EA_6D2D8AED_B7CC_424e_8C3F_EB10C5EBDC21__INCLUDED_)
diff --git a/includes/command/CommandReceiveInterface.h b/includes/command/CommandReceiveInterface.h
index 257d5d9..b07ef2e 100644
--- a/includes/command/CommandReceiveInterface.h
+++ b/includes/command/CommandReceiveInterface.h
@@ -10,7 +10,7 @@
*
* \section License
* GNU Lesser General Public License, version 2.1, with special exception (GENIVI clause)
-* Copyright (C) 2011, BMW AG Christian M?ller Christian.ei.mueller@bmw.de
+* Copyright (C) 2011, BMW AG Christian Mueller Christian.ei.mueller@bmw.de
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, version 2.1, for more details.
@@ -22,8 +22,8 @@
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_C6A85AF3_95A7_4c37_90ED_CA847BA7F31D__INCLUDED_)
-#define EA_C6A85AF3_95A7_4c37_90ED_CA847BA7F31D__INCLUDED_
+#if !defined(EA_241FAB0A_6108_4f68_8AAD_F2218B1C41D9__INCLUDED_)
+#define EA_241FAB0A_6108_4f68_8AAD_F2218B1C41D9__INCLUDED_
#include <vector>
#include <string>
@@ -34,13 +34,16 @@ class SocketHandler;
}
-#define CommandReceiveVersion 1
+#define CommandReceiveVersion 1.0
namespace am {
/**
- * The interface towards the Controlling Instance (e.g HMI). It handles the communication towards the HMI and other system components who need to interact with the audiomanagement.
- * @author christian
- * @version 1.0
- * @created 10-Feb-2012 1:31:04 PM
+ * The interface towards the Controlling Instance (e.g HMI). It handles the communication towards the HMI and other system components who need to interact with the audiomanagement.
+ * There are two rules that have to be kept in mind when implementing against this interface:
+ * 1. CALLS TO THIS INTERFACE ARE NOT THREAD SAFE !!!!
+ * 2. YOU MAY NOT THE CALLING INTERFACE DURING AN SYNCHRONOUS OR ASYNCHRONOUS CALL THAT EXPECTS A RETURN VALUE.
+ * Violation these rules may lead to unexpected behavior! Nevertheless you can implement thread safe by using the deferred-call pattern described on the wiki which also helps to implement calls that are forbidden.
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
class CommandReceiveInterface
{
@@ -204,4 +207,4 @@ namespace am {
};
}
-#endif // !defined(EA_C6A85AF3_95A7_4c37_90ED_CA847BA7F31D__INCLUDED_)
+#endif // !defined(EA_241FAB0A_6108_4f68_8AAD_F2218B1C41D9__INCLUDED_)
diff --git a/includes/command/CommandSendInterface.h b/includes/command/CommandSendInterface.h
index bd970d0..f8c47be 100644
--- a/includes/command/CommandSendInterface.h
+++ b/includes/command/CommandSendInterface.h
@@ -10,7 +10,7 @@
*
* \section License
* GNU Lesser General Public License, version 2.1, with special exception (GENIVI clause)
-* Copyright (C) 2011, BMW AG Christian M?ller Christian.ei.mueller@bmw.de
+* Copyright (C) 2011, BMW AG Christian Mueller Christian.ei.mueller@bmw.de
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, version 2.1, for more details.
@@ -22,8 +22,8 @@
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_1EBB5273_A222_43b8_B7C9_435405DF9AA2__INCLUDED_)
-#define EA_1EBB5273_A222_43b8_B7C9_435405DF9AA2__INCLUDED_
+#if !defined(EA_A230EB7E_1719_4470_BCC6_12B0606A80E6__INCLUDED_)
+#define EA_A230EB7E_1719_4470_BCC6_12B0606A80E6__INCLUDED_
#include <vector>
#include <string>
@@ -35,13 +35,16 @@ class CommandReceiveInterface;
#include "CommandReceiveInterface.h"
-#define CommandSendVersion 1
+#define CommandSendVersion 1.0
namespace am {
/**
- * This interface handles all communication from the AudioManagerDaemon towards the system. It is designed in such a way that only callbacks with no return types are implemented. So when the CommandInterfacePlugins are designed in such a way that they broadcast signals to any node who is interested in the particular information (like signals on Dbus for example), more information can be retrieved via the CommandReceiveInterface.
- * @author christian
- * @version 1.0
- * @created 10-Feb-2012 1:31:05 PM
+ * This interface handles all communication from the AudioManagerDaemon towards the system. It is designed in such a way that only callbacks with no return types are implemented. So when the CommandInterfacePlugins are designed in such a way that they broadcast signals to any node who is interested in the particular information (like signals on Dbus for example), more information can be retrieved via the CommandReceiveInterface.
+ * There are two rules that have to be kept in mind when implementing against this interface:
+ * 1. CALLS TO THIS INTERFACE ARE NOT THREAD SAFE !!!!
+ * 2. YOU MAY NOT THE CALLING INTERFACE DURING AN SYNCHRONOUS OR ASYNCHRONOUS CALL THAT EXPECTS A RETURN VALUE.
+ * Violation these rules may lead to unexpected behavior! Nevertheless you can implement thread safe by using the deferred-call pattern described on the wiki which also helps to implement calls that are forbidden.
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:36 PM
*/
class CommandSendInterface
{
@@ -165,4 +168,4 @@ namespace am {
};
}
-#endif // !defined(EA_1EBB5273_A222_43b8_B7C9_435405DF9AA2__INCLUDED_)
+#endif // !defined(EA_A230EB7E_1719_4470_BCC6_12B0606A80E6__INCLUDED_)
diff --git a/includes/control/ControlReceiveInterface.h b/includes/control/ControlReceiveInterface.h
index d01327b..a3ec949 100644
--- a/includes/control/ControlReceiveInterface.h
+++ b/includes/control/ControlReceiveInterface.h
@@ -10,7 +10,7 @@
*
* \section License
* GNU Lesser General Public License, version 2.1, with special exception (GENIVI clause)
-* Copyright (C) 2011, BMW AG Christian M?ller Christian.ei.mueller@bmw.de
+* Copyright (C) 2011, BMW AG Christian Mueller Christian.ei.mueller@bmw.de
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, version 2.1, for more details.
@@ -22,8 +22,8 @@
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_C0D10ABE_48CA_4a18_9932_CB970D9C3723__INCLUDED_)
-#define EA_C0D10ABE_48CA_4a18_9932_CB970D9C3723__INCLUDED_
+#if !defined(EA_E6BEDBFE_083F_4174_8B46_FDDAEE627EB3__INCLUDED_)
+#define EA_E6BEDBFE_083F_4174_8B46_FDDAEE627EB3__INCLUDED_
#include <vector>
#include <string>
@@ -33,13 +33,16 @@ class SocketHandler;
}
-#define ControlReceiveVersion 1
+#define ControlReceiveVersion 1.0
namespace am {
/**
- * This interface gives access to all important functions of the audiomanager that are used by the AudioManagerController to control the system.
- * @author christian
- * @version 1.0
- * @created 10-Feb-2012 1:31:05 PM
+ * This interface gives access to all important functions of the audiomanager that are used by the AudioManagerController to control the system.
+ * There are two rules that have to be kept in mind when implementing against this interface:
+ * 1. CALLS TO THIS INTERFACE ARE NOT THREAD SAFE !!!!
+ * 2. YOU MAY NOT THE CALLING INTERFACE DURING AN SYNCHRONOUS OR ASYNCHRONOUS CALL THAT EXPECTS A RETURN VALUE.
+ * Violation these rules may lead to unexpected behavior! Nevertheless you can implement thread safe by using the deferred-call pattern described on the wiki which also helps to implement calls that are forbidden.
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:36 PM
*/
class ControlReceiveInterface
{
@@ -577,10 +580,18 @@ namespace am {
*/
virtual void setCommandReady() =0;
/**
+ * sets the command interface into the rundown state
+ */
+ virtual void setCommandRundown() =0;
+ /**
* sets the routinginterface to ready.
*/
virtual void setRoutingReady() =0;
/**
+ * sets the routinginterface to the rundown state
+ */
+ virtual void setRoutingRundown() =0;
+ /**
* This function returns the pointer to the socketHandler. This can be used to integrate socket-based activites like communication with the mainloop of the AudioManager.
* returns E_OK if pointer is valid, E_UNKNOWN in case AudioManager was compiled without socketHandler support,
*
@@ -594,4 +605,4 @@ namespace am {
};
}
-#endif // !defined(EA_C0D10ABE_48CA_4a18_9932_CB970D9C3723__INCLUDED_)
+#endif // !defined(EA_E6BEDBFE_083F_4174_8B46_FDDAEE627EB3__INCLUDED_)
diff --git a/includes/control/ControlSendInterface.h b/includes/control/ControlSendInterface.h
index 2d49593..79aeb71 100644
--- a/includes/control/ControlSendInterface.h
+++ b/includes/control/ControlSendInterface.h
@@ -10,7 +10,7 @@
*
* \section License
* GNU Lesser General Public License, version 2.1, with special exception (GENIVI clause)
-* Copyright (C) 2011, BMW AG Christian M?ller Christian.ei.mueller@bmw.de
+* Copyright (C) 2011, BMW AG Christian Mueller Christian.ei.mueller@bmw.de
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, version 2.1, for more details.
@@ -22,8 +22,8 @@
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_F931365D_53A0_4830_8B3E_29C95C767ADC__INCLUDED_)
-#define EA_F931365D_53A0_4830_8B3E_29C95C767ADC__INCLUDED_
+#if !defined(EA_71CB967F_6C92_467f_99BE_B9F5210165C2__INCLUDED_)
+#define EA_71CB967F_6C92_467f_99BE_B9F5210165C2__INCLUDED_
#include <vector>
#include <string>
@@ -33,14 +33,17 @@ namespace am {
class ControlReceiveInterface;
}
-#define ControlSendVersion 1
+#define ControlSendVersion 1.0
namespace am {
/**
* This interface is presented by the AudioManager controller.
- * All the hooks represent system events that need to be handled. The callback functions are used to handle for example answers to function calls on the AudioManagerCoreInterface.
- * @author christian
- * @version 1.0
- * @created 10-Feb-2012 1:31:06 PM
+ * All the hooks represent system events that need to be handled. The callback functions are used to handle for example answers to function calls on the AudioManagerCoreInterface.
+ * There are two rules that have to be kept in mind when implementing against this interface:
+ * 1. CALLS TO THIS INTERFACE ARE NOT THREAD SAFE !!!!
+ * 2. YOU MAY NOT THE CALLING INTERFACE DURING AN SYNCHRONOUS OR ASYNCHRONOUS CALL THAT EXPECTS A RETURN VALUE.
+ * Violation these rules may lead to unexpected behavior! Nevertheless you can implement thread safe by using the deferred-call pattern described on the wiki which also helps to implement calls that are forbidden.
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:37 PM
*/
class ControlSendInterface
{
@@ -355,10 +358,11 @@ namespace am {
*
* @param sourceID sourceID of source that shall be connected
* @param sinkID sinkID of sink that shall be connected
+ * @param listRoute This route is the one the priorized connectionFormats is for.
* @param listPossibleConnectionFormats list of possible connectionformats
* @param listPrioConnectionFormats the list return with prioos from the controller. Best choice on first position.
*/
- virtual am_Error_e getConnectionFormatChoice(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const std::vector<am_ConnectionFormat_e> listPossibleConnectionFormats, std::vector<am_ConnectionFormat_e>& listPrioConnectionFormats) =0;
+ virtual am_Error_e getConnectionFormatChoice(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector<am_ConnectionFormat_e> listPossibleConnectionFormats, std::vector<am_ConnectionFormat_e>& listPrioConnectionFormats) =0;
/**
* This function returns the version of the interface
* returns E_OK, E_UNKOWN if version is unknown.
@@ -367,4 +371,4 @@ namespace am {
};
}
-#endif // !defined(EA_F931365D_53A0_4830_8B3E_29C95C767ADC__INCLUDED_)
+#endif // !defined(EA_71CB967F_6C92_467f_99BE_B9F5210165C2__INCLUDED_)
diff --git a/includes/projecttypes.h b/includes/projecttypes.h
index 792b0fe..dd55451 100644
--- a/includes/projecttypes.h
+++ b/includes/projecttypes.h
@@ -10,7 +10,7 @@
*
* \section License
* GNU Lesser General Public License, version 2.1, with special exception (GENIVI clause)
-* Copyright (C) 2011, BMW AG Christian M?ller Christian.ei.mueller@bmw.de
+* Copyright (C) 2011, BMW AG Christian Mueller Christian.ei.mueller@bmw.de
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, version 2.1, for more details.
@@ -22,15 +22,14 @@
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_3D55671A_C1DC_4042_9EBF_5738C754BF63__INCLUDED_)
-#define EA_3D55671A_C1DC_4042_9EBF_5738C754BF63__INCLUDED_
+#if !defined(EA_8A329625_1F6F_478f_A704_D5359425FB4E__INCLUDED_)
+#define EA_8A329625_1F6F_478f_A704_D5359425FB4E__INCLUDED_
namespace am {
/**
* This enum classifies the format in which data is exchanged within a connection. The enum itself is project specific although there are some Genivi standard formats defined.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:54 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
enum am_ConnectionFormat_e
{
@@ -59,9 +58,8 @@ namespace am {
/**
* This enum gives the information about reason for reason for Source/Sink change
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:54 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
enum am_AvailabilityReason_e
{
@@ -98,9 +96,8 @@ namespace am {
/**
* product specific identifier of property
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:54 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
enum am_ClassProperty_e
{
@@ -122,9 +119,8 @@ namespace am {
/**
* The given ramp types here are just a possiblity. for products, different ramp types can be defined here.
* It is in the responsibility of the product to make sure that the routing plugins are aware of the ramp types used.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:54 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
enum am_RampType_e
{
@@ -145,9 +141,8 @@ namespace am {
/**
* sound properties. Within genivi only the standard properties are defined, for products these need to be extended.
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:54 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
enum am_SoundPropertyType_e
{
@@ -172,9 +167,8 @@ namespace am {
/**
* Here are all SoundProperties that can be set via the CommandInterface. Product specific
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:54 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
enum am_MainSoundPropertyType_e
{
@@ -199,9 +193,8 @@ namespace am {
/**
* describes the different system properties. Project specific
- * @author christian
- * @version 1.0
- * @created 21-Feb-2012 10:06:54 AM
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:35 PM
*/
enum am_SystemPropertyType_e
{
@@ -212,4 +205,4 @@ namespace am {
SYP_MAX
};
}
-#endif // !defined(EA_3D55671A_C1DC_4042_9EBF_5738C754BF63__INCLUDED_)
+#endif // !defined(EA_8A329625_1F6F_478f_A704_D5359425FB4E__INCLUDED_)
diff --git a/includes/routing/RoutingReceiveInterface.h b/includes/routing/RoutingReceiveInterface.h
index 00e4666..f9df264 100644
--- a/includes/routing/RoutingReceiveInterface.h
+++ b/includes/routing/RoutingReceiveInterface.h
@@ -10,7 +10,7 @@
*
* \section License
* GNU Lesser General Public License, version 2.1, with special exception (GENIVI clause)
-* Copyright (C) 2011, BMW AG Christian M?ller Christian.ei.mueller@bmw.de
+* Copyright (C) 2011, BMW AG Christian Mueller Christian.ei.mueller@bmw.de
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, version 2.1, for more details.
@@ -22,8 +22,8 @@
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_C1FDE688_5CB0_42b2_B2CC_C407D50C2D87__INCLUDED_)
-#define EA_C1FDE688_5CB0_42b2_B2CC_C407D50C2D87__INCLUDED_
+#if !defined(EA_3F1137F5_C65B_42b9_A805_A65B61A04AA1__INCLUDED_)
+#define EA_3F1137F5_C65B_42b9_A805_A65B61A04AA1__INCLUDED_
#include <vector>
#include <string>
@@ -35,13 +35,16 @@ class SocketHandler;
}
-#define RoutingReceiveVersion 1
+#define RoutingReceiveVersion 1.0
namespace am {
/**
- * Routing Receive sendInterface description. This class implements everything from RoutingAdapter -> Audiomanager
- * @author christian
- * @version 1.0
- * @created 10-Feb-2012 1:31:06 PM
+ * Routing Receive sendInterface description. This class implements everything from RoutingAdapter -> Audiomanager
+ * There are two rules that have to be kept in mind when implementing against this interface:
+ * 1. CALLS TO THIS INTERFACE ARE NOT THREAD SAFE !!!!
+ * 2. YOU MAY NOT THE CALLING INTERFACE DURING AN SYNCHRONOUS OR ASYNCHRONOUS CALL THAT EXPECTS A RETURN VALUE.
+ * Violation these rules may lead to unexpected behavior! Nevertheless you can implement thread safe by using the deferred-call pattern described on the wiki which also helps to implement calls that are forbidden.
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:37 PM
*/
class RoutingReceiveInterface
{
@@ -332,4 +335,4 @@ namespace am {
};
}
-#endif // !defined(EA_C1FDE688_5CB0_42b2_B2CC_C407D50C2D87__INCLUDED_)
+#endif // !defined(EA_3F1137F5_C65B_42b9_A805_A65B61A04AA1__INCLUDED_)
diff --git a/includes/routing/RoutingSendInterface.h b/includes/routing/RoutingSendInterface.h
index 35c07cd..b126c56 100644
--- a/includes/routing/RoutingSendInterface.h
+++ b/includes/routing/RoutingSendInterface.h
@@ -10,7 +10,7 @@
*
* \section License
* GNU Lesser General Public License, version 2.1, with special exception (GENIVI clause)
-* Copyright (C) 2011, BMW AG Christian M?ller Christian.ei.mueller@bmw.de
+* Copyright (C) 2011, BMW AG Christian Mueller Christian.ei.mueller@bmw.de
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License, version 2.1, for more details.
@@ -22,8 +22,8 @@
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_E1ED14D4_6A57_4661_8587_FA302E2A9951__INCLUDED_)
-#define EA_E1ED14D4_6A57_4661_8587_FA302E2A9951__INCLUDED_
+#if !defined(EA_E6EBF9D0_B241_44f2_AABB_8DAE02D74E88__INCLUDED_)
+#define EA_E6EBF9D0_B241_44f2_AABB_8DAE02D74E88__INCLUDED_
#include <vector>
#include <string>
@@ -35,13 +35,16 @@ class RoutingReceiveInterface;
#include "RoutingReceiveInterface.h"
-#define RoutingSendVersion 1
+#define RoutingSendVersion 1.0
namespace am {
/**
- * This class implements everything from Audiomanager -> RoutingAdapter
- * @author christian
- * @version 1.0
- * @created 10-Feb-2012 1:31:06 PM
+ * This class implements everything from Audiomanager -> RoutingAdapter
+ * There are two rules that have to be kept in mind when implementing against this interface:
+ * 1. CALLS TO THIS INTERFACE ARE NOT THREAD SAFE !!!!
+ * 2. YOU MAY NOT THE CALLING INTERFACE DURING AN SYNCHRONOUS OR ASYNCHRONOUS CALL THAT EXPECTS A RETURN VALUE.
+ * Violation these rules may lead to unexpected behavior! Nevertheless you can implement thread safe by using the deferred-call pattern described on the wiki which also helps to implement calls that are forbidden.
+ * @author Christian Mueller
+ * @created 21-Feb-2012 4:58:37 PM
*/
class RoutingSendInterface
{
@@ -196,4 +199,4 @@ namespace am {
};
}
-#endif // !defined(EA_E1ED14D4_6A57_4661_8587_FA302E2A9951__INCLUDED_)
+#endif // !defined(EA_E6EBF9D0_B241_44f2_AABB_8DAE02D74E88__INCLUDED_)