diff options
Diffstat (limited to 'include/audiomanagertypes.h')
-rw-r--r-- | include/audiomanagertypes.h | 596 |
1 files changed, 346 insertions, 250 deletions
diff --git a/include/audiomanagertypes.h b/include/audiomanagertypes.h index 54760b4..8e4bf41 100644 --- a/include/audiomanagertypes.h +++ b/include/audiomanagertypes.h @@ -12,15 +12,15 @@ * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
*
- * \author Christian Mueller, christian.ei.mueller@bmw.de BMW 2011,2012
+ * \author Christian Mueller, christian.linke@bmw.de BMW 2011,2012
*
* \file
* For further information see http://www.genivi.org/.
*
* THIS CODE HAS BEEN GENERATED BY ENTERPRISE ARCHITECT GENIVI MODEL. PLEASE CHANGE ONLY IN ENTERPRISE ARCHITECT AND GENERATE AGAIN
*/
-#if !defined(EA_F9B4F59D_FED5_44ac_85F2_F9F60549C133__INCLUDED_)
-#define EA_F9B4F59D_FED5_44ac_85F2_F9F60549C133__INCLUDED_
+#if !defined(EA_4739DD27_2A1B_4548_8F5F_7D50DB15209C__INCLUDED_)
+#define EA_4739DD27_2A1B_4548_8F5F_7D50DB15209C__INCLUDED_
#include <stdint.h>
#include "projecttypes.h"
@@ -29,112 +29,137 @@ #define AM_MUTE -3000 +#include "projecttypes.h" + namespace am { /** * a domain ID * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_domainID_t; /** * a source ID * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_sourceID_t; /** * a sink ID * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_sinkID_t; /** * a gateway ID * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_gatewayID_t; /** * a crossfader ID * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_crossfaderID_t; /** * a connection ID * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_connectionID_t; /** * a mainConnection ID * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_mainConnectionID_t; /** * speed * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_speed_t; /** - * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and - * maximum can be limited by actual project. + * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and maximum can be limited by actual project. * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef int16_t am_volume_t; /** - * This is the volume presented on the command interface. It is in the duty of the - * Controller to change the volumes given here into meaningful values on the - * routing interface. + * This is the volume presented on the command interface. It is in the duty of the Controller to change the volumes given + * here into meaningful values on the routing interface. * The range of this type is customer specific. * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef int16_t am_mainVolume_t; /** * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_sourceClass_t; /** * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_sinkClass_t; /** * time in ms! * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef uint16_t am_time_t; /** * offset time that is introduced in milli seconds. * @author Christian Mueller - * @created 07-Mar-2012 6:06:13 PM + * @created 16-Dez-2012 15:58:12 */ typedef int16_t am_timeSync_t; /** - * with the help of this enum, sinks and sources can report their availability - * state + * describes the active sink of a crossfader. * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 + */ + enum am_HotSink_e + { + /** + * default + */ + HS_UNKNOWN = 0, + /** + * sinkA is active + */ + HS_SINKA = 1, + /** + * sinkB is active + */ + HS_SINKB = 2, + /** + * the crossfader is in the transition state + */ + HS_INTERMEDIATE = 3, + HS_MAX + }; + + /** + * with the help of this enum, sinks and sources can report their availability state + * @author Christian Mueller + * @created 16-Dez-2012 15:58:12 */ enum am_Availablility_e { @@ -156,7 +181,7 @@ namespace am { /** * represents the connection state * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ enum am_ConnectionState_e { @@ -174,8 +199,7 @@ namespace am { */ CS_DISCONNECTING = 3, /** - * only relevant for connectionStatechanged. Is send after the connection was - * removed + * only relevant for connectionStatechanged. Is send after the connection was removed */ CS_DISCONNECTED = 4, /** @@ -187,7 +211,7 @@ namespace am { /** * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ enum am_DomainState_e { @@ -213,7 +237,7 @@ namespace am { /** * This enum characterizes the data of the EarlyData_t * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ enum am_EarlyDataType_e { @@ -241,10 +265,9 @@ namespace am { }; /** - * the errors of the audiomanager. All possible errors are in here. This enum is - * used widely as return parameter. + * the errors of the audiomanager. All possible errors are in here. This enum is used widely as return parameter. * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ enum am_Error_e { @@ -289,9 +312,8 @@ namespace am { */ E_ABORTED = 9, /** - * This error is returned in case a connect is issued with a connectionFormat that - * cannot be selected for the connection. This could be either due to the - * capabilities of a source or a sink or gateway compatibilities for example + * This error is returned in case a connect is issued with a connectionFormat that cannot be selected for the connection. + * This could be either due to the capabilities of a source or a sink or gateway compatibilities for example */ E_WRONG_FORMAT = 10, E_MAX @@ -299,7 +321,7 @@ namespace am { /** * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ enum am_MuteState_e { @@ -321,7 +343,7 @@ namespace am { /** * The source state reflects the state of the source * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ enum am_SourceState_e { @@ -335,18 +357,16 @@ namespace am { */ SS_OFF = 2, /** - * The source is paused. Meaning it cannot be heared but should be prepared to - * play again soon. + * The source is paused. Meaning it cannot be heared but should be prepared to play again soon. */ SS_PAUSED = 3, SS_MAX }; /** - * This enumeration is used to define the type of the action that is correlated to - * a handle. + * This enumeration is used to define the type of the action that is correlated to a handle. * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ enum am_Handle_e { @@ -361,12 +381,15 @@ namespace am { H_SETSINKSOUNDPROPERTIES = 8, H_SETSOURCESOUNDPROPERTIES = 9, H_CROSSFADE = 10, + H_SETVOLUMES = 11, + H_SETSINKNOTIFICATION = 12, + H_SETSOURCENOTIFICATION = 13, H_MAX }; /** * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ enum am_InterruptState_e { @@ -386,36 +409,60 @@ namespace am { }; /** - * describes the active sink of a crossfader. - * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * This datatype determines if a sourceID or a sinkID is used in the union following + * @author q232968 + * @version 1.0 + * @created 16-Dez-2012 15:58:12 */ - enum am_HotSink_e + enum am_VolumeType_e { + VT_UNKNOWN = 0, /** - * default + * the following type is a sink */ - HS_UNKNOWN = 0, + VT_SINK = 1, /** - * sinkA is active + * the following type is a source */ - HS_SINKA = 1, + VT_SOURCE = 2, + VT_MAX + }; + + /** + * @author q232968 + * @version 1.0 + * @created 16-Dez-2012 15:58:12 + */ + enum am_NotificationStatus_e + { + NS_UNKNOWN = 0, /** - * sinkB is active + * No notification, the function is turned off */ - HS_SINKB = 2, + NS_OFF = 1, /** - * the crossfader is in the transition state + * Periodic notifications are sent out. The period in ms is given by am_NotificationParameter */ - HS_INTERMEDIATE = 3, - HS_MAX + NS_PERIODIC = 2, + /** + * The notification is sent out when the minimum given by am_NotificationParameter is reached. + */ + NS_MINIMUM = 3, + /** + * The notification is sent out when the maximum given by am_NotificationParameter is reached. + */ + NS_MAXIMUM = 4, + /** + * The notification is sent out whena change happend. The Resolution of the change is defined by am_NotificationParameter. + */ + NS_CHANGE = 5, + NS_MAX }; /** - * this describes the availability of a sink or a source together with the latest - * change + * this describes the availability of a sink or a source together with the latest change * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ struct am_Availability_s { @@ -426,8 +473,7 @@ namespace am { */ am_Availablility_e availability; /** - * the reason for the last change. This can be used to trigger events that deal - * with state changes. + * the reason for the last change. This can be used to trigger events that deal with state changes. */ am_AvailabilityReason_e availabilityReason; @@ -436,7 +482,7 @@ namespace am { /** * describes class properties * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ struct am_ClassProperty_s { @@ -456,17 +502,16 @@ namespace am { /** * This struct describes the attribiutes of a crossfader. * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ struct am_Crossfader_s { public: /** - * This is the ID of the crossfader, it is unique in the system. There are 2 ways, - * ID can be created: either it is assigned during the registration process (in a - * dynamic context, uniqueness will be ensured by the AudioManager daemon), or it - * is a fixed (the project has to ensure the uniqueness of the ID). + * This is the ID of the crossfader, it is unique in the system. There are 2 ways, ID can be created: either it is + * assigned during the registration process (in a dynamic context, uniqueness will be ensured by the AudioManager daemon), + * or it is a fixed (the project has to ensure the uniqueness of the ID). */ am_crossfaderID_t crossfaderID; /** @@ -474,18 +519,15 @@ namespace am { */ std::string name; /** - * The sinkID of the SinkA. Sinks shall be registered before registering the - * crossfader. + * The sinkID of the SinkA. Sinks shall be registered before registering the crossfader. */ am_sinkID_t sinkID_A; /** - * The sinkID of the SinkB. Sinks shall be registered before registering the - * crossfader. + * The sinkID of the SinkB. Sinks shall be registered before registering the crossfader. */ am_sinkID_t sinkID_B; /** - * The sourceID of the crossfader source. The source shall be registered before - * the crossfader. + * The sourceID of the crossfader source. The source shall be registered before the crossfader. */ am_sourceID_t sourceID; /** @@ -493,9 +535,8 @@ namespace am { * * HS_SINKA sinkA is the current hot one, sinkB is not audible * HS_SINKB sinkB is the current hot one, sinkB is not audible - * HS_INTERMEDIATE the fader is stuck in between a cross-fading action. This - * could be due to an abort or an error. Before using the crossfader, it must be - * set to either HS_SINKA or HS_SINKB. + * HS_INTERMEDIATE the fader is stuck in between a cross-fading action. This could be due to an abort or an error. + * Before using the crossfader, it must be set to either HS_SINKA or HS_SINKB. */ am_HotSink_e hotSink; @@ -504,17 +545,16 @@ namespace am { /** * This struct describes the attributes of a gateway. * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:12 */ struct am_Gateway_s { public: /** - * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID - * can be created: either it is assigned during the registration process (in a - * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it - * is a fixed (the project has to ensure the uniqueness of the ID). + * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID can be created: either it is assigned + * during the registration process (in a dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it is + * a fixed (the project has to ensure the uniqueness of the ID). */ am_gatewayID_t gatewayID; /** @@ -522,35 +562,29 @@ namespace am { */ std::string name; /** - * The sinkID of the gateway sink-end. The sink is a full blown sink with - * connectionFormats, sinkClassIDs etc... It makes sense to register the sinks of - * a gateway as non-visible. Care needs to be taken that the connectionsFormats - * match with the ones in the conversionMatrix. If the sink is located in the - * controllingDomain, the ID needs to be retrieved by registering the sink before - * registering the gateway. In case the sink is in a different domain, the ID - * needs to be retrieved via peeking. + * The sinkID of the gateway sink-end. The sink is a full blown sink with connectionFormats, sinkClassIDs etc... It makes + * sense to register the sinks of a gateway as non-visible. Care needs to be taken that the connectionsFormats match with + * the ones in the conversionMatrix. If the sink is located in the controllingDomain, the ID needs to be retrieved by + * registering the sink before registering the gateway. In case the sink is in a different domain, the ID needs to be + * retrieved via peeking. */ am_sinkID_t sinkID; /** - * The sourceID of the gateway sink-end. The sink is a full blown source with - * connectionFormats, sinkClassIDs etc... It makes sense to register the sources - * of a gateway as non-visible. Care needs to be taken that the connectionsFormats - * match with the ones in the conversionMatrix. If the source is located in the - * controllingDomain, the ID needs to be retrieved by registering the source - * before registering the gateway. In case the source is in a different domain, - * the ID needs to be retrieved via peeking. + * The sourceID of the gateway sink-end. The sink is a full blown source with connectionFormats, sinkClassIDs etc... It + * makes sense to register the sources of a gateway as non-visible. Care needs to be taken that the connectionsFormats + * match with the ones in the conversionMatrix. If the source is located in the controllingDomain, the ID needs to be + * retrieved by registering the source before registering the gateway. In case the source is in a different domain, the ID + * needs to be retrieved via peeking. */ am_sourceID_t sourceID; /** - * The ID of the sink. If the domain is the same like the controlling domain, the - * ID is known due to registration. If the domain is different, the ID needs to be - * retrieved via peeking. + * The ID of the sink. If the domain is the same like the controlling domain, the ID is known due to registration. If the + * domain is different, the ID needs to be retrieved via peeking. */ am_domainID_t domainSinkID; /** - * The ID of the source. If the domain is the same like the controlling domain, - * the ID is known due to registration. If the domain is different, the ID needs - * to be retrieved via peeking. + * The ID of the source. If the domain is the same like the controlling domain, the ID is known due to registration. If + * the domain is different, the ID needs to be retrieved via peeking. */ am_domainID_t domainSourceID; /** @@ -558,28 +592,23 @@ namespace am { */ am_domainID_t controlDomainID; /** - * This is the list of available formats on the source side of the gateway. It is - * not defined during the gateway registration but copied from the source - * registration. + * This is the list of available formats on the source side of the gateway. It is not defined during the gateway + * registration but copied from the source registration. */ std::vector<am_ConnectionFormat_e> listSourceFormats; /** - * This is the list of available formats on the sink side of the gateway. It is - * not defined during the gateway registration but copied from the sink - * registration. + * This is the list of available formats on the sink side of the gateway. It is not defined during the gateway + * registration but copied from the sink registration. */ std::vector<am_ConnectionFormat_e> listSinkFormats; /** - * This is matrix holding information about the conversion capability of the - * gateway, it's length is defined by the length(listSinkFormats) x - * length(listSourceFormats). - * If a SinkFormat can be converted into a SourceFormat, the vector will hold a 1, - * if no conversion is possible, a 0. - * The data is stored row orientated, where the rows are related to the - * sinksFormats and the columns to the sourceFormats. The first value will hold - * the conversion information from the first sourceFormat to the first sinkFormat - * for example and the seventh value the information about the 3rd sinkFormat to - * the 1st sourceFormat in case we would have 3 sourceFormats. + * This is matrix holding information about the conversion capability of the gateway, it's length is defined by the + * length(listSinkFormats) x length(listSourceFormats). + * If a SinkFormat can be converted into a SourceFormat, the vector will hold a 1, if no conversion is possible, a 0. + * The data is stored row orientated, where the rows are related to the sinksFormats and the columns to the sourceFormats. + * The first value will hold the conversion information from the first sourceFormat to the first sinkFormat for example + * and the seventh value the information about the 3rd sinkFormat to the 1st sourceFormat in case we would have 3 + * sourceFormats. * * This matrix * 110 011 000 111 001 @@ -601,7 +630,7 @@ namespace am { /** * This represents one "hopp" in a route * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:13 */ struct am_RoutingElement_s { @@ -629,7 +658,7 @@ namespace am { /** * a list of routing elements that lead from source to sink * @author Christian Mueller - * @created 07-Mar-2012 6:06:14 PM + * @created 16-Dez-2012 15:58:13 */ struct am_Route_s { @@ -653,7 +682,7 @@ namespace am { /** * struct describing the sound property * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_SoundProperty_s { @@ -673,7 +702,7 @@ namespace am { /** * struct describing system properties * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_SystemProperty_s { @@ -693,7 +722,7 @@ namespace am { /** * struct describing sinkclasses * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_SinkClass_s { @@ -708,8 +737,8 @@ namespace am { */ std::string name; /** - * the list of the class properties. These are pairs of a project specific enum - * describing the type of the value and an integer holding the real value. + * the list of the class properties. These are pairs of a project specific enum describing the type of the value and an + * integer holding the real value. */ std::vector<am_ClassProperty_s> listClassProperties; @@ -718,7 +747,7 @@ namespace am { /** * struct describing source classes * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_SourceClass_s { @@ -733,8 +762,8 @@ namespace am { */ std::string name; /** - * the list of the class properties. These are pairs of a project specific enum - * describing the type of the value and an integer holding the real value. + * the list of the class properties. These are pairs of a project specific enum describing the type of the value and an + * integer holding the real value. */ std::vector<am_ClassProperty_s> listClassProperties; @@ -743,17 +772,16 @@ namespace am { /** * this type holds all information of sources relevant to the HMI * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_SourceType_s { public: /** - * This is the ID of the source, it is unique in the system. There are 2 ways, ID - * can be created: either it is assigned during the registration process (in a - * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it - * is a fixed (the project has to ensure the uniqueness of the ID). + * This is the ID of the source, it is unique in the system. There are 2 ways, ID can be created: either it is assigned + * during the registration process (in a dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it is + * a fixed (the project has to ensure the uniqueness of the ID). */ am_sourceID_t sourceID; /** @@ -765,9 +793,8 @@ namespace am { */ am_Availability_s availability; /** - * the sourceClassID, indicates the class the source is in. This information can - * be used by the Controller to implement different behaviour for different - * classes. + * the sourceClassID, indicates the class the source is in. This information can be used by the Controller to implement + * different behaviour for different classes. */ am_sourceClass_t sourceClassID; @@ -776,17 +803,16 @@ namespace am { /** * this type holds all information of sinks relevant to the HMI * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_SinkType_s { public: /** - * This is the ID of the sink, it is unique in the system. There are 2 ways, ID - * can be created: either it is assigned during the registration process (in a - * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it - * is a fixed (the project has to ensure the uniqueness of the ID). + * This is the ID of the sink, it is unique in the system. There are 2 ways, ID can be created: either it is assigned + * during the registration process (in a dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it is + * a fixed (the project has to ensure the uniqueness of the ID). */ am_sinkID_t sinkID; /** @@ -794,37 +820,33 @@ namespace am { */ std::string name; /** - * This attribute reflects the availability of the sink. There are several reasons - * why a sink could be not available for the moment: for example the shutdown of a - * sink because of overtemperature or over- & undervoltage. The availability + * This attribute reflects the availability of the sink. There are several reasons why a sink could be not available for + * the moment: for example the shutdown of a sink because of overtemperature or over- & undervoltage. The availability * consists of two pieces of information: * - * Availablility: the status itself, can be A_AVAILABLE, A_UNAVAILABLE or - * A_UNKNOWN - * AvailabilityReason: this informs about the last reason for a change in - * availability. The reasons itself are product specific. + * Availablility: the status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN + * AvailabilityReason: this informs about the last reason for a change in availability. The reasons itself are product + * specific. */ am_Availability_s availability; /** - * This is the representation of the Volume for the commandInterface. It is used - * by the HMI to set the volume of a sink, the AudioManagerController has to - * transform this into real source and sink volumes. + * This is the representation of the Volume for the commandInterface. It is used by the HMI to set the volume of a sink, + * the AudioManagerController has to transform this into real source and sink volumes. */ am_mainVolume_t volume; am_MuteState_e muteState; /** - * The sinkClassID references to a sinkClass. With the help of classification, - * rules can be setup to define the system behaviour. + * The sinkClassID references to a sinkClass. With the help of classification, rules can be setup to define the system + * behaviour. */ am_sinkClass_t sinkClassID; }; /** - * a handle is used for asynchronous operations and is uniquely assigned for each - * of this operations + * a handle is used for asynchronous operations and is uniquely assigned for each of this operations * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_Handle_s { @@ -833,18 +855,18 @@ namespace am { /** * the handletype */ - am_Handle_e handleType:4; + am_Handle_e handleType:6; /** * the handle as value */ - uint16_t handle:12; + uint16_t handle:10; }; /** * struct describung mainsound property * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_MainSoundProperty_s { @@ -864,7 +886,7 @@ namespace am { /** * this type holds all information of connections relevant to the HMI * @author Christian Mueller - * @created 07-Mar-2012 6:06:15 PM + * @created 16-Dez-2012 15:58:13 */ struct am_MainConnectionType_s { @@ -896,7 +918,7 @@ namespace am { /** * struct that holds attribiutes of a mainconnection * @author Christian Mueller - * @created 07-Mar-2012 6:06:16 PM + * @created 16-Dez-2012 15:58:13 */ struct am_MainConnection_s { @@ -930,19 +952,69 @@ namespace am { }; /** + * This struct holds the payload of a notification. + * @author q232968 + * @version 1.0 + * @created 16-Dez-2012 15:58:13 + */ + struct am_NotificationPayload_s + { + + public: + /** + * This defines the notification type + */ + am_NotificationType_e notificationType; + /** + * This is finally the value of the notification. It's meaning depends on the notificationType + */ + int16_t notificationValue; + + }; + + /** + * This struct holds information about the configuration for notifications + * @author q232968 + * @version 1.0 + * @created 16-Dez-2012 15:58:13 + */ + struct am_NotificationConfiguration_s + { + + public: + /** + * The notification type of the notification + */ + am_NotificationType_e notificationType; + /** + * The Notification status. This can be periodic, min/max value based or even off for example + */ + am_NotificationStatus_e notificationStatus; + /** + * This gives additional information to the notification status. + * Relation between notification status and the value: + * NS_PERIODIC - the period in ms + * NS_MINIMUM - the minimum value that triggers the notification + * NS_MAXIMUM - the maximum value that triggers the notifcation + * NS_CHANGE - the resolution of the change value + */ + int16_t notificationParameter; + + }; + + /** * This struct describes the attribiutes of a sink * @author Christian Mueller - * @created 07-Mar-2012 6:06:16 PM + * @created 16-Dez-2012 15:58:13 */ struct am_Sink_s { public: /** - * This is the ID of the sink, it is unique in the system. There are 2 ways, ID - * can be created: either it is assigned during the registration process (in a - * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it - * is a fixed (the project has to ensure the uniqueness of the ID). + * This is the ID of the sink, it is unique in the system. There are 2 ways, ID can be created: either it is assigned + * during the registration process (in a dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it is + * a fixed (the project has to ensure the uniqueness of the ID). */ am_sinkID_t sinkID; /** @@ -950,13 +1022,12 @@ namespace am { */ std::string name; /** - * The domainID is the domain the sink belongs to. A sink can only be in one - * domain. + * The domainID is the domain the sink belongs to. A sink can only be in one domain. */ am_domainID_t domainID; /** - * The sinkClassID references to a sinkClass. With the help of classification, - * rules can be setup to define the system behaviour. + * The sinkClassID references to a sinkClass. With the help of classification, rules can be setup to define the system + * behaviour. */ am_sinkClass_t sinkClassID; /** @@ -964,77 +1035,74 @@ namespace am { */ am_volume_t volume; /** - * This Boolean flag indicates whether a sink is visible to the commandInterface - * or not. If the User must have the possibility to choose the source in the HMI, - * it must be visible. But there are also good reasons for invisible sinks, for - * example if the sink is part of a crossfader or gateway. HMI relevant changes in - * visible sinks will be automatically reported by the daemon to the - * commandInterface. + * This Boolean flag indicates whether a sink is visible to the commandInterface or not. If the User must have the + * possibility to choose the source in the HMI, it must be visible. But there are also good reasons for invisible sinks, + * for example if the sink is part of a crossfader or gateway. HMI relevant changes in visible sinks will be automatically + * reported by the daemon to the commandInterface. */ bool visible; /** - * This attribute reflects the availability of the sink. There are several reasons - * why a sink could be not available for the moment: for example the shutdown of a - * sink because of overtemperature or over- & undervoltage. The availability + * This attribute reflects the availability of the sink. There are several reasons why a sink could be not available for + * the moment: for example the shutdown of a sink because of overtemperature or over- & undervoltage. The availability * consists of two pieces of information: * - * Availablility: the status itself, can be A_AVAILABLE, A_UNAVAILABLE or - * A_UNKNOWN - * AvailabilityReason: this informs about the last reason for a change in - * availability. The reasons itself are product specific. + * Availablility: the status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN + * AvailabilityReason: this informs about the last reason for a change in availability. The reasons itself are product + * specific. */ am_Availability_s available; /** - * This attribute reflects the muteState of the sink. The information is not the - * "real" state of the sink, but the HMI representation for he commandInterface - * controlled by the AudioManagerController. + * This attribute reflects the muteState of the sink. The information is not the "real" state of the sink, but the HMI + * representation for he commandInterface controlled by the AudioManagerController. */ am_MuteState_e muteState; /** - * This is the representation of the Volume for the commandInterface. It is used - * by the HMI to set the volume of a sink, the AudioManagerController has to - * transform this into real source and sink volumes. + * This is the representation of the Volume for the commandInterface. It is used by the HMI to set the volume of a sink, + * the AudioManagerController has to transform this into real source and sink volumes. */ am_mainVolume_t mainVolume; /** - * This is the list of soundProperties, that the sink is capable of. The - * soundProperties itself are project specific. For sinks, a possible - * soundProperty could be for example settings. + * This is the list of soundProperties, that the sink is capable of. The soundProperties itself are project specific. For + * sinks, a possible soundProperty could be for example settings. */ std::vector<am_SoundProperty_s> listSoundProperties; /** - * This list holds information about the formats that the Source is capable of - * supporting when delivering audio. + * This list holds information about the formats that the Source is capable of supporting when delivering audio. */ std::vector<am_ConnectionFormat_e> listConnectionFormats; /** - * This is the list of the available mainSoundProperties. The principle is the - * same than with soundProperties, but they are only visible to the - * CommandInterface. + * This is the list of the available mainSoundProperties. The principle is the same than with soundProperties, but they + * are only visible to the CommandInterface. */ std::vector<am_MainSoundProperty_s> listMainSoundProperties; + /** + * This is the list of the MainNotificationConfigurations. These notifications work on the level of command interface. + */ + std::vector<am_NotificationConfiguration_s> listMainNotificationConfigurations; + /** + * This is the list of the NotificationConfigurations. These notifications work on the level of RoutingPlugins. + */ + std::vector<am_NotificationConfiguration_s> listNotificationConfigurations; }; /** * This struct describes the attribiutes of a source * @author Christian Mueller - * @created 07-Mar-2012 6:06:16 PM + * @created 16-Dez-2012 15:58:14 */ struct am_Source_s { public: /** - * This is the ID of the source, it is unique in the system. There are 2 ways, ID - * can be created: either it is assigned during the registration process (in a - * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it - * is a fixed (the project has to ensure the uniqueness of the ID). + * This is the ID of the source, it is unique in the system. There are 2 ways, ID can be created: either it is assigned + * during the registration process (in a dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it is + * a fixed (the project has to ensure the uniqueness of the ID). */ am_sourceID_t sourceID; /** - * The domainID is the domain the source belongs to. A source can only be in one - * domain. + * The domainID is the domain the source belongs to. A source can only be in one domain. */ am_domainID_t domainID; /** @@ -1042,17 +1110,15 @@ namespace am { */ std::string name; /** - * the sourceClassID, indicates the class the source is in. This information can - * be used by the Controller to implement different behaviour for different - * classes. + * the sourceClassID, indicates the class the source is in. This information can be used by the Controller to implement + * different behaviour for different classes. */ am_sourceClass_t sourceClassID; /** - * The source state is an indication towards the source if it is actively heard or - * not. The source can use this information to implement features like automatic - * spin down of CD's in case the CD is not the active source or AF following of a - * tuner that is not actively heard. The source state is set by the - * AudioManagerController.There are 3 possible states: + * The source state is an indication towards the source if it is actively heard or not. The source can use this + * information to implement features like automatic spin down of CD's in case the CD is not the active source or AF + * following of a tuner that is not actively heard. The source state is set by the AudioManagerController.There are 3 + * possible states: * * SS_ON: the source is active * SS_OFF: the source is off @@ -1060,38 +1126,31 @@ namespace am { */ am_SourceState_e sourceState; /** - * This is the volume of the source. It is set by the AudioManagerController. It - * is used to adopt different audiolevels in a system and mixing of sources (e.g. - * navigation hints & music). + * This is the volume of the source. It is set by the AudioManagerController. It is used to adopt different audiolevels in + * a system and mixing of sources (e.g. navigation hints & music). */ am_volume_t volume; /** - * This Boolean flag indicates whether a source is visible to the commandInterface - * or not. If the User must have the possibility to choose the source in the HMI, - * it must be visible. But there are also good reasons for invisible sources, for - * example if the source is part of a crossfader or gateway. HMI relevant changes - * in visible sources will be automatically reported by the daemon to the - * commandInterface. + * This Boolean flag indicates whether a source is visible to the commandInterface or not. If the User must have the + * possibility to choose the source in the HMI, it must be visible. But there are also good reasons for invisible sources, + * for example if the source is part of a crossfader or gateway. HMI relevant changes in visible sources will be + * automatically reported by the daemon to the commandInterface. */ bool visible; /** - * This attribute reflects the availability of the source. There are several - * reasons why a source could be not available for the moment. For example a CD - * player which has no CD entered in the slot can be unavailable, or a USB player - * with no or unreadable stick attached. Other scenarios involve the shutdown of a - * source because of overtemperature or over- & undervoltage. The availability - * consists of two informations: + * This attribute reflects the availability of the source. There are several reasons why a source could be not available + * for the moment. For example a CD player which has no CD entered in the slot can be unavailable, or a USB player with no + * or unreadable stick attached. Other scenarios involve the shutdown of a source because of overtemperature or over- & + * undervoltage. The availability consists of two informations: * - * Availablility: the status itself, can be A_AVAILABLE, A_UNAVAILABLE or - * A_UNKNOWN - * AvailabilityReason: this informs about the last reason for a change in - * availability. The reasons itself are product specific. + * Availablility: the status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN + * AvailabilityReason: this informs about the last reason for a change in availability. The reasons itself are product + * specific. */ am_Availability_s available; /** - * Some special sources can have special behaviors, the are so called "Low Level - * Interrupts". Here the current status is documented. The information can be used - * by the AudioManagerController to react to the changes by for example lowering + * Some special sources can have special behaviors, the are so called "Low Level Interrupts". Here the current status is + * documented. The information can be used by the AudioManagerController to react to the changes by for example lowering * the volume of the mainSources. The two states are * * IS_OFF: the interrupt is not active at the moment @@ -1099,29 +1158,34 @@ namespace am { */ am_InterruptState_e interruptState; /** - * This is the list of soundProperties, that the source is capable of. The - * soundProperties itself are project specific. For sources, a possible - * soundProperty could be navigation volume offset, for example. + * This is the list of soundProperties, that the source is capable of. The soundProperties itself are project specific. + * For sources, a possible soundProperty could be navigation volume offset, for example. */ std::vector<am_SoundProperty_s> listSoundProperties; /** - * This list holds information about the formats that the Source is capable of - * supporting when delivering audio. + * This list holds information about the formats that the Source is capable of supporting when delivering audio. */ std::vector<am_ConnectionFormat_e> listConnectionFormats; /** - * This is the list of the available mainSoundProperties. The principle is the - * same than with soundProperties, but they are only visible to the - * CommandInterface. + * This is the list of the available mainSoundProperties. The principle is the same than with soundProperties, but they + * are only visible to the CommandInterface. */ std::vector<am_MainSoundProperty_s> listMainSoundProperties; + /** + * The list of MainNotificationConfigurations. These notifications work on the level of CommandInterface. + */ + std::vector<am_NotificationConfiguration_s> listMainNotificationConfigurations; + /** + * The list of MainNotificationConfigurations. These notifications work on the level of RoutingInterface. + */ + std::vector<am_NotificationConfiguration_s> listNotificationConfigurations; }; /** * This struct describes the attribiutes of a domain * @author Christian Mueller - * @created 07-Mar-2012 6:06:16 PM + * @created 16-Dez-2012 15:58:14 */ struct am_Domain_s { @@ -1136,8 +1200,7 @@ namespace am { */ std::string name; /** - * the busname. This is equal to a plugin name and is used to dispatch messages to - * the elements of a plugin + * the busname. This is equal to a plugin name and is used to dispatch messages to the elements of a plugin */ std::string busname; /** @@ -1162,7 +1225,7 @@ namespace am { /** * a connection * @author Christian Mueller - * @created 07-Mar-2012 6:06:16 PM + * @created 16-Dez-2012 15:58:14 */ struct am_Connection_s { @@ -1196,7 +1259,7 @@ namespace am { * volume_t in case of ED_SOURCE_VOLUME, ED_SINK_VOLUME * soundProperty_t in case of ED_SOURCE_PROPERTY, ED_SINK_PROPERTY * @author Christian Mueller - * @created 07-Mar-2012 6:06:16 PM + * @created 16-Dez-2012 15:58:14 */ union am_EarlyData_u { @@ -1212,7 +1275,7 @@ namespace am { * sourceID in case of ED_SOURCE_VOLUME, ED_SOURCE_PROPERTY * sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY * @author Christian Mueller - * @created 07-Mar-2012 6:06:16 PM + * @created 16-Dez-2012 15:58:14 */ union am_DataType_u { @@ -1225,7 +1288,7 @@ namespace am { /** * @author Christian Mueller - * @created 07-Mar-2012 6:06:17 PM + * @created 16-Dez-2012 15:58:14 */ struct am_EarlyData_s { @@ -1236,5 +1299,38 @@ namespace am { am_EarlyData_u data; }; + + /** + * This types describe a mixed description for source and sinks volumes. + * @author q232968 + * @version 1.0 + * @created 16-Dez-2012 15:58:14 + */ + struct am_Volumes_s + { + + public: + /** + * describes the type of the volume: source or sink. + */ + am_VolumeType_e volumeType; + /** + * either sourceID or sinkID + */ + am_DataType_u volumeID; + /** + * The volume + */ + am_volume_t volume; + /** + * the ramp that shall be driven + */ + am_RampType_e ramp; + /** + * the time for the ramp + */ + am_time_t time; + + }; } -#endif // !defined(EA_F9B4F59D_FED5_44ac_85F2_F9F60549C133__INCLUDED_) +#endif // !defined(EA_4739DD27_2A1B_4548_8F5F_7D50DB15209C__INCLUDED_) |