summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Lorenz <jlorenz@de.adit-jv.com>2014-07-10 10:35:54 +0200
committerChristian Linke <christian.linke@bmw.de>2014-07-11 17:44:11 +0200
commit038732ec315808ccebda557e88a79bec9febf5a9 (patch)
treeaf21a8cfa6a54615cf750a1899bf3f62ffc1b443
parent5e4950430ca01fadcf11cfdba7b1ccbb329d8b76 (diff)
downloadaudiomanager-038732ec315808ccebda557e88a79bec9febf5a9.tar.gz
Bug #100 - update of interface version numbers and added removed comments
Signed-off-by: Jens Lorenz <jlorenz@de.adit-jv.com>
-rw-r--r--AudioManagerDaemon/fidls/AudioManagerTypes.fidl2
-rwxr-xr-x[-rw-r--r--]PluginCommandInterfaceCAPI/fidl/CommandInterface.fidl1157
-rwxr-xr-x[-rw-r--r--]PluginRoutingInterfaceCAPI/fidl/RoutingInterface.fidl1512
-rwxr-xr-xinclude/audiomanagertypes.h63
-rwxr-xr-x[-rw-r--r--]include/command/IAmCommandReceive.h181
-rwxr-xr-x[-rw-r--r--]include/command/IAmCommandSend.h149
-rwxr-xr-x[-rw-r--r--]include/control/IAmControlReceive.h514
-rwxr-xr-x[-rw-r--r--]include/control/IAmControlSend.h280
-rwxr-xr-x[-rw-r--r--]include/routing/IAmRoutingReceive.h256
-rwxr-xr-x[-rw-r--r--]include/routing/IAmRoutingSend.h151
10 files changed, 2724 insertions, 1541 deletions
diff --git a/AudioManagerDaemon/fidls/AudioManagerTypes.fidl b/AudioManagerDaemon/fidls/AudioManagerTypes.fidl
index 604b523..bdfed45 100644
--- a/AudioManagerDaemon/fidls/AudioManagerTypes.fidl
+++ b/AudioManagerDaemon/fidls/AudioManagerTypes.fidl
@@ -5,7 +5,7 @@ package org.genivi
**>
typeCollection am {
version {
- major 1
+ major 2
minor 0
}
array am_MainConnection_L of am_MainConnectionType_s
diff --git a/PluginCommandInterfaceCAPI/fidl/CommandInterface.fidl b/PluginCommandInterfaceCAPI/fidl/CommandInterface.fidl
index 241e071..db5204d 100644..100755
--- a/PluginCommandInterfaceCAPI/fidl/CommandInterface.fidl
+++ b/PluginCommandInterfaceCAPI/fidl/CommandInterface.fidl
@@ -1,606 +1,607 @@
package org.genivi.am
import org.genivi.am.* from "../../AudioManagerDaemon/fidls/AudioManagerTypes.fidl"
+
<**
- @description : 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.
+ @description : 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:
- @author : Christian Mueller
+ @author : Christian Mueller
**>
interface CommandControl {
- version {
- major 1
- minor 0
- }
+ version {
+ major 2
+ minor 0
+ }
- <**
- @description : connects a source to sink
+ <**
+ @description : connects a source to sink
(at)return E_OK on success, E_NOT_POSSIBLE on failure, E_ALREADY_EXISTS if the connection does already exists
- **>
- method connect {
- in {
- am_sourceID_t sourceID
- am_sinkID_t sinkID
- }
- out {
- am_mainConnectionID_t mainConnectionID
- am_Error_e ^error
- }
- }
-
- <**
- @description : disconnects a mainConnection
+ **>
+ method connect {
+ in {
+ am_sourceID_t sourceID
+ am_sinkID_t sinkID
+ }
+ out {
+ am_mainConnectionID_t mainConnectionID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : disconnects a mainConnection
(at)return E_OK on successes, E_NON_EXISTENT if the connection does not exist, E_NOT_POSSIBLE on error.
- **>
- method disconnect {
- in {
- am_mainConnectionID_t mainConnectionID
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : sets the volume for a sink
+ **>
+ method disconnect {
+ in {
+ am_mainConnectionID_t mainConnectionID
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : sets the volume for a sink
(at)return E_OK on success, E_UNKOWN on error, E_OUT_OF_RANGE in case the value is out of range
- **>
- method setVolume {
- in {
-
- <**
- @description : the sink
- **>
- am_sinkID_t sinkID
-
- <**
- @description : the volume
- **>
- am_mainVolume_t volume
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : This function is used to increment or decrement the current volume for a sink.
+ **>
+ method setVolume {
+ in {
+
+ <**
+ @description : the sink
+ **>
+ am_sinkID_t sinkID
+
+ <**
+ @description : the volume
+ **>
+ am_mainVolume_t volume
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This function is used to increment or decrement the current volume for a sink.
(at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the value is not in the given volume range.
- **>
- method volumeStep {
- in {
- am_sinkID_t sinkID
-
- <**
- @description : indicated the number of steps that should be incremented or decremented. Positive values here inkrement, negative values decrement
- **>
- Int16 volumeStep_
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : sets the mute state of a sink
+ **>
+ method volumeStep {
+ in {
+ am_sinkID_t sinkID
+
+ <**
+ @description : indicated the number of steps that should be incremented or decremented. Positive values here inkrement, negative values decrement
+ **>
+ Int16 volumeStep
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : sets the mute state of a sink
(at)return E_OK on success, E_UNKNOWN on error. If the mute state is already the desired one, the Daemon will return E_OK.
- **>
- method setSinkMuteState {
- in {
- am_sinkID_t sinkID
- am_MuteState_e muteState
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : This method is used to set sound properties, e.g. Equalizer Values. Since the capabilities of the system can differ, the exact key value pairs can be extended in each product
+ **>
+ method setSinkMuteState {
+ in {
+ am_sinkID_t sinkID
+ am_MuteState_e muteState
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This method is used to set sound properties, e.g. Equalizer Values. Since the capabilities of the system can differ, the exact key value pairs can be extended in each product
(at)return E_OK on success, E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error
- **>
- method setMainSinkSoundProperty {
- in {
- am_sinkID_t sinkID
- am_MainSoundProperty_s soundProperty
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : This method is used to set sound properties, e.g. Equalizer Values. Since the capabilities of the system can differ, the exact key value pairs can be extended in each product
+ **>
+ method setMainSinkSoundProperty {
+ in {
+ am_sinkID_t sinkID
+ am_MainSoundProperty_s soundProperty
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This method is used to set sound properties, e.g. Equalizer Values. Since the capabilities of the system can differ, the exact key value pairs can be extended in each product
(at)return E_OK on success, E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error
- **>
- method setMainSourceSoundProperty {
- in {
- am_sourceID_t sourceID
- am_MainSoundProperty_s soundProperty
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : is used to set a specific system property.
+ **>
+ method setMainSourceSoundProperty {
+ in {
+ am_sourceID_t sourceID
+ am_MainSoundProperty_s soundProperty
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : is used to set a specific system property.
(at)return E_OK on success, E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error
- **>
- method setSystemProperty {
- in {
-
- <**
- @description : the property that shall be set
- **>
- am_SystemProperty_s property
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : returns the actual list of MainConnections
+ **>
+ method setSystemProperty {
+ in {
+
+ <**
+ @description : the property that shall be set
+ **>
+ am_SystemProperty_s property
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : returns the actual list of MainConnections
(at)return E_OK on success, E_DATABASE_ERROR on error
- **>
- method getListMainConnections {
- out {
-
- <**
- @description : returns a list of all connections
- **>
- am_MainConnection_L listConnections
- am_Error_e ^error
- }
- }
-
- <**
- @description : returns the actual list of Sinks
+ **>
+ method getListMainConnections {
+ out {
+
+ <**
+ @description : returns a list of all connections
+ **>
+ am_MainConnection_L listConnections
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : returns the actual list of Sinks
(at)return E_OK on success, E_DATABASE_ERROR on error
- **>
- method getListMainSinks {
- out {
-
- <**
- @description : the list of the sinks
- **>
- am_SinkType_L listMainSinks
- am_Error_e ^error
- }
- }
-
- <**
- @description : returns the actual list of Sources
+ **>
+ method getListMainSinks {
+ out {
+
+ <**
+ @description : the list of the sinks
+ **>
+ am_SinkType_L listMainSinks
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : returns the actual list of Sources
(at)return E_OK on success, E_DATABASE_ERROR on error
- **>
- method getListMainSources {
- out {
-
- <**
- @description : the list of sources
- **>
- am_SourceType_L listMainSources
- am_Error_e ^error
- }
- }
-
- <**
- @description : This is used to retrieve all source sound properties related to a source. Returns a vector of the sound properties and values as pair
+ **>
+ method getListMainSources {
+ out {
+
+ <**
+ @description : the list of sources
+ **>
+ am_SourceType_L listMainSources
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This is used to retrieve all source sound properties related to a source. Returns a vector of the sound properties and values as pair
(at)return E_OK on success, E_DATABASE_ERROR on error
- **>
- method getListMainSinkSoundProperties {
- in {
- am_sinkID_t sinkID
- }
- out {
- am_MainSoundProperty_L listSoundProperties
- am_Error_e ^error
- }
- }
-
- <**
- @description : This is used to retrieve all source sound properties related to a source.
+ **>
+ method getListMainSinkSoundProperties {
+ in {
+ am_sinkID_t sinkID
+ }
+ out {
+ am_MainSoundProperty_L listSoundProperties
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This is used to retrieve all source sound properties related to a source.
(at)return E_OK on success, E_DATABASE_ERROR on error
- **>
- method getListMainSourceSoundProperties {
- in {
- am_sourceID_t sourceID
- }
- out {
- am_MainSoundProperty_L listSourceProperties
- am_Error_e ^error
- }
- }
-
- <**
- @description : This is used to retrieve SourceClass Information of all source classes
+ **>
+ method getListMainSourceSoundProperties {
+ in {
+ am_sourceID_t sourceID
+ }
+ out {
+ am_MainSoundProperty_L listSourceProperties
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This is used to retrieve SourceClass Information of all source classes
(at)return E_OK on success, E_DATABASE_ERROR on error
- **>
- method getListSourceClasses {
- out {
- am_SourceClass_L listSourceClasses
- am_Error_e ^error
- }
- }
-
- <**
- @description : This is used to retrieve SinkClass Information of all sink classes
+ **>
+ method getListSourceClasses {
+ out {
+ am_SourceClass_L listSourceClasses
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This is used to retrieve SinkClass Information of all sink classes
(at)return E_OK on success, E_DATABASE_ERROR on error
- **>
- method getListSinkClasses {
- out {
- am_SinkClass_L listSinkClasses
- am_Error_e ^error
- }
- }
-
- <**
- @description : Retrieves a complete list of all systemProperties.
+ **>
+ method getListSinkClasses {
+ out {
+ am_SinkClass_L listSinkClasses
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : Retrieves a complete list of all systemProperties.
(at)return E_OK on success, E_DATABASE_ERROR on error
- **>
- method getListSystemProperties {
- out {
- am_SystemProperty_L listSystemProperties
- am_Error_e ^error
- }
- }
-
- <**
- @description : returns the delay in ms that the audiopath for the given mainConnection has
+ **>
+ method getListSystemProperties {
+ out {
+ am_SystemProperty_L listSystemProperties
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : returns the delay in ms that the audiopath for the given mainConnection has
(at)return E_OK on success, E_NOT_POSSIBLE if timing information is not yet retrieved, E_DATABASE_ERROR on read error on the database
- **>
- method getTimingInformation {
- in {
- am_mainConnectionID_t mainConnectionID
- }
- out {
- am_timeSync_t delay
- am_Error_e ^error
- }
- }
-
- <**
- @description : Retrieves the list of MainNotifications for a sink. Does not return the possible ones.
- **>
- method getListMainSinkNotificationConfigurations {
- in {
-
- <**
- @description : The sinkID
- **>
- am_sinkID_t sinkID
- }
- out {
- am_NotificationConfiguration_L listMainNotificationConfigurations
- am_Error_e ^error
- }
- }
-
- <**
- @description : Retrieves the list of MainNotifications for a source. Does not return the possible ones.
- **>
- method getListMainSourceNotificationConfigurations {
- in {
-
- <**
- @description : The sourceID
- **>
- am_sourceID_t sourceID
- }
- out {
- am_NotificationConfiguration_L listMainNotificationConfigurations
- am_Error_e ^error
- }
- }
-
- <**
- @description : sets a MainNotificationConfiuration. This can be used to turn on an off notifications an to change the mode of the configuration.
+ **>
+ method getTimingInformation {
+ in {
+ am_mainConnectionID_t mainConnectionID
+ }
+ out {
+ am_timeSync_t delay
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : Retrieves the list of MainNotifications for a sink. Does not return the possible ones.
+ **>
+ method getListMainSinkNotificationConfigurations {
+ in {
+
+ <**
+ @description : The sinkID
+ **>
+ am_sinkID_t sinkID
+ }
+ out {
+ am_NotificationConfiguration_L listMainNotificationConfigurations
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : Retrieves the list of MainNotifications for a source. Does not return the possible ones.
+ **>
+ method getListMainSourceNotificationConfigurations {
+ in {
+
+ <**
+ @description : The sourceID
+ **>
+ am_sourceID_t sourceID
+ }
+ out {
+ am_NotificationConfiguration_L listMainNotificationConfigurations
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : sets a MainNotificationConfiuration. This can be used to turn on an off notifications an to change the mode of the configuration.
(at)return E_OK on success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error
- **>
- method setMainSinkNotificationConfiguration {
- in {
-
- <**
- @description : The sinkID of the MainNotification to be changed
- **>
- am_sinkID_t sinkID
-
- <**
- @description : The MainNotifiication that needs to be set
- **>
- am_NotificationConfiguration_s mainNotificationConfiguration
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : sets a MainNotificationConfiuration. This can be used to turn on an off notifications an to change the mode of the configuration.
+ **>
+ method setMainSinkNotificationConfiguration {
+ in {
+
+ <**
+ @description : The sinkID of the MainNotification to be changed
+ **>
+ am_sinkID_t sinkID
+
+ <**
+ @description : The MainNotifiication that needs to be set
+ **>
+ am_NotificationConfiguration_s mainNotificationConfiguration
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : sets a MainNotificationConfiuration. This can be used to turn on an off notifications an to change the mode of the configuration.
(at)return E_OK on success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error
- **>
- method setMainSourceNotificationConfiguration {
- in {
-
- <**
- @description : The sourceID of the MainNotification to be changed
- **>
- am_sourceID_t sourceID
-
- <**
- @description : The MainNotifiication that needs to be set
- **>
- am_NotificationConfiguration_s mainNotificationConfiguration
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : Callback that is called when the number of connections change
- **>
- broadcast newMainConnection {
- out {
- am_MainConnectionType_s mainConnection
- }
- }
-
- <**
- @description : Callback that is called when the number of connections change
- **>
- broadcast removedMainConnection {
- out {
- am_mainConnectionID_t mainConnection
- }
- }
-
- <**
- @description : Callback that is called when the number of sinks change
- **>
- broadcast newSink {
- out {
- am_SinkType_s sink
- }
- }
-
- <**
- @description : Callback that is called when the number of sinks change
- **>
- broadcast removedSink {
- out {
- am_sinkID_t sinkID
- }
- }
-
- <**
- @description : Callback that is called when the number of sources change
- **>
- broadcast newSource {
- out {
- am_SourceType_s source
- }
- }
-
- <**
- @description : Callback that is called when the number of sources change
- **>
- broadcast removedSource {
- out {
- am_sourceID_t source
- }
- }
-
- <**
- @description : this callback is fired if the number of sink classes changed
- **>
- broadcast numberOfSinkClassesChanged {
- }
-
- <**
- @description : this callback is fired if the number of source classes changed
- **>
- broadcast numberOfSourceClassesChanged {
- }
-
- <**
- @description : This callback is called when the ConnectionState of a connection changed.
- **>
- broadcast mainConnectionStateChanged {
- out {
- am_mainConnectionID_t connectionID
- am_ConnectionState_e connectionState
- }
- }
-
- <**
- @description : this callback indicates that a sinkSoundProperty has changed.
- **>
- broadcast mainSinkSoundPropertyChanged {
- out {
- am_sinkID_t sinkID
- am_MainSoundProperty_s soundProperty
- }
- }
-
- <**
- @description : this callback indicates that a sourceSoundProperty has changed.
- **>
- broadcast mainSourceSoundPropertyChanged {
- out {
- am_sourceID_t sourceID
- am_MainSoundProperty_s soundProperty
- }
- }
-
- <**
- @description : this callback is called when the availability of a sink has changed
- **>
- broadcast sinkAvailabilityChanged {
- out {
- am_sinkID_t sinkID
- am_Availability_s availability
- }
- }
-
- <**
- @description : this callback is called when the availability of source has changed.
- **>
- broadcast sourceAvailabilityChanged {
- out {
- am_sourceID_t sourceID
- am_Availability_s availability
- }
- }
-
- <**
- @description : this callback indicates a volume change on the indicated sink
- **>
- broadcast volumeChanged {
- out {
- am_sinkID_t sinkID
- am_mainVolume_t volume
- }
- }
-
- <**
- @description : this callback indicates a mute state change on a sink.
- **>
- broadcast sinkMuteStateChanged {
- out {
- am_sinkID_t sinkID
- am_MuteState_e muteState
- }
- }
-
- <**
- @description : is fired if a systemProperty changed
- **>
- broadcast systemPropertyChanged {
- out {
- am_SystemProperty_s systemProperty
- }
- }
-
- <**
- @description : This callback is fired if the timinginformation for a mainConnectionID changed
- **>
- broadcast timingInformationChanged {
- out {
- am_mainConnectionID_t mainConnectionID
- am_timeSync_t time
- }
- }
-
- <**
- @description : This callback is called when a sink is updated.
- **>
- broadcast sinkUpdated {
- out {
-
- <**
- @description : The sinkID that is updated
- **>
- am_sinkID_t sinkID
-
- <**
- @description : The sinkClassID of the updated sink. gives the current value even if not updated
- **>
- am_sinkClass_t sinkClassID
-
- <**
- @description : The list of mainSoundProperties. Gives the actual list of MainSoundProperties even if not changed
- **>
- am_MainSoundProperty_L listMainSoundProperties
- }
- }
-
- <**
- @description : This callback is called when a source is updated.
- **>
- broadcast sourceUpdated {
- out {
-
- <**
- @description : The sourceID that is updated
- **>
- am_sourceID_t sourceID
-
- <**
- @description : The sourceClassID of the updated source. Gives the current value even if not updated
- **>
- am_sourceClass_t sourceClassID
-
- <**
- @description : The list of mainSoundProperties. Gives the actual list of MainSoundProperties even if not changed
- **>
- am_MainSoundProperty_L listMainSoundProperties
- }
- }
-
- <**
- @description : This callback is called when a notificated value of a sink changes.
- **>
- broadcast sinkNotification {
- out {
-
- <**
- @description : The sinkID
- **>
- am_sinkID_t sinkID
-
- <**
- @description : The payload of the notification
- **>
- am_NotificationPayload_s notification
- }
- }
-
- <**
- @description : This callback is called when a notifcated value of a source changes.
- **>
- broadcast sourceNotification {
- out {
-
- <**
- @description : The sourceID
- **>
- am_sourceID_t sourceID
-
- <**
- @description : The payload of the notification
- **>
- am_NotificationPayload_s notification
- }
- }
-
- <**
- @description : This callback is triggered when a mainNotificationConfiguration is changed.
- **>
- broadcast mainSinkNotificationConfigurationChanged {
- out {
- am_sinkID_t sinkID
-
- <**
- @description : The MainNotificationConfiguration that changed
- **>
- am_NotificationConfiguration_s mainNotificationConfiguration
- }
- }
-
- <**
- @description : This callback is triggered when a mainNotificationConfiguration is changed.
- **>
- broadcast mainSourceNotificationConfigurationChanged {
- out {
- am_sourceID_t sourceID
-
- <**
- @description : The MainNotificationConfiguration that changed
- **>
- am_NotificationConfiguration_s mainNotificationConfiguration
- }
- }
-
-} \ No newline at end of file
+ **>
+ method setMainSourceNotificationConfiguration {
+ in {
+
+ <**
+ @description : The sourceID of the MainNotification to be changed
+ **>
+ am_sourceID_t sourceID
+
+ <**
+ @description : The MainNotifiication that needs to be set
+ **>
+ am_NotificationConfiguration_s mainNotificationConfiguration
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : Callback that is called when the number of connections change
+ **>
+ broadcast newMainConnection {
+ out {
+ am_MainConnectionType_s mainConnection
+ }
+ }
+
+ <**
+ @description : Callback that is called when the number of connections change
+ **>
+ broadcast removedMainConnection {
+ out {
+ am_mainConnectionID_t mainConnection
+ }
+ }
+
+ <**
+ @description : Callback that is called when the number of sinks change
+ **>
+ broadcast newSink {
+ out {
+ am_SinkType_s sink
+ }
+ }
+
+ <**
+ @description : Callback that is called when the number of sinks change
+ **>
+ broadcast removedSink {
+ out {
+ am_sinkID_t sinkID
+ }
+ }
+
+ <**
+ @description : Callback that is called when the number of sources change
+ **>
+ broadcast newSource {
+ out {
+ am_SourceType_s source
+ }
+ }
+
+ <**
+ @description : Callback that is called when the number of sources change
+ **>
+ broadcast removedSource {
+ out {
+ am_sourceID_t source
+ }
+ }
+
+ <**
+ @description : this callback is fired if the number of sink classes changed
+ **>
+ broadcast numberOfSinkClassesChanged {
+ }
+
+ <**
+ @description : this callback is fired if the number of source classes changed
+ **>
+ broadcast numberOfSourceClassesChanged {
+ }
+
+ <**
+ @description : This callback is called when the ConnectionState of a connection changed.
+ **>
+ broadcast mainConnectionStateChanged {
+ out {
+ am_mainConnectionID_t connectionID
+ am_ConnectionState_e connectionState
+ }
+ }
+
+ <**
+ @description : this callback indicates that a sinkSoundProperty has changed.
+ **>
+ broadcast mainSinkSoundPropertyChanged {
+ out {
+ am_sinkID_t sinkID
+ am_MainSoundProperty_s soundProperty
+ }
+ }
+
+ <**
+ @description : this callback indicates that a sourceSoundProperty has changed.
+ **>
+ broadcast mainSourceSoundPropertyChanged {
+ out {
+ am_sourceID_t sourceID
+ am_MainSoundProperty_s soundProperty
+ }
+ }
+
+ <**
+ @description : this callback is called when the availability of a sink has changed
+ **>
+ broadcast sinkAvailabilityChanged {
+ out {
+ am_sinkID_t sinkID
+ am_Availability_s availability
+ }
+ }
+
+ <**
+ @description : this callback is called when the availability of source has changed.
+ **>
+ broadcast sourceAvailabilityChanged {
+ out {
+ am_sourceID_t sourceID
+ am_Availability_s availability
+ }
+ }
+
+ <**
+ @description : this callback indicates a volume change on the indicated sink
+ **>
+ broadcast volumeChanged {
+ out {
+ am_sinkID_t sinkID
+ am_mainVolume_t volume
+ }
+ }
+
+ <**
+ @description : this callback indicates a mute state change on a sink.
+ **>
+ broadcast sinkMuteStateChanged {
+ out {
+ am_sinkID_t sinkID
+ am_MuteState_e muteState
+ }
+ }
+
+ <**
+ @description : is fired if a systemProperty changed
+ **>
+ broadcast systemPropertyChanged {
+ out {
+ am_SystemProperty_s systemProperty
+ }
+ }
+
+ <**
+ @description : This callback is fired if the timinginformation for a mainConnectionID changed
+ **>
+ broadcast timingInformationChanged {
+ out {
+ am_mainConnectionID_t mainConnectionID
+ am_timeSync_t time
+ }
+ }
+
+ <**
+ @description : This callback is called when a sink is updated.
+ **>
+ broadcast sinkUpdated {
+ out {
+
+ <**
+ @description : The sinkID that is updated
+ **>
+ am_sinkID_t sinkID
+
+ <**
+ @description : The sinkClassID of the updated sink. gives the current value even if not updated
+ **>
+ am_sinkClass_t sinkClassID
+
+ <**
+ @description : The list of mainSoundProperties. Gives the actual list of MainSoundProperties even if not changed
+ **>
+ am_MainSoundProperty_L listMainSoundProperties
+ }
+ }
+
+ <**
+ @description : This callback is called when a source is updated.
+ **>
+ broadcast sourceUpdated {
+ out {
+
+ <**
+ @description : The sourceID that is updated
+ **>
+ am_sourceID_t sourceID
+
+ <**
+ @description : The sourceClassID of the updated source. Gives the current value even if not updated
+ **>
+ am_sourceClass_t sourceClassID
+
+ <**
+ @description : The list of mainSoundProperties. Gives the actual list of MainSoundProperties even if not changed
+ **>
+ am_MainSoundProperty_L listMainSoundProperties
+ }
+ }
+
+ <**
+ @description : This callback is called when a notificated value of a sink changes.
+ **>
+ broadcast sinkNotification {
+ out {
+
+ <**
+ @description : The sinkID
+ **>
+ am_sinkID_t sinkID
+
+ <**
+ @description : The payload of the notification
+ **>
+ am_NotificationPayload_s notification
+ }
+ }
+
+ <**
+ @description : This callback is called when a notifcated value of a source changes.
+ **>
+ broadcast sourceNotification {
+ out {
+
+ <**
+ @description : The sourceID
+ **>
+ am_sourceID_t sourceID
+
+ <**
+ @description : The payload of the notification
+ **>
+ am_NotificationPayload_s notification
+ }
+ }
+
+ <**
+ @description : This callback is triggered when a mainNotificationConfiguration is changed.
+ **>
+ broadcast mainSinkNotificationConfigurationChanged {
+ out {
+ am_sinkID_t sinkID
+
+ <**
+ @description : The MainNotificationConfiguration that changed
+ **>
+ am_NotificationConfiguration_s mainNotificationConfiguration
+ }
+ }
+
+ <**
+ @description : This callback is triggered when a mainNotificationConfiguration is changed.
+ **>
+ broadcast mainSourceNotificationConfigurationChanged {
+ out {
+ am_sourceID_t sourceID
+
+ <**
+ @description : The MainNotificationConfiguration that changed
+ **>
+ am_NotificationConfiguration_s mainNotificationConfiguration
+ }
+ }
+
+}
diff --git a/PluginRoutingInterfaceCAPI/fidl/RoutingInterface.fidl b/PluginRoutingInterfaceCAPI/fidl/RoutingInterface.fidl
index e0bfd05..2cd6d6b 100644..100755
--- a/PluginRoutingInterfaceCAPI/fidl/RoutingInterface.fidl
+++ b/PluginRoutingInterfaceCAPI/fidl/RoutingInterface.fidl
@@ -2,29 +2,29 @@ package org.genivi.am
import org.genivi.am.* from "../../AudioManagerDaemon/fidls/AudioManagerTypes.fidl"
<**
- @description : This class implements everything from Audiomanager -&gt; RoutingAdapter
- @author : Christian Mueller
+ @description : This class implements everything from Audiomanager -&gt; RoutingAdapter
+ @author : Christian Mueller
**>
interface RoutingControl {
- version {
- major 1
- minor 0
- }
+ version {
+ major 2
+ minor 0
+ }
- <**
- @description : aborts an asynchronous action.
+ <**
+ @description : aborts an asynchronous action.
(at)return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if handle was not found
- **>
- method asyncAbort {
- in {
- am_Handle_s handle
- }
- }
-
- <**
- @description : connects a source to a sink
-(at)return E_OK on success, E_UNKNOWN on error, E_WRONG_FORMAT in case am_CustomConnectionFormat_t does not match
+ **>
+ method asyncAbort {
+ in {
+ am_Handle_s handle
+ }
+ }
+
+ <**
+ @description : connects a source to a sink
+(at)return E_OK on success, E_UNKNOWN on error, E_WRONG_FORMAT in case am_ConnectionFormat_e does not match
**>
method asyncConnect {
in {
@@ -32,23 +32,23 @@ interface RoutingControl {
am_connectionID_t connectionID
am_sourceID_t sourceID
am_sinkID_t sinkID
- am_CustomConnectionFormat_t connectionFormat
+ am_CConnectionFormat_t connectionFormat
}
}
-
- <**
- @description : disconnect a connection with given connectionID
+
+ <**
+ @description : disconnect a connection with given connectionID
(at)return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if connection was not found
- **>
- method asyncDisconnect {
- in {
- am_Handle_s handle
- am_connectionID_t connectionID
- }
- }
-
- <**
- @description : this method is used to set the volume of a sink. This function is used to drive ramps, to mute or unmute or directly set the value. The difference is made through the ramptype.
+ **>
+ method asyncDisconnect {
+ in {
+ am_Handle_s handle
+ am_connectionID_t connectionID
+ }
+ }
+
+ <**
+ @description : this method is used to set the volume of a sink. This function is used to drive ramps, to mute or unmute or directly set the value. The difference is made through the ramptype.
(at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if new volume is out of range
**>
method asyncSetSinkVolume {
@@ -56,13 +56,13 @@ interface RoutingControl {
am_Handle_s handle
am_sinkID_t sinkID
am_volume_t volume
- am_CustomRampType_t ramp
+ am_CRampType_t ramp
am_time_t time
}
}
-
- <**
- @description : sets the volume of a source. This method is used to set the volume of a sink. This function is used to drive ramps, to mute or unmute or directly set the value. The difference is made through the ramptype.
+
+ <**
+ @description : sets the volume of a source. This method is used to set the volume of a sink. This function is used to drive ramps, to mute or unmute or directly set the value. The difference is made through the ramptype.
(at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of range.
triggers the acknowledge ackSourceVolumeChange
**>
@@ -71,73 +71,73 @@ triggers the acknowledge ackSourceVolumeChange
am_Handle_s handle
am_sourceID_t sourceID
am_volume_t volume
- am_CustomRampType_t ramp
+ am_CRampType_t ramp
am_time_t time
}
}
-
- <**
- @description : This function is used to set the source state of a particular source.
+
+ <**
+ @description : This function is used to set the source state of a particular source.
(at)return E_OK on success, E_UNKNOWN on error
- **>
- method asyncSetSourceState {
- in {
- am_Handle_s handle
- am_sourceID_t sourceID
- am_SourceState_e ^state
- }
- }
-
- <**
- @description : this function sets the sinksoundproperty.
+ **>
+ method asyncSetSourceState {
+ in {
+ am_Handle_s handle
+ am_sourceID_t sourceID
+ am_SourceState_e ^state
+ }
+ }
+
+ <**
+ @description : this function sets the sinksoundproperty.
(at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range
- **>
- method asyncSetSinkSoundProperties {
- in {
- am_Handle_s handle
- am_sinkID_t sinkID
- am_SoundProperty_L listSoundProperties
- }
- }
-
- <**
- @description : this function sets the sinksoundproperty.
+ **>
+ method asyncSetSinkSoundProperties {
+ in {
+ am_Handle_s handle
+ am_sinkID_t sinkID
+ am_SoundProperty_L listSoundProperties
+ }
+ }
+
+ <**
+ @description : this function sets the sinksoundproperty.
(at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range
- **>
- method asyncSetSinkSoundProperty {
- in {
- am_Handle_s handle
- am_sinkID_t sinkID
- am_SoundProperty_s soundProperty
- }
- }
-
- <**
- @description : this function sets the sourcesoundproperty.
+ **>
+ method asyncSetSinkSoundProperty {
+ in {
+ am_Handle_s handle
+ am_sinkID_t sinkID
+ am_SoundProperty_s soundProperty
+ }
+ }
+
+ <**
+ @description : this function sets the sourcesoundproperty.
(at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range
- **>
- method asyncSetSourceSoundProperties {
- in {
- am_Handle_s handle
- am_sourceID_t sourceID
- am_SoundProperty_L listSoundProperties
- }
- }
-
- <**
- @description : this function sets the sourcesoundproperty.
+ **>
+ method asyncSetSourceSoundProperties {
+ in {
+ am_Handle_s handle
+ am_sourceID_t sourceID
+ am_SoundProperty_L listSoundProperties
+ }
+ }
+
+ <**
+ @description : this function sets the sourcesoundproperty.
(at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range
- **>
- method asyncSetSourceSoundProperty {
- in {
- am_Handle_s handle
- am_sourceID_t sourceID
- am_SoundProperty_s soundProperty
- }
- }
-
- <**
- @description : this function triggers crossfading.
+ **>
+ method asyncSetSourceSoundProperty {
+ in {
+ am_Handle_s handle
+ am_sourceID_t sourceID
+ am_SoundProperty_s soundProperty
+ }
+ }
+
+ <**
+ @description : this function triggers crossfading.
(at)return E_OK on success, E_UNKNOWN on error
**>
method asyncCrossFade {
@@ -145,700 +145,700 @@ triggers the acknowledge ackSourceVolumeChange
am_Handle_s handle
am_crossfaderID_t crossfaderID
am_HotSink_e hotSink
- am_CustomRampType_t rampType
+ am_CRampType_t rampType
am_time_t time
}
}
-
- <**
- @description : this function is used for early and late audio functions to set the domain state
+
+ <**
+ @description : this function is used for early and late audio functions to set the domain state
(at)return E_OK on success, E_UNKNOWN on error
- **>
- method setDomainState {
- in {
- am_domainID_t domainID
- am_DomainState_e domainState
- }
- out {
- am_Error_e ^error
- }
- }
- method asyncSetVolumes {
- in {
- am_Handle_s handle
- am_Volumes_L volumes
- }
- }
- method asyncSetSinkNotificationConfiguration {
- in {
- am_Handle_s handle
- am_sinkID_t sinkID
- am_NotificationConfiguration_s notificationConfiguration
- }
- }
- method asyncSetSourceNotificationConfiguration {
- in {
- am_Handle_s handle
- am_sourceID_t sourceID
- am_NotificationConfiguration_s notificationConfiguration
- }
- }
+ **>
+ method setDomainState {
+ in {
+ am_domainID_t domainID
+ am_DomainState_e domainState
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+ method asyncSetVolumes {
+ in {
+ am_Handle_s handle
+ am_Volumes_L volumes
+ }
+ }
+ method asyncSetSinkNotificationConfiguration {
+ in {
+ am_Handle_s handle
+ am_sinkID_t sinkID
+ am_NotificationConfiguration_s notificationConfiguration
+ }
+ }
+ method asyncSetSourceNotificationConfiguration {
+ in {
+ am_Handle_s handle
+ am_sourceID_t sourceID
+ am_NotificationConfiguration_s notificationConfiguration
+ }
+ }
}
<**
- @description : Routing Receive sendInterface description.
- @author : Christian Mueller
+ @description : Routing Receive sendInterface description.
+ @author : Christian Mueller
**>
interface RoutingControlObserver {
- version {
- major 0
- minor 1
- }
+ version {
+ major 2
+ minor 0
+ }
- <**
- @description : This attribute signals to the clients the current routing state.
+ <**
+ @description : This attribute signals to the clients the current routing state.
A client should notify himself to this attribute in order to know the current state and act accordingly.
- **>
- attribute am_RoutingReady_e RoutingReady readonly
-
- <**
- @description : acknowledges a asyncConnect
- **>
- method ackConnect {
- in {
- am_Handle_s handle
- am_connectionID_t connectionID
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges a asyncDisconnect
- **>
- method ackDisconnect {
- in {
- am_Handle_s handle
- am_connectionID_t connectionID
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges a asyncsetSinkVolume
- **>
- method ackSetSinkVolumeChange {
- in {
- am_Handle_s handle
-
- <**
- @description : The current actual value that is set
- **>
- am_volume_t volume
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges a asyncsetSourceVolume
- **>
- method ackSetSourceVolumeChange {
- in {
-
- <**
- @description : handle that belongs to the change
- **>
- am_Handle_s handle
-
- <**
- @description : the current volume
- **>
- am_volume_t volume
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowlegde for asyncSetSourceState
- **>
- method ackSetSourceState {
- in {
- am_Handle_s handle
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges asyncSetSinkSoundProperties
- **>
- method ackSetSinkSoundProperties {
- in {
- am_Handle_s handle
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges asyncSetSinkSoundProperty
- **>
- method ackSetSinkSoundProperty {
- in {
- am_Handle_s handle
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges asyncSetSourceSoundProperties
- **>
- method ackSetSourceSoundProperties {
- in {
- am_Handle_s handle
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges asyncSetSourceSoundProperty
- **>
- method ackSetSourceSoundProperty {
- in {
- am_Handle_s handle
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges asyncCrossFade
- **>
- method ackCrossFading {
- in {
- am_Handle_s handle
-
- <**
- @description : this is the current hot sink, HS_INTERMEDIATE is here when a crossfading action did not reach the end
- **>
- am_HotSink_e hotSink
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges a volume tick. This can be used to display volumechanges during ramps
- **>
- method ackSourceVolumeTick {
- in {
- am_Handle_s handle
- am_sourceID_t sourceID
- am_volume_t volume
- }
- }
-
- <**
- @description : acknowledges a volume tick. This can be used to display volumechanges during ramps
- **>
- method ackSinkVolumeTick {
- in {
- am_Handle_s handle
- am_sinkID_t sinkID
- am_volume_t volume
- }
- }
-
- <**
- @description : This function returns the ID to the given domainName. If already a domain is registered with this name, it will return the corresponding ID, if not it will reserve an ID but not register the domain. The other parameters of the domain will be overwritten when the domain is registered.
+ **>
+ attribute am_RoutingReady_e RoutingReady readonly
+
+ <**
+ @description : acknowledges a asyncConnect
+ **>
+ method ackConnect {
+ in {
+ am_Handle_s handle
+ am_connectionID_t connectionID
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges a asyncDisconnect
+ **>
+ method ackDisconnect {
+ in {
+ am_Handle_s handle
+ am_connectionID_t connectionID
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges a asyncsetSinkVolume
+ **>
+ method ackSetSinkVolumeChange {
+ in {
+ am_Handle_s handle
+
+ <**
+ @description : The current actual value that is set
+ **>
+ am_volume_t volume
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges a asyncsetSourceVolume
+ **>
+ method ackSetSourceVolumeChange {
+ in {
+
+ <**
+ @description : handle that belongs to the change
+ **>
+ am_Handle_s handle
+
+ <**
+ @description : the current volume
+ **>
+ am_volume_t volume
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowlegde for asyncSetSourceState
+ **>
+ method ackSetSourceState {
+ in {
+ am_Handle_s handle
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges asyncSetSinkSoundProperties
+ **>
+ method ackSetSinkSoundProperties {
+ in {
+ am_Handle_s handle
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges asyncSetSinkSoundProperty
+ **>
+ method ackSetSinkSoundProperty {
+ in {
+ am_Handle_s handle
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges asyncSetSourceSoundProperties
+ **>
+ method ackSetSourceSoundProperties {
+ in {
+ am_Handle_s handle
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges asyncSetSourceSoundProperty
+ **>
+ method ackSetSourceSoundProperty {
+ in {
+ am_Handle_s handle
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges asyncCrossFade
+ **>
+ method ackCrossFading {
+ in {
+ am_Handle_s handle
+
+ <**
+ @description : this is the current hot sink, HS_INTERMEDIATE is here when a crossfading action did not reach the end
+ **>
+ am_HotSink_e hotSink
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges a volume tick. This can be used to display volumechanges during ramps
+ **>
+ method ackSourceVolumeTick {
+ in {
+ am_Handle_s handle
+ am_sourceID_t sourceID
+ am_volume_t volume
+ }
+ }
+
+ <**
+ @description : acknowledges a volume tick. This can be used to display volumechanges during ramps
+ **>
+ method ackSinkVolumeTick {
+ in {
+ am_Handle_s handle
+ am_sinkID_t sinkID
+ am_volume_t volume
+ }
+ }
+
+ <**
+ @description : This function returns the ID to the given domainName. If already a domain is registered with this name, it will return the corresponding ID, if not it will reserve an ID but not register the domain. The other parameters of the domain will be overwritten when the domain is registered.
(at)return E_OK on success, E_UNKNOWN on error
- **>
- method peekDomain {
- in {
- String name
- }
- out {
- am_domainID_t domainID
- am_Error_e ^error
- }
- }
-
- <**
- @description : registers a domain
+ **>
+ method peekDomain {
+ in {
+ String name
+ }
+ out {
+ am_domainID_t domainID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : registers a domain
(at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
- **>
- method registerDomain {
- in {
-
- <**
- @description : domainID in am_Domain_s must be 0!
- **>
- am_Domain_s domainData
- String returnBusname
- String returnInterface
- }
- out {
- am_domainID_t domainID
- am_Error_e ^error
- }
- }
-
- <**
- @description : deregisters a domain. All sources, sinks, gateways and crossfaders from that domain will be removed as well.
+ **>
+ method registerDomain {
+ in {
+
+ <**
+ @description : domainID in am_Domain_s must be 0!
+ **>
+ am_Domain_s domainData
+ String returnBusname
+ String returnInterface
+ }
+ out {
+ am_domainID_t domainID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : deregisters a domain. All sources, sinks, gateways and crossfaders from that domain will be removed as well.
(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
- **>
- method deregisterDomain {
- in {
-
- <**
- @description : < the nonde of the bus
- **>
- am_domainID_t domainID
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
- **>
- method registerGateway {
- in {
-
- <**
- @description : In a fixed setup, the gatewayID must be below 100. In a dynamic setup, the gatewayID shall be 0. listSourceFormats and listSinkFormats are empty at registration time. Values are taken over when sources and sinks are registered.
-
-
- **>
- am_Gateway_s gatewayData
- }
- out {
- am_gatewayID_t gatewayID
- am_Error_e ^error
- }
- }
-
- <**
- @description : deregisters a gateway. Also removes all sinks and sources of the controlling domain.
+ **>
+ method deregisterDomain {
+ in {
+
+ <**
+ @description : < the nonde of the bus
+ **>
+ am_domainID_t domainID
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
+ **>
+ method registerGateway {
+ in {
+
+ <**
+ @description : In a fixed setup, the gatewayID must be below 100. In a dynamic setup, the gatewayID shall be 0. listSourceFormats and listSinkFormats are empty at registration time. Values are taken over when sources and sinks are registered.
+
+
+ **>
+ am_Gateway_s gatewayData
+ }
+ out {
+ am_gatewayID_t gatewayID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : deregisters a gateway. Also removes all sinks and sources of the controlling domain.
(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
- **>
- method deregisterGateway {
- in {
-
- <**
- @description : domainID of the control domain
- **>
- am_gatewayID_t gatewayID
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : This function returns the ID to the given sinkName. If already a sink is registered with this name, it will return the corresponding ID, if not it will reserve an ID but not register the sink. The other parameters of the sink will be overwritten when the sink is registered.
+ **>
+ method deregisterGateway {
+ in {
+
+ <**
+ @description : domainID of the control domain
+ **>
+ am_gatewayID_t gatewayID
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This function returns the ID to the given sinkName. If already a sink is registered with this name, it will return the corresponding ID, if not it will reserve an ID but not register the sink. The other parameters of the sink will be overwritten when the sink is registered.
(at)return E_OK on success, E_UNKNOWN on error
- **>
- method peekSink {
- in {
-
- <**
- @description : ID is not valid since not created yet
- **>
- String name
- }
- out {
- am_sinkID_t sinkID
- am_Error_e ^error
- }
- }
-
- <**
- @description : Registers a sink. If the sink is part of a gateway, the listconnectionFormats is copied to the gatewayInformation
+ **>
+ method peekSink {
+ in {
+
+ <**
+ @description : ID is not valid since not created yet
+ **>
+ String name
+ }
+ out {
+ am_sinkID_t sinkID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : Registers a sink. If the sink is part of a gateway, the listconnectionFormats is copied to the gatewayInformation
(at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
- **>
- method registerSink {
- in {
-
- <**
- @description : In a fixed setup, the sinkID within am_Sink_s must be below 100. In a dynamic setup the sinkID must be 0 in am_Sink_s.
- **>
- am_Sink_s sinkData
- }
- out {
- am_sinkID_t sinkID
- am_Error_e ^error
- }
- }
-
- <**
- @description : deregisters a sink.
+ **>
+ method registerSink {
+ in {
+
+ <**
+ @description : In a fixed setup, the sinkID within am_Sink_s must be below 100. In a dynamic setup the sinkID must be 0 in am_Sink_s.
+ **>
+ am_Sink_s sinkData
+ }
+ out {
+ am_sinkID_t sinkID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : deregisters a sink.
(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
- **>
- method deregisterSink {
- in {
- am_sinkID_t sinkID
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : This function returns the ID to the given sourceName. If already a source is registered with this name, it will return the corresponding ID, if not it will reserve an ID but not register the source. The other parameters of the source will be overwritten when the source is registered.
+ **>
+ method deregisterSink {
+ in {
+ am_sinkID_t sinkID
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : This function returns the ID to the given sourceName. If already a source is registered with this name, it will return the corresponding ID, if not it will reserve an ID but not register the source. The other parameters of the source will be overwritten when the source is registered.
(at)return E_OK on success, E_UNKNOWN on error
- **>
- method peekSource {
- in {
- String name
- }
- out {
- am_sourceID_t sourceID
- am_Error_e ^error
- }
- }
-
- <**
- @description : registers a source. If the source is part of a gateway, the listconnectionFormats is copied to the gatewayInformation
+ **>
+ method peekSource {
+ in {
+ String name
+ }
+ out {
+ am_sourceID_t sourceID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : registers a source. If the source is part of a gateway, the listconnectionFormats is copied to the gatewayInformation
(at)return E_OK on success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID already exists
- **>
- method registerSource {
- in {
-
- <**
- @description : In a fixed setup, the sourceID within am_Source_s must be below 100. In a dynamic setup the sourceID must be 0 in am_Source_s
- **>
- am_Source_s sourceData
- }
- out {
- am_sourceID_t sourceID
- am_Error_e ^error
- }
- }
-
- <**
- @description : deregisters a source
+ **>
+ method registerSource {
+ in {
+
+ <**
+ @description : In a fixed setup, the sourceID within am_Source_s must be below 100. In a dynamic setup the sourceID must be 0 in am_Source_s
+ **>
+ am_Source_s sourceData
+ }
+ out {
+ am_sourceID_t sourceID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : deregisters a source
(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
- **>
- method deregisterSource {
- in {
- am_sourceID_t sourceID
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : this function registers a crossfader.
+ **>
+ method deregisterSource {
+ in {
+ am_sourceID_t sourceID
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : this function registers a crossfader.
(at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
- **>
- method registerCrossfader {
- in {
-
- <**
- @description : in a fixed setup, the crossfaderID must be below 100. In a dynamic setup the crossfasderID shall be 0
- **>
- am_Crossfader_s crossfaderData
- }
- out {
- am_crossfaderID_t crossfaderID
- am_Error_e ^error
- }
- }
-
- <**
- @description : this function deregisters a crossfader. removes all sources and sinks assiated as well.
+ **>
+ method registerCrossfader {
+ in {
+
+ <**
+ @description : in a fixed setup, the crossfaderID must be below 100. In a dynamic setup the crossfasderID shall be 0
+ **>
+ am_Crossfader_s crossfaderData
+ }
+ out {
+ am_crossfaderID_t crossfaderID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : this function deregisters a crossfader. removes all sources and sinks assiated as well.
(at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
- **>
- method deregisterCrossfader {
- in {
- am_crossfaderID_t crossfaderID
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : this function peeks a sourceclassID. It is used by the RoutingPlugins to determine the SinkClassIDs of a sinkClass.
+ **>
+ method deregisterCrossfader {
+ in {
+ am_crossfaderID_t crossfaderID
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : this function peeks a sourceclassID. It is used by the RoutingPlugins to determine the SinkClassIDs of a sinkClass.
(at)return E_OK on succes, E_DATABASE_ERROR on error
- **>
- method peekSourceClassID {
- in {
- String name
- }
- out {
- am_sourceClass_t sourceClassID
- am_Error_e ^error
- }
- }
-
- <**
- @description : this function peeks a sourceclassID. It is used by the RoutingPlugins to determine the SinkClassIDs of a sinkClass.
+ **>
+ method peekSourceClassID {
+ in {
+ String name
+ }
+ out {
+ am_sourceClass_t sourceClassID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : this function peeks a sourceclassID. It is used by the RoutingPlugins to determine the SinkClassIDs of a sinkClass.
(at)return E_OK on succes, E_DATABASE_ERROR on error
- **>
- method peekSinkClassID {
- in {
- String name
- }
- out {
- am_sinkClass_t sinkClassID
- am_Error_e ^error
- }
- }
-
- <**
- @description : is called when a low level interrupt changes it status.
- **>
- method hookInterruptStatusChange {
- in {
- am_sourceID_t sourceID
- am_InterruptState_e interruptState
- }
- }
-
- <**
- @description : This hook is called when all elements from a domain are registered.
+ **>
+ method peekSinkClassID {
+ in {
+ String name
+ }
+ out {
+ am_sinkClass_t sinkClassID
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : is called when a low level interrupt changes it status.
+ **>
+ method hookInterruptStatusChange {
+ in {
+ am_sourceID_t sourceID
+ am_InterruptState_e interruptState
+ }
+ }
+
+ <**
+ @description : This hook is called when all elements from a domain are registered.
Is used by the Controller to know when all expected domains are finally registered
- **>
- method hookDomainRegistrationComplete {
- in {
- am_domainID_t domainID
- }
- }
-
- <**
- @description : is called when a sink changes its availability
- **>
- method hookSinkAvailablityStatusChange {
- in {
- am_sinkID_t sinkID
- am_Availability_s availability
- }
- }
-
- <**
- @description : is called when a source changes its availability
- **>
- method hookSourceAvailablityStatusChange {
- in {
- am_sourceID_t sourceID
- am_Availability_s availability
- }
- }
-
- <**
- @description : is called when a domain changes its status. This used for early domains only
- **>
- method hookDomainStateChange {
- in {
- am_domainID_t domainID
- am_DomainState_e domainState
- }
- }
-
- <**
- @description : is called when the timinginformation (delay) changed for a connection.
- **>
- method hookTimingInformationChanged {
- in {
- am_connectionID_t connectionID
- am_timeSync_t delay
- }
- }
-
- <**
- @description : this function is used to send out all data that has been changed in an early state.
+ **>
+ method hookDomainRegistrationComplete {
+ in {
+ am_domainID_t domainID
+ }
+ }
+
+ <**
+ @description : is called when a sink changes its availability
+ **>
+ method hookSinkAvailablityStatusChange {
+ in {
+ am_sinkID_t sinkID
+ am_Availability_s availability
+ }
+ }
+
+ <**
+ @description : is called when a source changes its availability
+ **>
+ method hookSourceAvailablityStatusChange {
+ in {
+ am_sourceID_t sourceID
+ am_Availability_s availability
+ }
+ }
+
+ <**
+ @description : is called when a domain changes its status. This used for early domains only
+ **>
+ method hookDomainStateChange {
+ in {
+ am_domainID_t domainID
+ am_DomainState_e domainState
+ }
+ }
+
+ <**
+ @description : is called when the timinginformation (delay) changed for a connection.
+ **>
+ method hookTimingInformationChanged {
+ in {
+ am_connectionID_t connectionID
+ am_timeSync_t delay
+ }
+ }
+
+ <**
+ @description : this function is used to send out all data that has been changed in an early state.
(at)return E_OK on success, E_UNKNOWN on error
- **>
- method sendChangedData {
- in {
- am_EarlyData_L earlyData
- }
- }
-
- <**
- @description : updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the gatewayID is not valid.
- **>
- method updateGateway {
- in {
-
- <**
- @description : This is the new gateway data that has been updated. Please note that changing source and sink IDs,
-
- **>
- am_gatewayID_t gatewayID
- am_ConnectionFormat_L listSourceFormats
- am_ConnectionFormat_L listSinkFormats
- am_Convertion_L convertionMatrix
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the sinkID is not valid.
- **>
- method updateSink {
- in {
-
- <**
- @description : The sinkID of the sink
- **>
- am_sinkID_t sinkID
- am_sinkClass_t sinkClassID
- am_SoundProperty_L listSoundProperties
- am_ConnectionFormat_L listConnectionFormats
- am_MainSoundProperty_L listMainSoundProperties
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the sourceID in the struct is not valid.
+ **>
+ method sendChangedData {
+ in {
+ am_EarlyData_L earlyData
+ }
+ }
+
+ <**
+ @description : updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the gatewayID is not valid.
+ **>
+ method updateGateway {
+ in {
+
+ <**
+ @description : This is the new gateway data that has been updated. Please note that changing source and sink IDs,
+
+ **>
+ am_gatewayID_t gatewayID
+ am_ConnectionFormat_L listSourceFormats
+ am_ConnectionFormat_L listSinkFormats
+ am_Convertion_L convertionMatrix
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the sinkID is not valid.
+ **>
+ method updateSink {
+ in {
+
+ <**
+ @description : The sinkID of the sink
+ **>
+ am_sinkID_t sinkID
+ am_sinkClass_t sinkClassID
+ am_SoundProperty_L listSoundProperties
+ am_ConnectionFormat_L listConnectionFormats
+ am_MainSoundProperty_L listMainSoundProperties
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the sourceID in the struct is not valid.
Please note that only the following data out of am_Source_s have effect when they are changed:
sourceClassID,
listSoundProperties,
listConnectionFormats,
listMainSoundProperties
- **>
- method updateSource {
- in {
-
- <**
- @description : the sourceID of the source
- **>
- am_sourceID_t sourceID
- am_sourceClass_t sourceClassID
- am_SoundProperty_L listSoundProperties
- am_ConnectionFormat_L listConnectionFormats
- am_MainSoundProperty_L listMainSoundProperties
- }
- out {
- am_Error_e ^error
- }
- }
-
- <**
- @description : acknowledges a asyncSetSinkVolumes
- **>
- method ackSetVolumes {
- in {
- am_Handle_s handle
-
- <**
- @description : The list of volumes that have been set. ramp and time values have no meaning when the struct is used here.
- **>
- am_Volumes_L listvolumes
-
- <**
- @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
- **>
- am_Error_e ^error
- }
- }
-
- <**
- @description : The acknowledge of the SinkNotificationConfiguration
- **>
- method ackSinkNotificationConfiguration {
- in {
- am_Handle_s handle
- am_Error_e ^error
- }
- }
-
- <**
- @description : The acknowledge of the SourceNotificationConfiguration
- **>
- method ackSourceNotificationConfiguration {
- in {
- am_Handle_s handle
- am_Error_e ^error
- }
- }
-
- <**
- @description : is called whenever a notified value needs to be send
- **>
- method hookSinkNotificationDataChange {
- in {
-
- <**
- @description : The sinkID of the sink where the data changed
- **>
- am_sinkID_t sinkID
-
- <**
- @description : The payload
- **>
- am_NotificationPayload_s payload
- }
- }
-
- <**
- @description : is called whenever a notified value needs to be send
- **>
- method hookSourceNotificationDataChange {
- in {
-
- <**
- @description : The sinkID of the sink where the data changed
- **>
- am_sourceID_t sourceID
-
- <**
- @description : The payload
- **>
- am_NotificationPayload_s payload
- }
- }
- method confirmRoutingRundown {
- in {
- String domainName
- }
- }
+ **>
+ method updateSource {
+ in {
+
+ <**
+ @description : the sourceID of the source
+ **>
+ am_sourceID_t sourceID
+ am_sourceClass_t sourceClassID
+ am_SoundProperty_L listSoundProperties
+ am_ConnectionFormat_L listConnectionFormats
+ am_MainSoundProperty_L listMainSoundProperties
+ }
+ out {
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : acknowledges a asyncSetSinkVolumes
+ **>
+ method ackSetVolumes {
+ in {
+ am_Handle_s handle
+
+ <**
+ @description : The list of volumes that have been set. ramp and time values have no meaning when the struct is used here.
+ **>
+ am_Volumes_L listvolumes
+
+ <**
+ @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
+ **>
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : The acknowledge of the SinkNotificationConfiguration
+ **>
+ method ackSinkNotificationConfiguration {
+ in {
+ am_Handle_s handle
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : The acknowledge of the SourceNotificationConfiguration
+ **>
+ method ackSourceNotificationConfiguration {
+ in {
+ am_Handle_s handle
+ am_Error_e ^error
+ }
+ }
+
+ <**
+ @description : is called whenever a notified value needs to be send
+ **>
+ method hookSinkNotificationDataChange {
+ in {
+
+ <**
+ @description : The sinkID of the sink where the data changed
+ **>
+ am_sinkID_t sinkID
+
+ <**
+ @description : The payload
+ **>
+ am_NotificationPayload_s payload
+ }
+ }
+
+ <**
+ @description : is called whenever a notified value needs to be send
+ **>
+ method hookSourceNotificationDataChange {
+ in {
+
+ <**
+ @description : The sinkID of the sink where the data changed
+ **>
+ am_sourceID_t sourceID
+
+ <**
+ @description : The payload
+ **>
+ am_NotificationPayload_s payload
+ }
+ }
+ method confirmRoutingRundown {
+ in {
+ String domainName
+ }
+ }
} \ No newline at end of file
diff --git a/include/audiomanagertypes.h b/include/audiomanagertypes.h
index 2066222..b5bedd9 100755
--- a/include/audiomanagertypes.h
+++ b/include/audiomanagertypes.h
@@ -1,32 +1,32 @@
-/**
+/**
* Copyright (C) 2012 - 2014, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
+ *
+ * This file is part of GENIVI Project AudioManager.
+ *
+ * Contributions are licensed to the GENIVI Alliance under one or more
+ * Contribution License Agreements.
+ *
+ * \copyright
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ *
* \author Christian Linke, christian.linke@bmw.de BMW 2011 - 2014
- *
- * \file
+ *
+ * \file
* For further information see http://projects.genivi.org/audio-manager
- *
+ *
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL.
* PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN.
- */
-#if !defined(EA_FDF9AAA5_5FA3_4604_A7A4_865A9FD3AF11__INCLUDED_)
-#define EA_FDF9AAA5_5FA3_4604_A7A4_865A9FD3AF11__INCLUDED_
-
-#include <stdint.h>
-#include <string>
-#include <vector>
-
+ */
+#if !defined(EA_4FF89D4E_BF3C_465a_85C9_1DC47E4FA742__INCLUDED_)
+#define EA_4FF89D4E_BF3C_465a_85C9_1DC47E4FA742__INCLUDED_
+
+#include <stdint.h>
+#include <string>
+#include <vector>
+
namespace am {
/**
@@ -132,13 +132,9 @@ static const am_CustomClassProperty_t CP_GENIVI_SINK_TYPE = 2;
*/
typedef uint16_t am_CustomConnectionFormat_t;
static const am_CustomConnectionFormat_t CF_UNKNOWN = 0;
-/** plain mono */
static const am_CustomConnectionFormat_t CF_GENIVI_MONO = 1;
-/** stereo connection */
static const am_CustomConnectionFormat_t CF_GENIVI_STEREO = 2;
-/** analog connection */
static const am_CustomConnectionFormat_t CF_GENIVI_ANALOG = 3;
-/** automatic connection. */
static const am_CustomConnectionFormat_t CF_GENIVI_AUTO = 4;
/**
@@ -147,11 +143,8 @@ static const am_CustomConnectionFormat_t CF_GENIVI_AUTO = 4;
*/
typedef uint16_t am_CustomMainSoundPropertyType_t;
static const am_CustomMainSoundPropertyType_t MSP_UNKNOWN = 0;
-/** example value between -10 and +10 */
static const am_CustomMainSoundPropertyType_t MSP_GENIVI_TREBLE = 1;
-/** example value between -10 and +10 */
static const am_CustomMainSoundPropertyType_t MSP_GENIVI_MID = 2;
-/** example value between -10 and +10 */
static const am_CustomMainSoundPropertyType_t MSP_GENIVI_BASS = 3;
/**
@@ -171,8 +164,11 @@ static const am_CustomRampType_t RAMP_UNKNOWN = 0;
static const am_CustomRampType_t RAMP_GENIVI_DIRECT = 1;
/** Sets the volume as fast as possible */
static const am_CustomRampType_t RAMP_GENIVI_NO_PLOP = 2;
+/** inverted exponential update, high gradient at the start - soft end */
static const am_CustomRampType_t RAMP_GENIVI_EXP_INV = 3;
+/** continues update of volume */
static const am_CustomRampType_t RAMP_GENIVI_LINEAR = 4;
+/** exponential update, soft start - high gradient at the end */
static const am_CustomRampType_t RAMP_GENIVI_EXP = 5;
/**
@@ -181,11 +177,8 @@ static const am_CustomRampType_t RAMP_GENIVI_EXP = 5;
*/
typedef uint16_t am_CustomSoundPropertyType_t;
static const am_CustomSoundPropertyType_t SP_UNKNOWN = 0;
-/** example treble value min =-10 max =10 */
static const am_CustomSoundPropertyType_t SP_GENIVI_TREBLE = 1;
-/** example mid value min =-10 max =10 */
static const am_CustomSoundPropertyType_t SP_GENIVI_MID = 2;
-/** example bass value min =-10 max =10 */
static const am_CustomSoundPropertyType_t SP_GENIVI_BASS = 3;
/**
@@ -1380,4 +1373,4 @@ public:
};
}
-#endif // !defined(EA_FDF9AAA5_5FA3_4604_A7A4_865A9FD3AF11__INCLUDED_)
+#endif // !defined(EA_4FF89D4E_BF3C_465a_85C9_1DC47E4FA742__INCLUDED_)
diff --git a/include/command/IAmCommandReceive.h b/include/command/IAmCommandReceive.h
index 4694e53..4adb073 100644..100755
--- a/include/command/IAmCommandReceive.h
+++ b/include/command/IAmCommandReceive.h
@@ -1,40 +1,40 @@
-/**
+/**
* Copyright (C) 2012 - 2014, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
+ *
+ * This file is part of GENIVI Project AudioManager.
+ *
+ * Contributions are licensed to the GENIVI Alliance under one or more
+ * Contribution License Agreements.
+ *
+ * \copyright
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ *
* \author Christian Linke, christian.linke@bmw.de BMW 2011 - 2014
- *
- * \file
+ *
+ * \file
* For further information see http://projects.genivi.org/audio-manager
- *
+ *
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL.
* PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN.
- */
-#if !defined(EA_FA7CC74B_CBCB_4356_89AE_B7F88A8CEC7F__INCLUDED_)
-#define EA_FA7CC74B_CBCB_4356_89AE_B7F88A8CEC7F__INCLUDED_
-
-#include <vector>
-#include <string>
-#include "audiomanagertypes.h"
-namespace am {
-class CAmDbusWrapper;
-class CAmSocketHandler;
-}
+ */
+#if !defined(EA_833F8CB5_893B_4670_B004_4A31D1707950__INCLUDED_)
+#define EA_833F8CB5_893B_4670_B004_4A31D1707950__INCLUDED_
+
+#include <vector>
+#include <string>
+#include "audiomanagertypes.h"
+namespace am {
+class CAmDbusWrapper;
+class CAmSocketHandler;
+}
#include "audiomanagertypes.h"
-#define CommandReceiveVersion "2.0"
+#define CommandReceiveVersion "3.0"
namespace am {
/**
@@ -65,33 +65,156 @@ public:
}
+ /**
+ * This function returns the version of the interface.
+ */
virtual void getInterfaceVersion(std::string& version) const =0;
+ /**
+ * connects a source to sink
+ * @return E_OK on success, E_NOT_POSSIBLE on failure, E_ALREADY_EXISTS if the
+ * connection does already exists
+ */
virtual am_Error_e connect(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID) =0;
+ /**
+ * disconnects a mainConnection
+ * @return E_OK on successes, E_NON_EXISTENT if the connection does not exist,
+ * E_NOT_POSSIBLE on error.
+ */
virtual am_Error_e disconnect(const am_mainConnectionID_t mainConnectionID) =0;
+ /**
+ * sets the volume for a sink
+ * @return E_OK on success, E_UNKOWN on error, E_OUT_OF_RANGE in case the value is
+ * out of range
+ */
virtual am_Error_e setVolume(const am_sinkID_t sinkID, const am_mainVolume_t volume) =0;
+ /**
+ * This function is used to increment or decrement the current volume for a sink.
+ * @return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the value is
+ * not in the given volume range.
+ */
virtual am_Error_e volumeStep(const am_sinkID_t sinkID, const int16_t volumeStep) =0;
+ /**
+ * sets the mute state of a sink
+ * @return E_OK on success, E_UNKNOWN on error. If the mute state is already the
+ * desired one, the Daemon will return E_OK.
+ */
virtual am_Error_e setSinkMuteState(const am_sinkID_t sinkID, const am_MuteState_e muteState) =0;
+ /**
+ * This method is used to set sound properties, e.g. Equalizer Values. Since the
+ * capabilities of the system can differ, the exact key value pairs can be
+ * extended in each product
+ * @return E_OK on success, E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in
+ * case of an error
+ */
virtual am_Error_e setMainSinkSoundProperty(const am_MainSoundProperty_s& soundProperty, const am_sinkID_t sinkID) =0;
+ /**
+ * This method is used to set sound properties, e.g. Equalizer Values. Since the
+ * capabilities of the system can differ, the exact key value pairs can be
+ * extended in each product
+ * @return E_OK on success, E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in
+ * case of an error
+ */
virtual am_Error_e setMainSourceSoundProperty(const am_MainSoundProperty_s& soundProperty, const am_sourceID_t sourceID) =0;
+ /**
+ * is used to set a specific system property.
+ * @return E_OK on success, E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in
+ * case of an error
+ */
virtual am_Error_e setSystemProperty(const am_SystemProperty_s& property) =0;
+ /**
+ * returns the actual list of MainConnections
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListMainConnections(std::vector<am_MainConnectionType_s>& listConnections) const =0;
+ /**
+ * returns the actual list of Sinks
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListMainSinks(std::vector<am_SinkType_s>& listMainSinks) const =0;
+ /**
+ * returns the actual list of Sources
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListMainSources(std::vector<am_SourceType_s>& listMainSources) const =0;
+ /**
+ * This is used to retrieve all source sound properties related to a source.
+ * Returns a vector of the sound properties and values as pair
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListMainSinkSoundProperties(const am_sinkID_t sinkID, std::vector<am_MainSoundProperty_s>& listSoundProperties) const =0;
+ /**
+ * This is used to retrieve all source sound properties related to a source.
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListMainSourceSoundProperties(const am_sourceID_t sourceID, std::vector<am_MainSoundProperty_s>& listSourceProperties) const =0;
+ /**
+ * This is used to retrieve SourceClass Information of all source classes
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListSourceClasses(std::vector<am_SourceClass_s>& listSourceClasses) const =0;
+ /**
+ * This is used to retrieve SinkClass Information of all sink classes
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListSinkClasses(std::vector<am_SinkClass_s>& listSinkClasses) const =0;
+ /**
+ * Retrieves a complete list of all systemProperties.
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListSystemProperties(std::vector<am_SystemProperty_s>& listSystemProperties) const =0;
+ /**
+ * returns the delay in ms that the audiopath for the given mainConnection has
+ * @return E_OK on success, E_NOT_POSSIBLE if timing information is not yet
+ * retrieved, E_DATABASE_ERROR on read error on the database
+ */
virtual am_Error_e getTimingInformation(const am_mainConnectionID_t mainConnectionID, am_timeSync_t& delay) const =0;
+ /**
+ * this function is used to retrieve a pointer to the dBusConnectionWrapper
+ * @return E_OK if pointer is valid, E_UKNOWN if AudioManager was compiled without
+ * DBus Support
+ */
virtual am_Error_e getDBusConnectionWrapper(CAmDbusWrapper*& dbusConnectionWrapper) const =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,
+ */
virtual am_Error_e getSocketHandler(CAmSocketHandler*& socketHandler) const =0;
+ /**
+ * asynchronous confirmation of setCommandReady.
+ */
virtual void confirmCommandReady(const uint16_t handle, const am_Error_e error) =0;
+ /**
+ * asynchronous confirmation of setCommandRundown
+ */
virtual void confirmCommandRundown(const uint16_t handle, const am_Error_e error) =0;
+ /**
+ * Retrieves the list of MainNotifications for a sink. Does not return the
+ * possible ones.
+ */
virtual am_Error_e getListMainSinkNotificationConfigurations(const am_sinkID_t sinkID, std::vector<am_NotificationConfiguration_s>& listMainNotificationConfigurations) const =0;
+ /**
+ * Retrieves the list of MainNotifications for a source. Does not return the
+ * possible ones.
+ */
virtual am_Error_e getListMainSourceNotificationConfigurations(const am_sourceID_t sourceID, std::vector<am_NotificationConfiguration_s>& listMainNotificationConfigurations) const =0;
+ /**
+ * sets a MainNotificationConfiuration. This can be used to turn on an off
+ * notifications an to change the mode of the configuration.
+ * @return E_OK on success, E_NON_EXISTENT if sinkID does not exists,
+ * E_DATABASE_ERROR on error
+ */
virtual am_Error_e setMainSinkNotificationConfiguration(const am_sinkID_t sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration) =0;
+ /**
+ * sets a MainNotificationConfiuration. This can be used to turn on an off
+ * notifications an to change the mode of the configuration.
+ * @return E_OK on success, E_NON_EXISTENT if sourceID does not exists,
+ * E_DATABASE_ERROR on error
+ */
virtual am_Error_e setMainSourceNotificationConfiguration(const am_sourceID_t sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration) =0;
};
}
-#endif // !defined(EA_FA7CC74B_CBCB_4356_89AE_B7F88A8CEC7F__INCLUDED_)
+#endif // !defined(EA_833F8CB5_893B_4670_B004_4A31D1707950__INCLUDED_)
diff --git a/include/command/IAmCommandSend.h b/include/command/IAmCommandSend.h
index 9023bfd..a69b0df 100644..100755
--- a/include/command/IAmCommandSend.h
+++ b/include/command/IAmCommandSend.h
@@ -1,40 +1,39 @@
-/**
+/**
* Copyright (C) 2012 - 2014, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
+ *
+ * This file is part of GENIVI Project AudioManager.
+ *
+ * Contributions are licensed to the GENIVI Alliance under one or more
+ * Contribution License Agreements.
+ *
+ * \copyright
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ *
* \author Christian Linke, christian.linke@bmw.de BMW 2011 - 2014
- *
- * \file
+ *
+ * \file
* For further information see http://projects.genivi.org/audio-manager
- *
+ *
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL.
* PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN.
- */
-#if !defined(EA_68F78255_5C2E_4b32_A21C_E8CEDD4641B3__INCLUDED_)
-#define EA_68F78255_5C2E_4b32_A21C_E8CEDD4641B3__INCLUDED_
-
-#include <vector>
-#include <string>
-#include "audiomanagertypes.h"
-
-namespace am {
-class IAmCommandReceive;
+ */
+#if !defined(EA_B654431C_A920_4376_9B2F_3FF803354EAD__INCLUDED_)
+#define EA_B654431C_A920_4376_9B2F_3FF803354EAD__INCLUDED_
+
+#include <vector>
+#include <string>
+#include "audiomanagertypes.h"
+namespace am {
+class IAmCommandReceive;
}
#include "IAmCommandReceive.h"
#include "audiomanagertypes.h"
-#define CommandSendVersion "2.0"
+#define CommandSendVersion "3.0"
namespace am {
/**
@@ -68,34 +67,128 @@ public:
}
+ /**
+ * returns the interface version as string.
+ */
virtual void getInterfaceVersion(std::string& version) const =0;
+ /**
+ * This command starts the interface, the plugin itself. This is not meant to
+ * start communication with the HMI itself. It is a good idea to implement here
+ * everything that sets up the basic communication like DbusCommunication etc...
+ * Be aware of side effects with systemd and socketbased communication!
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e startupInterface(IAmCommandReceive* commandreceiveinterface) =0;
+ /**
+ * This function will indirectly be called by the Controller and is used to start
+ * the Communication. Before this command, all communication will be ignored by
+ * the AudioManager.
+ * After the Plugin is ready, it will asynchronously answer with
+ * condfirmCommandReady, the handle that is handed over must be returned.
+ */
virtual void setCommandReady(const uint16_t handle) =0;
+ /**
+ * This function will indirectly be called by the Controller and is used to stop
+ * the Communication. After this command, all communication will be ignored by the
+ * AudioManager. The plugin has to be prepared that either the power will be
+ * switched off or the Interface is started again with setCommandReady
+ * After the Plugin is ready to rundown, it will asynchronously answer with
+ * condfirmCommandRundown, the handle that is handed over must be returned.
+ */
virtual void setCommandRundown(const uint16_t handle) =0;
+ /**
+ * Callback that is called when the number of connections change
+ */
virtual void cbNewMainConnection(const am_MainConnectionType_s& mainConnection) =0;
+ /**
+ * Callback that is called when the number of connections change
+ */
virtual void cbRemovedMainConnection(const am_mainConnectionID_t mainConnection) =0;
+ /**
+ * Callback that is called when the number of sinks change
+ */
virtual void cbNewSink(const am_SinkType_s& sink) =0;
+ /**
+ * Callback that is called when the number of sinks change
+ */
virtual void cbRemovedSink(const am_sinkID_t sinkID) =0;
+ /**
+ * Callback that is called when the number of sources change
+ */
virtual void cbNewSource(const am_SourceType_s& source) =0;
+ /**
+ * Callback that is called when the number of sources change
+ */
virtual void cbRemovedSource(const am_sourceID_t source) =0;
+ /**
+ * this callback is fired if the number of sink classes changed
+ */
virtual void cbNumberOfSinkClassesChanged() =0;
+ /**
+ * this callback is fired if the number of source classes changed
+ */
virtual void cbNumberOfSourceClassesChanged() =0;
+ /**
+ * This callback is called when the ConnectionState of a connection changed.
+ */
virtual void cbMainConnectionStateChanged(const am_mainConnectionID_t connectionID, const am_ConnectionState_e connectionState) =0;
+ /**
+ * this callback indicates that a sinkSoundProperty has changed.
+ */
virtual void cbMainSinkSoundPropertyChanged(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty) =0;
+ /**
+ * this callback indicates that a sourceSoundProperty has changed.
+ */
virtual void cbMainSourceSoundPropertyChanged(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty) =0;
+ /**
+ * this callback is called when the availability of a sink has changed
+ */
virtual void cbSinkAvailabilityChanged(const am_sinkID_t sinkID, const am_Availability_s& availability) =0;
+ /**
+ * this callback is called when the availability of source has changed.
+ */
virtual void cbSourceAvailabilityChanged(const am_sourceID_t sourceID, const am_Availability_s& availability) =0;
+ /**
+ * this callback indicates a volume change on the indicated sink
+ */
virtual void cbVolumeChanged(const am_sinkID_t sinkID, const am_mainVolume_t volume) =0;
+ /**
+ * this callback indicates a mute state change on a sink.
+ */
virtual void cbSinkMuteStateChanged(const am_sinkID_t sinkID, const am_MuteState_e muteState) =0;
+ /**
+ * is fired if a systemProperty changed
+ */
virtual void cbSystemPropertyChanged(const am_SystemProperty_s& systemProperty) =0;
+ /**
+ * This callback is fired if the timinginformation for a mainConnectionID changed
+ */
virtual void cbTimingInformationChanged(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time) =0;
+ /**
+ * This callback is called when a sink is updated.
+ */
virtual void cbSinkUpdated(const am_sinkID_t sinkID, const am_sinkClass_t sinkClassID, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties) =0;
+ /**
+ * This callback is called when a source is updated.
+ */
virtual void cbSourceUpdated(const am_sourceID_t sourceID, const am_sourceClass_t sourceClassID, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties) =0;
+ /**
+ * This callback is called when a notificated value of a sink changes.
+ */
virtual void cbSinkNotification(const am_sinkID_t sinkID, const am_NotificationPayload_s& notification) =0;
+ /**
+ * This callback is called when a notifcated value of a source changes.
+ */
virtual void cbSourceNotification(const am_sourceID_t sourceID, const am_NotificationPayload_s& notification) =0;
+ /**
+ * This callback is triggered when a mainNotificationConfiguration is changed.
+ */
virtual void cbMainSinkNotificationConfigurationChanged(const am_sinkID_t sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration) =0;
+ /**
+ * This callback is triggered when a mainNotificationConfiguration is changed.
+ */
virtual void cbMainSourceNotificationConfigurationChanged(const am_sourceID_t sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration) =0;
};
}
-#endif // !defined(EA_68F78255_5C2E_4b32_A21C_E8CEDD4641B3__INCLUDED_)
+#endif // !defined(EA_B654431C_A920_4376_9B2F_3FF803354EAD__INCLUDED_)
diff --git a/include/control/IAmControlReceive.h b/include/control/IAmControlReceive.h
index cafa6fa..92281b9 100644..100755
--- a/include/control/IAmControlReceive.h
+++ b/include/control/IAmControlReceive.h
@@ -1,40 +1,39 @@
-/**
+/**
* Copyright (C) 2012 - 2014, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
+ *
+ * This file is part of GENIVI Project AudioManager.
+ *
+ * Contributions are licensed to the GENIVI Alliance under one or more
+ * Contribution License Agreements.
+ *
+ * \copyright
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ *
* \author Christian Linke, christian.linke@bmw.de BMW 2011 - 2014
- *
- * \file
+ *
+ * \file
* For further information see http://projects.genivi.org/audio-manager
- *
+ *
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL.
* PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN.
- */
-#if !defined(EA_55795AA7_FC6F_4fa0_81B9_5AF40198B73A__INCLUDED_)
-#define EA_55795AA7_FC6F_4fa0_81B9_5AF40198B73A__INCLUDED_
-
-#include <vector>
-#include <string>
-#include "audiomanagertypes.h"
-namespace am {
-class CAmSocketHandler;
-}
+ */
+#if !defined(EA_D35033D8_8C54_4c3b_B0E4_9C98516FDF3C__INCLUDED_)
+#define EA_D35033D8_8C54_4c3b_B0E4_9C98516FDF3C__INCLUDED_
+#include <vector>
+#include <string>
+#include "audiomanagertypes.h"
+namespace am {
+class CAmSocketHandler;
+}
#include "audiomanagertypes.h"
#include "NodeStateManager.h"
-#define ControlReceiveVersion "2.0"
+#define ControlReceiveVersion "3.0"
namespace am {
/**
@@ -64,99 +63,558 @@ public:
}
+ /**
+ * This function returns the version of the interface
+ */
virtual void getInterfaceVersion(std::string& version) const =0;
+ /**
+ * calculates a route from source to sink.
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e getRoute(const bool onlyfree, const am_sourceID_t sourceID, const am_sinkID_t sinkID, std::vector<am_Route_s>& returnList) =0;
+ /**
+ * With this function, elementary connects can be triggered by the controller.
+ * @return E_OK on success, E_UNKNOWN on error, E_WRONG_FORMAT of
+ * connectionFormats do not match, E_NO_CHANGE if the desired connection is
+ * already build up
+ */
virtual am_Error_e connect(am_Handle_s& handle, am_connectionID_t& connectionID, const am_CustomConnectionFormat_t format, const am_sourceID_t sourceID, const am_sinkID_t sinkID) =0;
+ /**
+ * is used to disconnect a connection
+ * @return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if connection was
+ * not found, E_NO_CHANGE if no change is neccessary
+ */
virtual am_Error_e disconnect(am_Handle_s& handle, const am_connectionID_t connectionID) =0;
+ /**
+ * triggers a cross fade.
+ * @return E_OK on success, E_UNKNOWN on error E_NO_CHANGE if no change is
+ * neccessary
+ */
virtual am_Error_e crossfade(am_Handle_s& handle, const am_HotSink_e hotSource, const am_crossfaderID_t crossfaderID, const am_CustomRampType_t rampType, const am_time_t rampTime) =0;
+ /**
+ * with this method, all actions that have a handle assigned can be stopped.
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e abortAction(const am_Handle_s handle) =0;
+ /**
+ * this method sets a source state for a source. This function will trigger the
+ * callback cbAckSetSourceState
+ * @return E_OK on success, E_NO_CHANGE if the desired value is already correct,
+ * E_UNKNOWN on error, E_NO_CHANGE if no change is neccessary
+ */
virtual am_Error_e setSourceState(am_Handle_s& handle, const am_sourceID_t sourceID, const am_SourceState_e state) =0;
+ /**
+ * with this function, setting of sinks volumes is done. The behavior of the
+ * volume set is depended on the given ramp and time information.
+ * This function is not only used to ramp volume, but also to mute and direct set
+ * the level. Exact behavior is depended on the selected mute ramps.
+ * @return E_OK on success, E_NO_CHANGE if the volume is already on the desired
+ * value, E_OUT_OF_RANGE is the volume is out of range, E_UNKNOWN on every other
+ * error.
+ */
virtual am_Error_e setSinkVolume(am_Handle_s& handle, const am_sinkID_t sinkID, const am_volume_t volume, const am_CustomRampType_t ramp, const am_time_t time) =0;
+ /**
+ * with this function, setting of source volumes is done. The behavior of the
+ * volume set is depended on the given ramp and time information.
+ * This function is not only used to ramp volume, but also to mute and direct set
+ * the level. Exact behavior is depended on the selected mute ramps.
+ * @return E_OK on success, E_NO_CHANGE if the volume is already on the desired
+ * value, E_OUT_OF_RANGE is the volume is out of range, E_UNKNOWN on every other
+ * error.
+ */
virtual am_Error_e setSourceVolume(am_Handle_s& handle, const am_sourceID_t sourceID, const am_volume_t volume, const am_CustomRampType_t rampType, const am_time_t time) =0;
+ /**
+ * is used to set several sinkSoundProperties at a time
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if property is out
+ * of range, E_NO_CHANGE if no change is neccessary
+ */
virtual am_Error_e setSinkSoundProperties(am_Handle_s& handle, const am_sinkID_t sinkID, const std::vector<am_SoundProperty_s>& soundProperty) =0;
+ /**
+ * is used to set sinkSoundProperties
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if property is out
+ * of range, E_NO_CHANGE if no change is neccessary
+ */
virtual am_Error_e setSinkSoundProperty(am_Handle_s& handle, const am_sinkID_t sinkID, const am_SoundProperty_s& soundProperty) =0;
+ /**
+ * is used to set several SourceSoundProperties at a time
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if property is out
+ * of range. E_NO_CHANGE if no change is neccessary
+ */
virtual am_Error_e setSourceSoundProperties(am_Handle_s& handle, const am_sourceID_t sourceID, const std::vector<am_SoundProperty_s>& soundProperty) =0;
+ /**
+ * is used to set sourceSoundProperties
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if property is out
+ * of range. E_NO_CHANGE if no change is neccessary
+ */
virtual am_Error_e setSourceSoundProperty(am_Handle_s& handle, const am_sourceID_t sourceID, const am_SoundProperty_s& soundProperty) =0;
+ /**
+ * sets the domain state of a domain
+ * @return E_OK on success, E_UNKNOWN on error, E_NO_CHANGE if no change is
+ * neccessary
+ */
virtual am_Error_e setDomainState(const am_domainID_t domainID, const am_DomainState_e domainState) =0;
+ /**
+ * enters a domain in the database, creates and ID
+ * @return E_OK on success, E_ALREADY_EXISTENT if the ID or name is already in the
+ * database, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterDomainDB(const am_Domain_s& domainData, am_domainID_t& domainID) =0;
+ /**
+ * enters a mainconnection in the database, creates and ID
+ * @return E_OK on success, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterMainConnectionDB(const am_MainConnection_s& mainConnectionData, am_mainConnectionID_t& connectionID) =0;
+ /**
+ * enters a sink in the database.
+ * The sinkID in am_Sink_s shall be 0 in case of a dynamic added source A sinkID
+ * greater than 100 will be assigned. If a specific sinkID with a value <100 is
+ * given, the given value will be used. This is for a static setup where the ID's
+ * are predefined.
+ * @return E_OK on success, E_ALREADY_EXISTENT if the ID or name is already in the
+ * database, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterSinkDB(const am_Sink_s& sinkData, am_sinkID_t& sinkID) =0;
+ /**
+ * enters a crossfader in the database.
+ * The crossfaderID in am_Crossfader_s shall be 0 in case of a dynamic added
+ * source A crossfaderID greater than 100 will be assigned. If a specific
+ * crossfaderID with a value <100 is given, the given value will be used. This is
+ * for a static setup where the ID's are predefined.
+ * @return E_OK on success, E_ALREADY_EXISTENT if the ID or name is already in the
+ * database, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterCrossfaderDB(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID) =0;
+ /**
+ * enters a gateway in the database.
+ * The gatewayID in am_Gateway_s shall be 0 in case of a dynamic added source A
+ * gatewayID greater than 100 will be assigned. If a specific gatewayID with a
+ * value <100 is given, the given value will be used. This is for a static setup
+ * where the ID's are predefined.
+ * @return E_OK on success, E_ALREADY_EXISTENT if the ID or name is already in the
+ * database, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterGatewayDB(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID) =0;
+ /**
+ * enters a source in the database.
+ * The sourceID in am_Source_s shall be 0 in case of a dynamic added source A
+ * sourceID greater than 100 will be assigned. If a specific sourceID with a value
+ * <100 is given, the given value will be used. This is for a static setup where
+ * the ID's are predefined.
+ * @return E_OK on success, E_ALREADY_EXISTENT if the ID or name is already in the
+ * database, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterSourceDB(const am_Source_s& sourceData, am_sourceID_t& sourceID) =0;
+ /**
+ * Enters a sourceClass into the database.
+ * @return E_OK on success, E_ALREADY_EXISTENT if the ID or name is already in the
+ * database, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterSinkClassDB(const am_SinkClass_s& sinkClass, am_sinkClass_t& sinkClassID) =0;
+ /**
+ * Enters a sourceClass into the database.
+ * The sourceClassID in am_sourceClass_s shall be 0 in case of a dynamic added
+ * source A sourceClassID greater than 100 will be assigned. If a specific
+ * sourceClassID with a value <100 is given, the given value will be used. This is
+ * for a static setup where the ID's are predefined.
+ * @return E_OK on success, E_ALREADY_EXISTENT if the ID or name is already in the
+ * database, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterSourceClassDB(am_sourceClass_t& sourceClassID, const am_SourceClass_s& sourceClass) =0;
+ /**
+ * changes class information of a sinkclass.
+ * The properties will overwrite the values of the sinkClassID given in the
+ * sinkClass.
+ * It is the duty of the controller to check if the property is valid. If it does
+ * not exist, the daemon will not return an error.
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if
+ * sinkClassID was not found.
+ */
virtual am_Error_e changeSinkClassInfoDB(const am_SinkClass_s& sinkClass) =0;
+ /**
+ * changes class information of a sourceClass.
+ * The properties will overwrite the values of the sourceClassID given in the
+ * sourceClass.
+ * It is the duty of the controller to check if the property is valid. If it does
+ * not exist, the daemon will not return an error.
+ * @return E_OK on success, E_DATABASE_ERROR on error and E_NON_EXISTENT if the
+ * ClassID does not exist.
+ */
virtual am_Error_e changeSourceClassInfoDB(const am_SourceClass_s& sourceClass) =0;
+ /**
+ * This function is used to enter the system Properties into the database.
+ * All entries in the database will be erased before entering the new List. It
+ * should only be called once at system startup.
+ * @return E_OK on success, E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e enterSystemPropertiesListDB(const std::vector<am_SystemProperty_s>& listSystemProperties) =0;
+ /**
+ * changes the mainConnectionState of MainConnection
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if
+ * mainconnection
+ */
virtual am_Error_e changeMainConnectionRouteDB(const am_mainConnectionID_t mainconnectionID, const std::vector<am_connectionID_t>& listConnectionID) =0;
+ /**
+ * changes the mainConnectionState of MainConnection
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if
+ * mainconnection
+ */
virtual am_Error_e changeMainConnectionStateDB(const am_mainConnectionID_t mainconnectionID, const am_ConnectionState_e connectionState) =0;
+ /**
+ * changes the sink volume of a sink
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if sink was
+ * not found
+ */
virtual am_Error_e changeSinkMainVolumeDB(const am_mainVolume_t mainVolume, const am_sinkID_t sinkID) =0;
+ /**
+ * changes the availablility of a sink
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if sink was
+ * not found
+ */
virtual am_Error_e changeSinkAvailabilityDB(const am_Availability_s& availability, const am_sinkID_t sinkID) =0;
+ /**
+ * changes the domainstate of a domain
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if domain
+ * was not found
+ */
virtual am_Error_e changDomainStateDB(const am_DomainState_e domainState, const am_domainID_t domainID) =0;
+ /**
+ * changes the mute state of a sink
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if sink was
+ * not found
+ */
virtual am_Error_e changeSinkMuteStateDB(const am_MuteState_e muteState, const am_sinkID_t sinkID) =0;
+ /**
+ * changes the mainsinksoundproperty of a sink
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if sink was
+ * not found
+ */
virtual am_Error_e changeMainSinkSoundPropertyDB(const am_MainSoundProperty_s& soundProperty, const am_sinkID_t sinkID) =0;
+ /**
+ * changes the mainsourcesoundproperty of a sink
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if source
+ * was not found
+ */
virtual am_Error_e changeMainSourceSoundPropertyDB(const am_MainSoundProperty_s& soundProperty, const am_sourceID_t sourceID) =0;
+ /**
+ * changes the availablility of a source
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if source
+ * was not found
+ */
virtual am_Error_e changeSourceAvailabilityDB(const am_Availability_s& availability, const am_sourceID_t sourceID) =0;
+ /**
+ * changes a systemProperty
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if property
+ * was not found
+ */
virtual am_Error_e changeSystemPropertyDB(const am_SystemProperty_s& property) =0;
+ /**
+ * removes a mainconnection from the DB
+ * @return E_OK on success, E_NON_EXISTENT if main connection was not found,
+ * E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e removeMainConnectionDB(const am_mainConnectionID_t mainConnectionID) =0;
+ /**
+ * removes a sink from the DB
+ * @return E_OK on success, E_NON_EXISTENT if sink was not found, E_DATABASE_ERROR
+ * if the database had an error
+ */
virtual am_Error_e removeSinkDB(const am_sinkID_t sinkID) =0;
+ /**
+ * removes a source from the DB
+ * @return E_OK on success, E_NON_EXISTENT if source was not found,
+ * E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e removeSourceDB(const am_sourceID_t sourceID) =0;
+ /**
+ * removes a gateway from the DB
+ * @return E_OK on success, E_NON_EXISTENT if gateway was not found,
+ * E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e removeGatewayDB(const am_gatewayID_t gatewayID) =0;
+ /**
+ * removes a crossfader from the DB
+ * @return E_OK on success, E_NON_EXISTENT if crossfader was not found,
+ * E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e removeCrossfaderDB(const am_crossfaderID_t crossfaderID) =0;
+ /**
+ * removes a domain from the DB
+ * @return E_OK on success, E_NON_EXISTENT if domain was not found,
+ * E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e removeDomainDB(const am_domainID_t domainID) =0;
+ /**
+ * removes a domain from the DB
+ * @return E_OK on success, E_NON_EXISTENT if domain was not found,
+ * E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e removeSinkClassDB(const am_sinkClass_t sinkClassID) =0;
+ /**
+ * removes a domain from the DB
+ * @return E_OK on success, E_NON_EXISTENT if domain was not found,
+ * E_DATABASE_ERROR if the database had an error
+ */
virtual am_Error_e removeSourceClassDB(const am_sourceClass_t sourceClassID) =0;
+ /**
+ * returns the ClassInformation of a source
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if source
+ * was not found
+ */
virtual am_Error_e getSourceClassInfoDB(const am_sourceID_t sourceID, am_SourceClass_s& classInfo) const =0;
+ /**
+ * returns the ClassInformation of a sink
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if sink was
+ * not found
+ */
virtual am_Error_e getSinkClassInfoDB(const am_sinkID_t sinkID, am_SinkClass_s& sinkClass) const =0;
+ /**
+ * returns the sinkData of a sink
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if sink was
+ * not found
+ */
virtual am_Error_e getSinkInfoDB(const am_sinkID_t sinkID, am_Sink_s& sinkData) const =0;
+ /**
+ * returns the sourcekData of a source
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if sink was
+ * not found
+ */
virtual am_Error_e getSourceInfoDB(const am_sourceID_t sourceID, am_Source_s& sourceData) const =0;
+ /**
+ * return source and sink of a gateway
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if gateway
+ * was not found
+ */
virtual am_Error_e getGatewayInfoDB(const am_gatewayID_t gatewayID, am_Gateway_s& gatewayData) const =0;
+ /**
+ * returns sources and the sink of a crossfader
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if
+ * crossfader was not found
+ */
virtual am_Error_e getCrossfaderInfoDB(const am_crossfaderID_t crossfaderID, am_Crossfader_s& crossfaderData) const =0;
+ /**
+ * returns sources and the sink of a crossfader
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if
+ * crossfader was not found
+ */
virtual am_Error_e getMainConnectionInfoDB(const am_mainConnectionID_t mainConnectionID, am_MainConnection_s& mainConnectionData) const =0;
+ /**
+ * returns all sinks of a domain
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if domain
+ * was not found
+ */
virtual am_Error_e getListSinksOfDomain(const am_domainID_t domainID, std::vector<am_sinkID_t>& listSinkID) const =0;
+ /**
+ * returns all source of a domain
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if domain
+ * was not found
+ */
virtual am_Error_e getListSourcesOfDomain(const am_domainID_t domainID, std::vector<am_sourceID_t>& listSourceID) const =0;
+ /**
+ * returns all crossfaders of a domain
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if domain
+ * was not found
+ */
virtual am_Error_e getListCrossfadersOfDomain(const am_domainID_t domainID, std::vector<am_crossfaderID_t>& listCrossfadersID) const =0;
+ /**
+ * returns all gateways of a domain
+ * @return E_OK on success, E_DATABASE_ERROR on error, E_NON_EXISTENT if domain
+ * was not found
+ */
virtual am_Error_e getListGatewaysOfDomain(const am_domainID_t domainID, std::vector<am_gatewayID_t>& listGatewaysID) const =0;
+ /**
+ * returns a complete list of all MainConnections
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListMainConnections(std::vector<am_MainConnection_s>& listMainConnections) const =0;
+ /**
+ * returns a complete list of all domains
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListDomains(std::vector<am_Domain_s>& listDomains) const =0;
+ /**
+ * returns a complete list of all Connections
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListConnections(std::vector<am_Connection_s>& listConnections) const =0;
+ /**
+ * returns a list of all sinks
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListSinks(std::vector<am_Sink_s>& listSinks) const =0;
+ /**
+ * returns a list of all sources
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListSources(std::vector<am_Source_s>& listSources) const =0;
+ /**
+ * returns a list of all source classes
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListSourceClasses(std::vector<am_SourceClass_s>& listSourceClasses) const =0;
+ /**
+ * returns a list of all handles
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListHandles(std::vector<am_Handle_s>& listHandles) const =0;
+ /**
+ * returns a list of all crossfaders
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListCrossfaders(std::vector<am_Crossfader_s>& listCrossfaders) const =0;
+ /**
+ * returns a list of gateways
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListGateways(std::vector<am_Gateway_s>& listGateways) const =0;
+ /**
+ * returns a list of all sink classes
+ * @return E_OK on success, E_DATABASE_ERROR on error
+ */
virtual am_Error_e getListSinkClasses(std::vector<am_SinkClass_s>& listSinkClasses) const =0;
+ /**
+ * returns the list of SystemProperties
+ */
virtual am_Error_e getListSystemProperties(std::vector<am_SystemProperty_s>& listSystemProperties) const =0;
+ /**
+ * sets the command interface to ready. Will send setCommandReady to each of the
+ * plugins. The corresponding answer is confirmCommandReady.
+ */
virtual void setCommandReady() =0;
+ /**
+ * sets the command interface into the rundown state. Will send setCommandRundown
+ * to each of the plugins. The corresponding answer is confirmCommandRundown.
+ */
virtual void setCommandRundown() =0;
+ /**
+ * sets the routinginterface to ready. Will send the command setRoutingReady to
+ * each of the plugins. The related answer is confirmRoutingReady.
+ */
virtual void setRoutingReady() =0;
+ /**
+ * sets the routinginterface to the rundown state. Will send the command
+ * setRoutingRundown to each of the plugins. The related answer is
+ * confirmRoutingRundown.
+ */
virtual void setRoutingRundown() =0;
+ /**
+ * acknowledges the setControllerReady call.
+ */
virtual void confirmControllerReady(const am_Error_e error) =0;
+ /**
+ * Acknowledges the setControllerRundown call.
+ */
virtual void confirmControllerRundown(const am_Error_e error) =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,
+ */
virtual am_Error_e getSocketHandler(CAmSocketHandler*& socketHandler) =0;
+ /**
+ * Change the data of the source.
+ */
virtual am_Error_e changeSourceDB(const am_sourceID_t sourceID, const am_sourceClass_t sourceClassID, const std::vector<am_SoundProperty_s>& listSoundProperties, const std::vector<am_CustomConnectionFormat_t>& listConnectionFormats, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties) =0;
+ /**
+ * Change the data of the sink.
+ */
virtual am_Error_e changeSinkDB(const am_sinkID_t sinkID, const am_sinkClass_t sinkClassID, const std::vector<am_SoundProperty_s>& listSoundProperties, const std::vector<am_CustomConnectionFormat_t>& listConnectionFormats, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties) =0;
+ /**
+ * changes Gateway Data
+ */
virtual am_Error_e changeGatewayDB(const am_gatewayID_t gatewayID, const std::vector<am_CustomConnectionFormat_t>& listSourceConnectionFormats, const std::vector<am_CustomConnectionFormat_t>& listSinkConnectionFormats, const std::vector<bool>& convertionMatrix) =0;
+ /**
+ * with this function, setting of multiple volumes at a time is done. The behavior
+ * of the volume set is depended on the given ramp and time information.
+ * This function is not only used to ramp volume, but also to mute and direct set
+ * the level. Exact behavior is depended on the selected mute ramps.
+ * @return E_OK on success, E_NO_CHANGE if the volume is already on the desired
+ * value, E_OUT_OF_RANGE is the volume is out of range, E_UNKNOWN on every other
+ * error.
+ */
virtual am_Error_e setVolumes(am_Handle_s& handle, const std::vector<am_Volumes_s>& listVolumes) =0;
+ /**
+ * set a sink notification configuration
+ */
virtual am_Error_e setSinkNotificationConfiguration(am_Handle_s& handle, const am_sinkID_t sinkID, const am_NotificationConfiguration_s& notificationConfiguration) =0;
+ /**
+ * set a source notification configuration
+ */
virtual am_Error_e setSourceNotificationConfiguration(am_Handle_s& handle, const am_sourceID_t sourceID, const am_NotificationConfiguration_s& notificationConfiguration) =0;
+ /**
+ * Sends out the main notificiation of a sink
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual void sendMainSinkNotificationPayload(const am_sinkID_t sinkID, const am_NotificationPayload_s& notificationPayload) =0;
+ /**
+ * Sends out the main notificiation of a source
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual void sendMainSourceNotificationPayload(const am_sourceID_t sourceID, const am_NotificationPayload_s& notificationPayload) =0;
+ /**
+ * change the mainNotificationConfiguration of a sink
+ * @return E_OK when successful, E_DATABASE on error
+ */
virtual am_Error_e changeMainSinkNotificationConfigurationDB(const am_sinkID_t sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration) =0;
+ /**
+ * change the mainNotificationConfiguration of a source
+ * @return E_OK when successful, E_DATABASE on error
+ */
virtual am_Error_e changeMainSourceNotificationConfigurationDB(const am_sourceID_t sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration) =0;
+ /**
+ * Retrieves the Restart Reason Property
+ * @return E_OK on success E_UNKNOWN if property could not be retrieved.
+ */
virtual am_Error_e getRestartReasonPropertyNSM(NsmRestartReason_e& restartReason) =0;
+ /**
+ * Retrieves the shutdown reason property
+ * @return E_OK on success E_UNKNOWN if property could not be retrieved.
+ */
virtual am_Error_e getShutdownReasonPropertyNSM(NsmShutdownReason_e& ShutdownReason) =0;
+ /**
+ * Retrieves the running reason
+ * @return E_OK on success E_UNKNOWN if property could not be retrieved.
+ */
virtual am_Error_e getRunningReasonPropertyNSM(NsmRunningReason_e& nsmRunningReason) =0;
+ /**
+ * @return NsmErrorStatus_Ok in case of success
+ */
virtual NsmErrorStatus_e getNodeStateNSM(NsmNodeState_e& nsmNodeState) =0;
+ /**
+ * Retrieves the current session state
+ * @return NsmErrorStatus_Ok on success E_UNKNOWN if property could not be
+ * retrieved.
+ */
virtual NsmErrorStatus_e getSessionStateNSM(const std::string& sessionName, const NsmSeat_e seatID, NsmSessionState_e& sessionState) =0;
+ /**
+ * Retrieves the current applicationmode
+ * @return NsmErrorStatus_Ok on success E_UNKNOWN if property could not be
+ * retrieved.
+ */
virtual NsmErrorStatus_e getApplicationModeNSM(NsmApplicationMode_e& applicationMode) =0;
+ /**
+ * Registers the AudioManager as shutdown client
+ * @return NsmErrorStatus_Ok on success
+ * The interface for the client will be provided by the AudioManagerDeamon,
+ * therefore is no need to mention it here.
+ */
virtual NsmErrorStatus_e registerShutdownClientNSM(const uint32_t shutdownMode, const uint32_t timeoutMs) =0;
+ /**
+ * unregisters the AudioManager as shutdown client
+ * @return NsmErrorStatus_Ok on success
+ */
virtual NsmErrorStatus_e unRegisterShutdownClientNSM(const uint32_t shutdownMode) =0;
+ /**
+ * @return E_OK on success, E_UNKOWN if interface could not be reached
+ */
virtual am_Error_e getInterfaceVersionNSM(uint32_t& version) =0;
+ /**
+ * Sends out the lifecyclerequest complete to the NSM
+ * @return NsmErrorStatus_Ok in case of success
+ */
virtual NsmErrorStatus_e sendLifecycleRequestCompleteNSM(const uint32_t RequestId, const NsmErrorStatus_e status) =0;
};
}
-#endif // !defined(EA_55795AA7_FC6F_4fa0_81B9_5AF40198B73A__INCLUDED_)
+#endif // !defined(EA_D35033D8_8C54_4c3b_B0E4_9C98516FDF3C__INCLUDED_)
diff --git a/include/control/IAmControlSend.h b/include/control/IAmControlSend.h
index c102074..092ca43 100644..100755
--- a/include/control/IAmControlSend.h
+++ b/include/control/IAmControlSend.h
@@ -1,41 +1,40 @@
-/**
+/**
* Copyright (C) 2012 - 2014, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
+ *
+ * This file is part of GENIVI Project AudioManager.
+ *
+ * Contributions are licensed to the GENIVI Alliance under one or more
+ * Contribution License Agreements.
+ *
+ * \copyright
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ *
* \author Christian Linke, christian.linke@bmw.de BMW 2011 - 2014
- *
- * \file
+ *
+ * \file
* For further information see http://projects.genivi.org/audio-manager
- *
+ *
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL.
* PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN.
- */
-#if !defined(EA_D17C9A1A_AB65_4f6e_A787_51033D190C21__INCLUDED_)
-#define EA_D17C9A1A_AB65_4f6e_A787_51033D190C21__INCLUDED_
-
-#include <vector>
-#include <string>
-#include "audiomanagertypes.h"
-
-namespace am {
-class IAmControlReceive;
+ */
+#if !defined(EA_EC5ACE73_7EE6_4535_B8AA_54B1C4AC7007__INCLUDED_)
+#define EA_EC5ACE73_7EE6_4535_B8AA_54B1C4AC7007__INCLUDED_
+
+#include <vector>
+#include <string>
+#include "audiomanagertypes.h"
+namespace am {
+class IAmControlReceive;
}
#include "IAmControlReceive.h"
#include "audiomanagertypes.h"
#include "NodeStateManager.h"
-#define ControlSendVersion "2.0"
+#define ControlSendVersion "3.0"
namespace am {
/**
@@ -67,68 +66,293 @@ public:
}
+ /**
+ * This function returns the version of the interface
+ * returns E_OK, E_UNKOWN if version is unknown.
+ */
virtual void getInterfaceVersion(std::string& version) const =0;
+ /**
+ * Starts up the controller.
+ */
virtual am_Error_e startupController(IAmControlReceive* controlreceiveinterface) =0;
+ /**
+ * this message is used tell the controller that it should get ready. This message
+ * must be acknowledged via confirmControllerReady.
+ */
virtual void setControllerReady() =0;
+ /**
+ * This message tells the controller that he should prepare everything for the
+ * power to be switched off. This message must be acknowledged via
+ * confirmControllerRundown.
+ * The method will give the signal as integer that was responsible for calling the
+ * setControllerRundown.
+ * This function is called from the signal handler, either direct (when the
+ * program is killed) or from within the mainloop (if the program is terminated).
+ */
virtual void setControllerRundown(const int16_t signal) =0;
+ /**
+ * is called when a connection request comes in via the command interface
+ * @return E_OK on success, E_NOT_POSSIBLE on error, E_ALREADY_EXISTENT if already
+ * exists
+ */
virtual am_Error_e hookUserConnectionRequest(const am_sourceID_t sourceID, const am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID) =0;
+ /**
+ * is called when a disconnection request comes in via the command interface
+ * @return E_OK on success, E_NOT_POSSIBLE on error, E_NON_EXISTENT if connection
+ * does not exists
+ */
virtual am_Error_e hookUserDisconnectionRequest(const am_mainConnectionID_t connectionID) =0;
+ /**
+ * sets a user MainSinkSoundProperty
+ * @return E_OK on success, E_OUT_OF_RANGE if out of range, E_UNKNOWN on error
+ */
virtual am_Error_e hookUserSetMainSinkSoundProperty(const am_sinkID_t sinkID, const am_MainSoundProperty_s& soundProperty) =0;
+ /**
+ * sets a user MainSourceSoundProperty
+ * @return E_OK on success, E_OUT_OF_RANGE if out of range, E_UNKNOWN on error
+ */
virtual am_Error_e hookUserSetMainSourceSoundProperty(const am_sourceID_t sourceID, const am_MainSoundProperty_s& soundProperty) =0;
+ /**
+ * sets a user SystemProperty
+ * @return E_OK on success, E_OUT_OF_RANGE if out of range, E_UNKNOWN on error
+ */
virtual am_Error_e hookUserSetSystemProperty(const am_SystemProperty_s& property) =0;
+ /**
+ * sets a user volume
+ * @return E_OK on success, E_OUT_OF_RANGE if out of range, E_UNKNOWN on error
+ */
virtual am_Error_e hookUserVolumeChange(const am_sinkID_t SinkID, const am_mainVolume_t newVolume) =0;
+ /**
+ * sets a user volume as increment
+ * @return E_OK on success, E_OUT_OF_RANGE if out of range, E_UNKNOWN on error
+ */
virtual am_Error_e hookUserVolumeStep(const am_sinkID_t SinkID, const int16_t increment) =0;
+ /**
+ * sets the mute state of a sink
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e hookUserSetSinkMuteState(const am_sinkID_t sinkID, const am_MuteState_e muteState) =0;
+ /**
+ * is called when a routing adaptor registers its domain
+ * @return E_OK on success, E_UNKNOWN on error, E_ALREADY_EXISTENT if already
+ * exists
+ */
virtual am_Error_e hookSystemRegisterDomain(const am_Domain_s& domainData, am_domainID_t& domainID) =0;
+ /**
+ * is called when a routing adaptor wants to derigister a domain
+ * @return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if not found
+ */
virtual am_Error_e hookSystemDeregisterDomain(const am_domainID_t domainID) =0;
+ /**
+ * is called when a domain registered all the elements
+ */
virtual void hookSystemDomainRegistrationComplete(const am_domainID_t domainID) =0;
+ /**
+ * is called when a routing adaptor registers a sink
+ * @return E_OK on success, E_UNKNOWN on error, E_ALREADY_EXISTENT if already
+ * exists
+ */
virtual am_Error_e hookSystemRegisterSink(const am_Sink_s& sinkData, am_sinkID_t& sinkID) =0;
+ /**
+ * is called when a routing adaptor deregisters a sink
+ * @return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if not found
+ */
virtual am_Error_e hookSystemDeregisterSink(const am_sinkID_t sinkID) =0;
+ /**
+ * is called when a routing adaptor registers a source
+ * @return E_OK on success, E_UNKNOWN on error, E_ALREADY_EXISTENT if already
+ * exists
+ */
virtual am_Error_e hookSystemRegisterSource(const am_Source_s& sourceData, am_sourceID_t& sourceID) =0;
+ /**
+ * is called when a routing adaptor deregisters a source
+ * @return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if not found
+ */
virtual am_Error_e hookSystemDeregisterSource(const am_sourceID_t sourceID) =0;
+ /**
+ * is called when a routing adaptor registers a gateway
+ * @return E_OK on success, E_UNKNOWN on error, E_ALREADY_EXISTENT if already
+ * exists
+ */
virtual am_Error_e hookSystemRegisterGateway(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID) =0;
+ /**
+ * is called when a routing adaptor deregisters a gateway
+ * @return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if not found
+ */
virtual am_Error_e hookSystemDeregisterGateway(const am_gatewayID_t gatewayID) =0;
+ /**
+ * is called when a routing adaptor registers a crossfader
+ * @return E_OK on success, E_UNKNOWN on error, E_ALREADY_EXISTENT if already
+ * exists
+ */
virtual am_Error_e hookSystemRegisterCrossfader(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID) =0;
+ /**
+ * is called when a routing adaptor deregisters a crossfader
+ * @return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if not found
+ */
virtual am_Error_e hookSystemDeregisterCrossfader(const am_crossfaderID_t crossfaderID) =0;
+ /**
+ * volumeticks. therse are used to indicate volumechanges during a ramp
+ */
virtual void hookSystemSinkVolumeTick(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume) =0;
+ /**
+ * volumeticks. therse are used to indicate volumechanges during a ramp
+ */
virtual void hookSystemSourceVolumeTick(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume) =0;
+ /**
+ * is called when an low level interrupt changed its state
+ */
virtual void hookSystemInterruptStateChange(const am_sourceID_t sourceID, const am_InterruptState_e interruptState) =0;
+ /**
+ * id called when a sink changed its availability
+ */
virtual void hookSystemSinkAvailablityStateChange(const am_sinkID_t sinkID, const am_Availability_s& availability) =0;
+ /**
+ * id called when a source changed its availability
+ */
virtual void hookSystemSourceAvailablityStateChange(const am_sourceID_t sourceID, const am_Availability_s& availability) =0;
+ /**
+ * id called when domainstate was changed
+ */
virtual void hookSystemDomainStateChange(const am_domainID_t domainID, const am_DomainState_e state) =0;
+ /**
+ * when early data was received
+ */
virtual void hookSystemReceiveEarlyData(const std::vector<am_EarlyData_s>& data) =0;
+ /**
+ * this hook provides information about speed changes.
+ * The quantization and sampling rate of the speed can be adjusted at compile time
+ * of the AudioManagerDaemon.
+ */
virtual void hookSystemSpeedChange(const am_speed_t speed) =0;
+ /**
+ * this hook is fired whenever the timing information of a mainconnection has
+ * changed.
+ */
virtual void hookSystemTimingInformationChanged(const am_mainConnectionID_t mainConnectionID, const am_timeSync_t time) =0;
+ /**
+ * ack for connect
+ */
virtual void cbAckConnect(const am_Handle_s handle, const am_Error_e errorID) =0;
+ /**
+ * ack for disconnect
+ */
virtual void cbAckDisconnect(const am_Handle_s handle, const am_Error_e errorID) =0;
+ /**
+ * ack for crossfading
+ */
virtual void cbAckCrossFade(const am_Handle_s handle, const am_HotSink_e hostsink, const am_Error_e error) =0;
+ /**
+ * ack for sink volume changes
+ */
virtual void cbAckSetSinkVolumeChange(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error) =0;
+ /**
+ * ack for source volume changes
+ */
virtual void cbAckSetSourceVolumeChange(const am_Handle_s handle, const am_volume_t voulme, const am_Error_e error) =0;
+ /**
+ * ack for setting of source states
+ */
virtual void cbAckSetSourceState(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * ack for setting of sourcesoundproperties
+ */
virtual void cbAckSetSourceSoundProperties(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * ack for setting of sourcesoundproperties
+ */
virtual void cbAckSetSourceSoundProperty(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * ack for setting of sinksoundproperties
+ */
virtual void cbAckSetSinkSoundProperties(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * ack for setting of sinksoundproperties
+ */
virtual void cbAckSetSinkSoundProperty(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * This function is used by the routing algorithm to retrieve a priorized list of
+ * connectionFormats from the Controller.
+ * @return E_OK in case of successfull priorisation.
+ */
virtual am_Error_e getConnectionFormatChoice(const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_Route_s listRoute, const std::vector<am_CustomConnectionFormat_t> listPossibleConnectionFormats, std::vector<am_CustomConnectionFormat_t>& listPrioConnectionFormats) =0;
+ /**
+ * confirms the setCommandReady call
+ */
virtual void confirmCommandReady(const am_Error_e error) =0;
+ /**
+ * confirms the setRoutingReady call
+ */
virtual void confirmRoutingReady(const am_Error_e error) =0;
+ /**
+ * confirms the setCommandRundown call
+ */
virtual void confirmCommandRundown(const am_Error_e error) =0;
+ /**
+ * confirms the setRoutingRundown command
+ */
virtual void confirmRoutingRundown(const am_Error_e error) =0;
+ /**
+ * update form the SinkData
+ */
virtual am_Error_e hookSystemUpdateSink(const am_sinkID_t sinkID, const am_sinkClass_t sinkClassID, const std::vector<am_SoundProperty_s>& listSoundProperties, const std::vector<am_CustomConnectionFormat_t>& listConnectionFormats, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties) =0;
+ /**
+ * update from the source Data
+ */
virtual am_Error_e hookSystemUpdateSource(const am_sourceID_t sourceID, const am_sourceClass_t sourceClassID, const std::vector<am_SoundProperty_s>& listSoundProperties, const std::vector<am_CustomConnectionFormat_t>& listConnectionFormats, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties) =0;
+ /**
+ * updates the Gateway Data
+ */
virtual am_Error_e hookSystemUpdateGateway(const am_gatewayID_t gatewayID, const std::vector<am_CustomConnectionFormat_t>& listSourceConnectionFormats, const std::vector<am_CustomConnectionFormat_t>& listSinkConnectionFormats, const std::vector<bool>& convertionMatrix) =0;
+ /**
+ * ack for mulitple volume changes
+ */
virtual void cbAckSetVolumes(const am_Handle_s handle, const std::vector<am_Volumes_s>& listVolumes, const am_Error_e error) =0;
+ /**
+ * The acknowledge of the sink notification configuration
+ */
virtual void cbAckSetSinkNotificationConfiguration(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * The acknowledge of the source notification configuration
+ */
virtual void cbAckSetSourceNotificationConfiguration(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * new sinkNotification data is there!
+ */
virtual void hookSinkNotificationDataChanged(const am_sinkID_t sinkID, const am_NotificationPayload_s& payload) =0;
+ /**
+ * new sourceNotification data is there!
+ */
virtual void hookSourceNotificationDataChanged(const am_sourceID_t sourceID, const am_NotificationPayload_s& payload) =0;
+ /**
+ * sets a user MainSinkNotificationConfiguration
+ * @return E_OK on success, E_OUT_OF_RANGE if out of range, E_UNKNOWN on error
+ */
virtual am_Error_e hookUserSetMainSinkNotificationConfiguration(const am_sinkID_t sinkID, const am_NotificationConfiguration_s& notificationConfiguration) =0;
+ /**
+ * sets a user MainSourceNotificationConfiguration
+ * @return E_OK on success, E_OUT_OF_RANGE if out of range, E_UNKNOWN on error
+ */
virtual am_Error_e hookUserSetMainSourceNotificationConfiguration(const am_sourceID_t sourceID, const am_NotificationConfiguration_s& notificationConfiguration) =0;
+ /**
+ * This hook is connected to the NodeState signal of the NodeStateManager
+ */
virtual void hookSystemNodeStateChanged(const NsmNodeState_e NodeStateId) =0;
+ /**
+ * This hook is connected to the NodeApplicationMode signal of the NodeStateManager
+ */
virtual void hookSystemNodeApplicationModeChanged(const NsmApplicationMode_e ApplicationModeId) =0;
+ /**
+ * the sessionstate change was send by the NSM
+ */
virtual void hookSystemSessionStateChanged(const std::string& sessionName, const NsmSeat_e seatID, const NsmSessionState_e sessionStateID) =0;
+ /**
+ * A lifecycle request comes in from the NSM and must be processed.
+ * @return NsmErrorStatus_Ok if successful
+ * The controller has to respond to this message with LifecycleRequestComplete.
+ */
virtual NsmErrorStatus_e hookSystemLifecycleRequest(const uint32_t Request, const uint32_t RequestId) =0;
};
}
-#endif // !defined(EA_D17C9A1A_AB65_4f6e_A787_51033D190C21__INCLUDED_)
+#endif // !defined(EA_EC5ACE73_7EE6_4535_B8AA_54B1C4AC7007__INCLUDED_)
diff --git a/include/routing/IAmRoutingReceive.h b/include/routing/IAmRoutingReceive.h
index dd86531..796c28f 100644..100755
--- a/include/routing/IAmRoutingReceive.h
+++ b/include/routing/IAmRoutingReceive.h
@@ -1,41 +1,40 @@
-/**
+/**
* Copyright (C) 2012 - 2014, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
+ *
+ * This file is part of GENIVI Project AudioManager.
+ *
+ * Contributions are licensed to the GENIVI Alliance under one or more
+ * Contribution License Agreements.
+ *
+ * \copyright
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ *
* \author Christian Linke, christian.linke@bmw.de BMW 2011 - 2014
- *
- * \file
+ *
+ * \file
* For further information see http://projects.genivi.org/audio-manager
- *
+ *
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL.
* PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN.
- */
-#if !defined(EA_6ECD9991_3219_4bf4_B9F7_DDE15D8683C6__INCLUDED_)
-#define EA_6ECD9991_3219_4bf4_B9F7_DDE15D8683C6__INCLUDED_
-
-#include <vector>
-#include <string>
-#include "audiomanagertypes.h"
-
-namespace am {
-class CAmDbusWrapper;
-class CAmSocketHandler;
-}
+ */
+#if !defined(EA_C540B86A_9F4A_4ae5_A68A_8A0FD52A7149__INCLUDED_)
+#define EA_C540B86A_9F4A_4ae5_A68A_8A0FD52A7149__INCLUDED_
+
+#include <vector>
+#include <string>
+#include "audiomanagertypes.h"
+namespace am {
+class CAmDbusWrapper;
+class CAmSocketHandler;
+}
#include "audiomanagertypes.h"
-#define RoutingReceiveVersion "2.0"
+#define RoutingReceiveVersion "3.0"
namespace am {
/**
@@ -65,54 +64,251 @@ public:
}
+ /**
+ * This function returns the version of the interface
+ */
virtual void getInterfaceVersion(std::string& version) const =0;
+ /**
+ * acknowledges a asyncConnect
+ */
virtual void ackConnect(const am_Handle_s handle, const am_connectionID_t connectionID, const am_Error_e error) =0;
+ /**
+ * acknowledges a asyncDisconnect
+ */
virtual void ackDisconnect(const am_Handle_s handle, const am_connectionID_t connectionID, const am_Error_e error) =0;
+ /**
+ * acknowledges a asyncsetSinkVolume
+ */
virtual void ackSetSinkVolumeChange(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error) =0;
+ /**
+ * acknowledges a asyncsetSourceVolume
+ */
virtual void ackSetSourceVolumeChange(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error) =0;
+ /**
+ * acknowlegde for asyncSetSourceState
+ */
virtual void ackSetSourceState(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * acknowledges asyncSetSinkSoundProperties
+ */
virtual void ackSetSinkSoundProperties(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * acknowledges asyncSetSinkSoundProperty
+ */
virtual void ackSetSinkSoundProperty(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * acknowledges asyncSetSourceSoundProperties
+ */
virtual void ackSetSourceSoundProperties(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * acknowledges asyncSetSourceSoundProperty
+ */
virtual void ackSetSourceSoundProperty(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * acknowledges asyncCrossFade
+ */
virtual void ackCrossFading(const am_Handle_s handle, const am_HotSink_e hotSink, const am_Error_e error) =0;
+ /**
+ * acknowledges a volume tick. This can be used to display volumechanges during
+ * ramps
+ */
virtual void ackSourceVolumeTick(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume) =0;
+ /**
+ * acknowledges a volume tick. This can be used to display volumechanges during
+ * ramps
+ */
virtual void ackSinkVolumeTick(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume) =0;
+ /**
+ * This function returns the ID to the given domainName. If already a domain is
+ * registered with this name, it will return the corresponding ID, if not it will
+ * reserve an ID but not register the domain. The other parameters of the domain
+ * will be overwritten when the domain is registered.
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e peekDomain(const std::string& name, am_domainID_t& domainID) =0;
+ /**
+ * registers a domain
+ * @return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on
+ * error
+ */
virtual am_Error_e registerDomain(const am_Domain_s& domainData, am_domainID_t& domainID) =0;
+ /**
+ * deregisters a domain. All sources, sinks, gateways and crossfaders from that
+ * domain will be removed as well.
+ * @return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
+ */
virtual am_Error_e deregisterDomain(const am_domainID_t domainID) =0;
+ /**
+ * registers a gateway. @return E_OK on succes, E_ALREADY_EXISTENT if already
+ * registered E_UNKOWN on error
+ */
virtual am_Error_e registerGateway(const am_Gateway_s& gatewayData, am_gatewayID_t& gatewayID) =0;
+ /**
+ * deregisters a gateway. Also removes all sinks and sources of the controlling
+ * domain.
+ * @return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
+ */
virtual am_Error_e deregisterGateway(const am_gatewayID_t gatewayID) =0;
+ /**
+ * This function returns the ID to the given sinkName. If already a sink is
+ * registered with this name, it will return the corresponding ID, if not it will
+ * reserve an ID but not register the sink. The other parameters of the sink will
+ * be overwritten when the sink is registered.
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e peekSink(const std::string& name, am_sinkID_t& sinkID) =0;
+ /**
+ * Registers a sink. If the sink is part of a gateway, the listconnectionFormats
+ * is copied to the gatewayInformation
+ * @return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on
+ * error
+ */
virtual am_Error_e registerSink(const am_Sink_s& sinkData, am_sinkID_t& sinkID) =0;
+ /**
+ * deregisters a sink.
+ * @return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
+ */
virtual am_Error_e deregisterSink(const am_sinkID_t sinkID) =0;
+ /**
+ * This function returns the ID to the given sourceName. If already a source is
+ * registered with this name, it will return the corresponding ID, if not it will
+ * reserve an ID but not register the source. The other parameters of the source
+ * will be overwritten when the source is registered.
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e peekSource(const std::string& name, am_sourceID_t& sourceID) =0;
+ /**
+ * registers a source. If the source is part of a gateway, the
+ * listconnectionFormats is copied to the gatewayInformation
+ * @return E_OK on success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or
+ * sourceID already exists
+ */
virtual am_Error_e registerSource(const am_Source_s& sourceData, am_sourceID_t& sourceID) =0;
+ /**
+ * deregisters a source
+ * @return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
+ */
virtual am_Error_e deregisterSource(const am_sourceID_t sourceID) =0;
+ /**
+ * this function registers a crossfader.
+ * @return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on
+ * error
+ */
virtual am_Error_e registerCrossfader(const am_Crossfader_s& crossfaderData, am_crossfaderID_t& crossfaderID) =0;
+ /**
+ * this function deregisters a crossfader. removes all sources and sinks assiated
+ * as well.
+ * @return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
+ */
virtual am_Error_e deregisterCrossfader(const am_crossfaderID_t crossfaderID) =0;
+ /**
+ * this function peeks a sourceclassID. It is used by the RoutingPlugins to
+ * determine the SinkClassIDs of a sinkClass.
+ * @return E_OK on succes, E_DATABASE_ERROR on error
+ */
virtual am_Error_e peekSourceClassID(const std::string& name, am_sourceClass_t& sourceClassID) =0;
+ /**
+ * this function peeks a sourceclassID. It is used by the RoutingPlugins to
+ * determine the SinkClassIDs of a sinkClass.
+ * @return E_OK on succes, E_DATABASE_ERROR on error
+ */
virtual am_Error_e peekSinkClassID(const std::string& name, am_sinkClass_t& sinkClassID) =0;
+ /**
+ * is called when a low level interrupt changes it status.
+ */
virtual void hookInterruptStatusChange(const am_sourceID_t sourceID, const am_InterruptState_e interruptState) =0;
+ /**
+ * This hook is called when all elements from a domain are registered.
+ * Is used by the Controller to know when all expected domains are finally
+ * registered
+ */
virtual void hookDomainRegistrationComplete(const am_domainID_t domainID) =0;
+ /**
+ * is called when a sink changes its availability
+ */
virtual void hookSinkAvailablityStatusChange(const am_sinkID_t sinkID, const am_Availability_s& availability) =0;
+ /**
+ * is called when a source changes its availability
+ */
virtual void hookSourceAvailablityStatusChange(const am_sourceID_t sourceID, const am_Availability_s& availability) =0;
+ /**
+ * is called when a domain changes its status. This used for early domains only
+ */
virtual void hookDomainStateChange(const am_domainID_t domainID, const am_DomainState_e domainState) =0;
+ /**
+ * is called when the timinginformation (delay) changed for a connection.
+ */
virtual void hookTimingInformationChanged(const am_connectionID_t connectionID, const am_timeSync_t delay) =0;
+ /**
+ * this function is used to send out all data that has been changed in an early
+ * state.
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual void sendChangedData(const std::vector<am_EarlyData_s>& earlyData) =0;
+ /**
+ * this function is used to retrieve a pointer to the dBusConnectionWrapper
+ * @return E_OK if pointer is valid, E_UKNOWN if AudioManager was compiled without
+ * DBus Support
+ */
virtual am_Error_e getDBusConnectionWrapper(CAmDbusWrapper*& dbusConnectionWrapper) const =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,
+ */
virtual am_Error_e getSocketHandler(CAmSocketHandler*& socketHandler) const =0;
+ /**
+ * confirms the setRoutingReady Command
+ */
virtual void confirmRoutingReady(const uint16_t handle, const am_Error_e error) =0;
+ /**
+ * confirms the setRoutingRundown Command
+ */
virtual void confirmRoutingRundown(const uint16_t handle, const am_Error_e error) =0;
+ /**
+ * updates data of an gateway. @return E_OK on success, E_NON_EXISTENT if the
+ * gatewayID is not valid.
+ */
virtual am_Error_e updateGateway(const am_gatewayID_t gatewayID, const std::vector<am_CustomConnectionFormat_t>& listSourceFormats, const std::vector<am_CustomConnectionFormat_t>& listSinkFormats, const std::vector<bool>& convertionMatrix) =0;
+ /**
+ * updates data of an gateway. @return E_OK on success, E_NON_EXISTENT if the
+ * sinkID is not valid.
+ */
virtual am_Error_e updateSink(const am_sinkID_t sinkID, const am_sinkClass_t sinkClassID, const std::vector<am_SoundProperty_s>& listSoundProperties, const std::vector<am_CustomConnectionFormat_t>& listConnectionFormats, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties) =0;
+ /**
+ * updates data of an source. @return E_OK on success, E_NON_EXISTENT if the
+ * sourceID in the struct is not valid.
+ * Please note that only the following data out of am_Source_s have effect when
+ * they are changed:
+ * sourceClassID,
+ * listSoundProperties,
+ * listConnectionFormats,
+ * listMainSoundProperties
+ */
virtual am_Error_e updateSource(const am_sourceID_t sourceID, const am_sourceClass_t sourceClassID, const std::vector<am_SoundProperty_s>& listSoundProperties, const std::vector<am_CustomConnectionFormat_t>& listConnectionFormats, const std::vector<am_MainSoundProperty_s>& listMainSoundProperties) =0;
+ /**
+ * acknowledges a asyncSetSinkVolumes
+ */
virtual void ackSetVolumes(const am_Handle_s handle, const std::vector<am_Volumes_s>& listvolumes, const am_Error_e error) =0;
+ /**
+ * The acknowledge of the SinkNotificationConfiguration
+ */
virtual void ackSinkNotificationConfiguration(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * The acknowledge of the SourceNotificationConfiguration
+ */
virtual void ackSourceNotificationConfiguration(const am_Handle_s handle, const am_Error_e error) =0;
+ /**
+ * is called whenever a notified value needs to be send
+ */
virtual void hookSinkNotificationDataChange(const am_sinkID_t sinkID, const am_NotificationPayload_s& payload) =0;
+ /**
+ * is called whenever a notified value needs to be send
+ */
virtual void hookSourceNotificationDataChange(const am_sourceID_t sourceID, const am_NotificationPayload_s& payload) =0;
};
}
-#endif // !defined(EA_6ECD9991_3219_4bf4_B9F7_DDE15D8683C6__INCLUDED_)
+#endif // !defined(EA_C540B86A_9F4A_4ae5_A68A_8A0FD52A7149__INCLUDED_)
diff --git a/include/routing/IAmRoutingSend.h b/include/routing/IAmRoutingSend.h
index 697bc0f..d9aeb3c 100644..100755
--- a/include/routing/IAmRoutingSend.h
+++ b/include/routing/IAmRoutingSend.h
@@ -1,40 +1,39 @@
-/**
+/**
* Copyright (C) 2012 - 2014, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
+ *
+ * This file is part of GENIVI Project AudioManager.
+ *
+ * Contributions are licensed to the GENIVI Alliance under one or more
+ * Contribution License Agreements.
+ *
+ * \copyright
+ * This Source Code Form is subject to the terms of the
+ * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
+ * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ *
* \author Christian Linke, christian.linke@bmw.de BMW 2011 - 2014
- *
- * \file
+ *
+ * \file
* For further information see http://projects.genivi.org/audio-manager
- *
+ *
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL.
* PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN.
- */
-#if !defined(EA_3AD07676_42DA_4ba9_A6E8_DA06F23BC8EB__INCLUDED_)
-#define EA_3AD07676_42DA_4ba9_A6E8_DA06F23BC8EB__INCLUDED_
-
-#include <vector>
-#include <string>
-#include "audiomanagertypes.h"
-
-namespace am {
-class IAmRoutingReceive;
+ */
+#if !defined(EA_75F8849C_0F4B_4641_B0B9_01DE137E6938__INCLUDED_)
+#define EA_75F8849C_0F4B_4641_B0B9_01DE137E6938__INCLUDED_
+
+#include <vector>
+#include <string>
+#include "audiomanagertypes.h"
+namespace am {
+class IAmRoutingReceive;
}
#include "audiomanagertypes.h"
#include "IAmRoutingReceive.h"
-#define RoutingSendVersion "2.0"
+#define RoutingSendVersion "3.0"
namespace am {
/**
@@ -63,27 +62,123 @@ public:
}
+ /**
+ * This function returns the version of the interface
+ */
virtual void getInterfaceVersion(std::string& version) const =0;
+ /**
+ * starts up the interface. In the implementations, here is the best place for
+ * init routines.
+ */
virtual am_Error_e startupInterface(IAmRoutingReceive* routingreceiveinterface) =0;
+ /**
+ * indicates that the routing now ready to be used. Should be used as trigger to
+ * register all sinks, sources, etc...
+ */
virtual void setRoutingReady(const uint16_t handle) =0;
+ /**
+ * indicates that the routing plugins need to be prepared to switch the power off
+ * or be ready again.
+ */
virtual void setRoutingRundown(const uint16_t handle) =0;
+ /**
+ * aborts an asynchronous action.
+ * @return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if handle was not
+ * found
+ */
virtual am_Error_e asyncAbort(const am_Handle_s handle) =0;
+ /**
+ * connects a source to a sink
+ * @return E_OK on success, E_UNKNOWN on error, E_WRONG_FORMAT in case
+ * am_ConnectionFormat_e does not match
+ */
virtual am_Error_e asyncConnect(const am_Handle_s handle, const am_connectionID_t connectionID, const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_CustomConnectionFormat_t connectionFormat) =0;
+ /**
+ * disconnect a connection with given connectionID
+ * @return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if connection was
+ * not found
+ */
virtual am_Error_e asyncDisconnect(const am_Handle_s handle, const am_connectionID_t connectionID) =0;
+ /**
+ * this method is used to set the volume of a sink. This function is used to drive
+ * ramps, to mute or unmute or directly set the value. The difference is made
+ * through the ramptype.
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if new volume is
+ * out of range
+ */
virtual am_Error_e asyncSetSinkVolume(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume, const am_CustomRampType_t ramp, const am_time_t time) =0;
+ /**
+ * sets the volume of a source. This method is used to set the volume of a sink.
+ * This function is used to drive ramps, to mute or unmute or directly set the
+ * value. The difference is made through the ramptype.
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of
+ * range.
+ * triggers the acknowledge ackSourceVolumeChange
+ */
virtual am_Error_e asyncSetSourceVolume(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume, const am_CustomRampType_t ramp, const am_time_t time) =0;
+ /**
+ * This function is used to set the source state of a particular source.
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e asyncSetSourceState(const am_Handle_s handle, const am_sourceID_t sourceID, const am_SourceState_e state) =0;
+ /**
+ * this function sets the sinksoundproperty.
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery
+ * value is out of range
+ */
virtual am_Error_e asyncSetSinkSoundProperties(const am_Handle_s handle, const am_sinkID_t sinkID, const std::vector<am_SoundProperty_s>& listSoundProperties) =0;
+ /**
+ * this function sets the sinksoundproperty.
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery
+ * value is out of range
+ */
virtual am_Error_e asyncSetSinkSoundProperty(const am_Handle_s handle, const am_sinkID_t sinkID, const am_SoundProperty_s& soundProperty) =0;
+ /**
+ * this function sets the sourcesoundproperty.
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery
+ * value is out of range
+ */
virtual am_Error_e asyncSetSourceSoundProperties(const am_Handle_s handle, const am_sourceID_t sourceID, const std::vector<am_SoundProperty_s>& listSoundProperties) =0;
+ /**
+ * this function sets the sourcesoundproperty.
+ * @return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery
+ * value is out of range
+ */
virtual am_Error_e asyncSetSourceSoundProperty(const am_Handle_s handle, const am_sourceID_t sourceID, const am_SoundProperty_s& soundProperty) =0;
+ /**
+ * this function triggers crossfading.
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e asyncCrossFade(const am_Handle_s handle, const am_crossfaderID_t crossfaderID, const am_HotSink_e hotSink, const am_CustomRampType_t rampType, const am_time_t time) =0;
+ /**
+ * this function is used for early and late audio functions to set the domain
+ * state
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e setDomainState(const am_domainID_t domainID, const am_DomainState_e domainState) =0;
+ /**
+ * this method is used to retrieve the busname during startup of the plugin. Needs
+ * to be implemented
+ * @return E_OK on success, E_UNKNOWN on error
+ */
virtual am_Error_e returnBusName(std::string& BusName) const =0;
+ /**
+ * This command sets multiple source or and sink volumes within a domain at a time.
+ * It can be used to synchronize volume setting events.
+ * @return E_OK on success, E_UNKNOWN on error.
+ */
virtual am_Error_e asyncSetVolumes(const am_Handle_s handle, const std::vector<am_Volumes_s>& listVolumes) =0;
+ /**
+ * sets the notification configuration of a sink.
+ * @return E_OK on success, E_UNKNOWN on error.
+ */
virtual am_Error_e asyncSetSinkNotificationConfiguration(const am_Handle_s handle, const am_sinkID_t sinkID, const am_NotificationConfiguration_s& notificationConfiguration) =0;
+ /**
+ * sets the notification configuration of a source.
+ * @return E_OK on success, E_UNKNOWN on error.
+ */
virtual am_Error_e asyncSetSourceNotificationConfiguration(const am_Handle_s handle, const am_sourceID_t sourceID, const am_NotificationConfiguration_s& notificationConfiguration) =0;
};
}
-#endif // !defined(EA_3AD07676_42DA_4ba9_A6E8_DA06F23BC8EB__INCLUDED_)
+#endif // !defined(EA_75F8849C_0F4B_4641_B0B9_01DE137E6938__INCLUDED_)