summaryrefslogtreecommitdiff
path: root/include/audiomanagertypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/audiomanagertypes.h')
-rw-r--r--include/audiomanagertypes.h596
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_)