1 package org.genivi.am
\r
2 import org.genivi.am.* from "../../AudioManagerDaemon/fidls/AudioManagerTypes.fidl"
\r
5 @description : This class implements everything from Audiomanager -> RoutingAdapter
6 @author : Christian Mueller
9 interface RoutingControl {
\r
16 @description : aborts an asynchronous action.
17 (at)return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if handle was not found
\r
26 @description : connects a source to a sink
27 (at)return E_OK on success, E_UNKNOWN on error, E_WRONG_FORMAT in case am_ConnectionFormat_e does not match
32 am_connectionID_t connectionID
33 am_sourceID_t sourceID
35 am_CConnectionFormat_t connectionFormat
40 @description : disconnect a connection with given connectionID
41 (at)return E_OK on success, E_UNKNOWN on error, E_NON_EXISTENT if connection was not found
\r
43 method asyncDisconnect {
46 am_connectionID_t connectionID
51 @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.
52 (at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if new volume is out of range
\r
54 method asyncSetSinkVolume {
65 @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.
66 (at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE if volume is out of range.
\r
67 triggers the acknowledge ackSourceVolumeChange
\r
69 method asyncSetSourceVolume {
72 am_sourceID_t sourceID
80 @description : This function is used to set the source state of a particular source.
81 (at)return E_OK on success, E_UNKNOWN on error
\r
83 method asyncSetSourceState {
86 am_sourceID_t sourceID
87 am_SourceState_e ^state
92 @description : this function sets the sinksoundproperty.
93 (at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range
\r
95 method asyncSetSinkSoundProperties {
99 am_SoundProperty_L listSoundProperties
104 @description : this function sets the sinksoundproperty.
105 (at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range
\r
107 method asyncSetSinkSoundProperty {
111 am_SoundProperty_s soundProperty
116 @description : this function sets the sourcesoundproperty.
117 (at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range
\r
119 method asyncSetSourceSoundProperties {
122 am_sourceID_t sourceID
123 am_SoundProperty_L listSoundProperties
128 @description : this function sets the sourcesoundproperty.
129 (at)return E_OK on success, E_UNKNOWN on error, E_OUT_OF_RANGE in case the propery value is out of range
\r
131 method asyncSetSourceSoundProperty {
134 am_sourceID_t sourceID
135 am_SoundProperty_s soundProperty
140 @description : this function triggers crossfading.
141 (at)return E_OK on success, E_UNKNOWN on error
\r
143 method asyncCrossFade {
146 am_crossfaderID_t crossfaderID
148 am_CRampType_t rampType
154 @description : this function is used for early and late audio functions to set the domain state
155 (at)return E_OK on success, E_UNKNOWN on error
\r
157 method setDomainState {
159 am_domainID_t domainID
160 am_DomainState_e domainState
166 method asyncSetVolumes {
172 method asyncSetSinkNotificationConfiguration {
176 am_NotificationConfiguration_s notificationConfiguration
179 method asyncSetSourceNotificationConfiguration {
182 am_sourceID_t sourceID
183 am_NotificationConfiguration_s notificationConfiguration
190 @description : Routing Receive sendInterface description.
191 @author : Christian Mueller
194 interface RoutingControlObserver {
\r
201 @description : This attribute signals to the clients the current routing state.
202 A client should notify himself to this attribute in order to know the current state and act accordingly.
\r
204 attribute am_RoutingReady_e RoutingReady readonly
207 @description : acknowledges a asyncConnect
212 am_connectionID_t connectionID
215 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
222 @description : acknowledges a asyncDisconnect
224 method ackDisconnect {
227 am_connectionID_t connectionID
230 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
237 @description : acknowledges a asyncsetSinkVolume
239 method ackSetSinkVolumeChange {
244 @description : The current actual value that is set
249 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
256 @description : acknowledges a asyncsetSourceVolume
258 method ackSetSourceVolumeChange {
262 @description : handle that belongs to the change
267 @description : the current volume
272 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
279 @description : acknowlegde for asyncSetSourceState
281 method ackSetSourceState {
286 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
293 @description : acknowledges asyncSetSinkSoundProperties
295 method ackSetSinkSoundProperties {
300 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
307 @description : acknowledges asyncSetSinkSoundProperty
309 method ackSetSinkSoundProperty {
314 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
321 @description : acknowledges asyncSetSourceSoundProperties
323 method ackSetSourceSoundProperties {
328 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
335 @description : acknowledges asyncSetSourceSoundProperty
337 method ackSetSourceSoundProperty {
342 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
349 @description : acknowledges asyncCrossFade
351 method ackCrossFading {
356 @description : this is the current hot sink, HS_INTERMEDIATE is here when a crossfading action did not reach the end
361 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
368 @description : acknowledges a volume tick. This can be used to display volumechanges during ramps
370 method ackSourceVolumeTick {
373 am_sourceID_t sourceID
379 @description : acknowledges a volume tick. This can be used to display volumechanges during ramps
381 method ackSinkVolumeTick {
390 @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.
391 (at)return E_OK on success, E_UNKNOWN on error
\r
398 am_domainID_t domainID
404 @description : registers a domain
405 (at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
\r
407 method registerDomain {
411 @description : domainID in am_Domain_s must be 0!
413 am_Domain_s domainData
415 String returnInterface
418 am_domainID_t domainID
424 @description : deregisters a domain. All sources, sinks, gateways and crossfaders from that domain will be removed as well.
425 (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
\r
427 method deregisterDomain {
431 @description : < the nonde of the bus
433 am_domainID_t domainID
441 @description : registers a gateway. (at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
443 method registerGateway {
447 @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.
451 am_Gateway_s gatewayData
454 am_gatewayID_t gatewayID
460 @description : deregisters a gateway. Also removes all sinks and sources of the controlling domain.
461 (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
\r
463 method deregisterGateway {
467 @description : domainID of the control domain
469 am_gatewayID_t gatewayID
477 @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.
478 (at)return E_OK on success, E_UNKNOWN on error
\r
484 @description : ID is not valid since not created yet
495 @description : Registers a sink. If the sink is part of a gateway, the listconnectionFormats is copied to the gatewayInformation
496 (at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
\r
498 method registerSink {
502 @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.
513 @description : deregisters a sink.
514 (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
\r
516 method deregisterSink {
526 @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.
527 (at)return E_OK on success, E_UNKNOWN on error
\r
534 am_sourceID_t sourceID
540 @description : registers a source. If the source is part of a gateway, the listconnectionFormats is copied to the gatewayInformation
541 (at)return E_OK on success, E_UNKNOWN on error, E_ALREADY_EXIST if either name or sourceID already exists
\r
543 method registerSource {
547 @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
549 am_Source_s sourceData
552 am_sourceID_t sourceID
558 @description : deregisters a source
559 (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
\r
561 method deregisterSource {
563 am_sourceID_t sourceID
571 @description : this function registers a crossfader.
572 (at)return E_OK on succes, E_ALREADY_EXISTENT if already registered E_UNKOWN on error
\r
574 method registerCrossfader {
578 @description : in a fixed setup, the crossfaderID must be below 100. In a dynamic setup the crossfasderID shall be 0
580 am_Crossfader_s crossfaderData
583 am_crossfaderID_t crossfaderID
589 @description : this function deregisters a crossfader. removes all sources and sinks assiated as well.
590 (at)return E_OK on succes, E_NON_EXISTENT if not found E_UNKOWN on error
\r
592 method deregisterCrossfader {
594 am_crossfaderID_t crossfaderID
602 @description : this function peeks a sourceclassID. It is used by the RoutingPlugins to determine the SinkClassIDs of a sinkClass.
603 (at)return E_OK on succes, E_DATABASE_ERROR on error
\r
605 method peekSourceClassID {
610 am_sourceClass_t sourceClassID
616 @description : this function peeks a sourceclassID. It is used by the RoutingPlugins to determine the SinkClassIDs of a sinkClass.
617 (at)return E_OK on succes, E_DATABASE_ERROR on error
\r
619 method peekSinkClassID {
624 am_sinkClass_t sinkClassID
630 @description : is called when a low level interrupt changes it status.
632 method hookInterruptStatusChange {
634 am_sourceID_t sourceID
635 am_InterruptState_e interruptState
640 @description : This hook is called when all elements from a domain are registered.
641 Is used by the Controller to know when all expected domains are finally registered
\r
643 method hookDomainRegistrationComplete {
645 am_domainID_t domainID
650 @description : is called when a sink changes its availability
652 method hookSinkAvailablityStatusChange {
655 am_Availability_s availability
660 @description : is called when a source changes its availability
662 method hookSourceAvailablityStatusChange {
664 am_sourceID_t sourceID
665 am_Availability_s availability
670 @description : is called when a domain changes its status. This used for early domains only
672 method hookDomainStateChange {
674 am_domainID_t domainID
675 am_DomainState_e domainState
680 @description : is called when the timinginformation (delay) changed for a connection.
682 method hookTimingInformationChanged {
684 am_connectionID_t connectionID
690 @description : this function is used to send out all data that has been changed in an early state.
691 (at)return E_OK on success, E_UNKNOWN on error
\r
693 method sendChangedData {
695 am_EarlyData_L earlyData
700 @description : updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the gatewayID is not valid.
702 method updateGateway {
706 @description : This is the new gateway data that has been updated. Please note that changing source and sink IDs,
709 am_gatewayID_t gatewayID
710 am_ConnectionFormat_L listSourceFormats
711 am_ConnectionFormat_L listSinkFormats
712 am_Convertion_L convertionMatrix
720 @description : updates data of an gateway. (at)return E_OK on success, E_NON_EXISTENT if the sinkID is not valid.
726 @description : The sinkID of the sink
729 am_sinkClass_t sinkClassID
730 am_SoundProperty_L listSoundProperties
731 am_ConnectionFormat_L listConnectionFormats
732 am_MainSoundProperty_L listMainSoundProperties
740 @description : updates data of an source. (at)return E_OK on success, E_NON_EXISTENT if the sourceID in the struct is not valid.
741 Please note that only the following data out of am_Source_s have effect when they are changed:
\r
743 listSoundProperties,
\r
744 listConnectionFormats,
\r
745 listMainSoundProperties
\r
747 method updateSource {
751 @description : the sourceID of the source
753 am_sourceID_t sourceID
754 am_sourceClass_t sourceClassID
755 am_SoundProperty_L listSoundProperties
756 am_ConnectionFormat_L listConnectionFormats
757 am_MainSoundProperty_L listMainSoundProperties
765 @description : acknowledges a asyncSetSinkVolumes
767 method ackSetVolumes {
772 @description : The list of volumes that have been set. ramp and time values have no meaning when the struct is used here.
774 am_Volumes_L listvolumes
777 @description : E_OK on success, E_ABORTED if action was aborted, E_UNKNOWN on error
784 @description : The acknowledge of the SinkNotificationConfiguration
786 method ackSinkNotificationConfiguration {
794 @description : The acknowledge of the SourceNotificationConfiguration
796 method ackSourceNotificationConfiguration {
804 @description : is called whenever a notified value needs to be send
806 method hookSinkNotificationDataChange {
810 @description : The sinkID of the sink where the data changed
815 @description : The payload
817 am_NotificationPayload_s payload
822 @description : is called whenever a notified value needs to be send
824 method hookSourceNotificationDataChange {
828 @description : The sinkID of the sink where the data changed
830 am_sourceID_t sourceID
833 @description : The payload
835 am_NotificationPayload_s payload
838 method confirmRoutingRundown {