2 * This file was generated by the CommonAPI Generators.
3 * Used org.genivi.commonapi.core 2.1.5.201312121915.
4 * Used org.franca.core 0.8.11.201401091023.
6 * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
7 * If a copy of the MPL was not distributed with this file, You can obtain one at
8 * http://mozilla.org/MPL/2.0/.
11 * @author Christian Linke
13 #ifndef ORG_GENIVI_am_H_
14 #define ORG_GENIVI_am_H_
18 #if !defined (COMMONAPI_INTERNAL_COMPILATION)
19 #define COMMONAPI_INTERNAL_COMPILATION
22 #include <CommonAPI/InputStream.h>
23 #include <CommonAPI/OutputStream.h>
24 #include <CommonAPI/SerializableStruct.h>
25 #include <CommonAPI/SerializableVariant.h>
26 #include <CommonAPI/types.h>
32 #undef COMMONAPI_INTERNAL_COMPILATION
44 typedef uint16_t am_sourceID_t;
51 typedef uint16_t am_mainConnectionID_t;
53 * offset time that is introduced in milli seconds.
56 * offset time that is introduced in milli seconds.
58 typedef int16_t am_timeSync_t;
65 typedef uint16_t am_sinkID_t;
67 * represents the connection state
69 enum class am_ConnectionState_e: int32_t {
72 * This means the connection is just building up
76 * the connection is ready to be used
80 * the connection is in the course to be knocked down
84 * only relevant for connectionStatechanged. Is send after the connection was
89 * this means the connection is still build up but unused at the moment
95 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
96 struct am_ConnectionState_eComparator;
98 * this type holds all information of connections relevant to the HMI
101 * this type holds all information of connections relevant to the HMI
103 struct am_MainConnectionType_s: CommonAPI::SerializableStruct {
105 * the ID of the mainconnection
107 am_mainConnectionID_t mainConnectionID;
109 * the sourceID where the connection starts
111 am_sourceID_t sourceID;
113 * the sinkID where the connection ends
117 * the delay of the mainconnection
121 * the current connection state
123 am_ConnectionState_e connectionState;
125 am_MainConnectionType_s() = default;
126 am_MainConnectionType_s(const am_mainConnectionID_t& mainConnectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_timeSync_t& delay, const am_ConnectionState_e& connectionState);
129 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
130 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
132 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
133 typeOutputStream.writeUInt16Type();
134 typeOutputStream.writeUInt16Type();
135 typeOutputStream.writeUInt16Type();
136 typeOutputStream.writeInt16Type();
137 typeOutputStream.writeInt32Type();
140 typedef std::vector<am_MainConnectionType_s> am_MainConnection_L;
142 * product specific identifier of property
145 * product specific identifier of property
147 typedef uint16_t am_CustomClassProperty_t;
149 * describes class properties
152 * describes class properties
154 struct am_ClassProperty_s: CommonAPI::SerializableStruct {
156 * the property as enum
158 am_CustomClassProperty_t classProperty;
160 * the value of the property
164 am_ClassProperty_s() = default;
165 am_ClassProperty_s(const am_CustomClassProperty_t& classProperty, const int16_t& value);
168 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
169 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
171 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
172 typeOutputStream.writeUInt16Type();
173 typeOutputStream.writeInt16Type();
176 typedef std::vector<am_ClassProperty_s> am_ClassProperty_L;
177 typedef uint16_t am_sinkClass_t;
179 * struct describing sinkclasses
182 * struct describing sinkclasses
184 struct am_SinkClass_s: CommonAPI::SerializableStruct {
186 * the ID of the sinkClass
188 am_sinkClass_t sinkClassID;
190 * the name of the sinkClass - must be unique in the system
194 * the list of the class properties. These are pairs of a project specific enum
195 * describing the type of the value and an integer holding the real value.
197 am_ClassProperty_L listClassProperties;
199 am_SinkClass_s() = default;
200 am_SinkClass_s(const am_sinkClass_t& sinkClassID, const std::string& name, const am_ClassProperty_L& listClassProperties);
203 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
204 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
206 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
207 typeOutputStream.writeUInt16Type();
208 typeOutputStream.writeStringType();
209 typeOutputStream.beginWriteVectorType();
210 typeOutputStream.beginWriteStructType();
211 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
212 typeOutputStream.endWriteStructType();
213 typeOutputStream.endWriteVectorType();
216 typedef std::vector<am_SinkClass_s> am_SinkClass_L;
218 * This is the volume presented on the command interface. It is in the duty of the
219 * Controller to change the volumes given here into meaningful values on the
221 The range of this type is customer specific.
224 * This is the volume presented on the command interface. It is in the duty of the
225 * Controller to change the volumes given here into meaningful values on the
227 The range of this type is customer specific.
229 typedef int16_t am_mainVolume_t;
231 * This project specific value gives the information about reason for reason for
235 * This project specific value gives the information about reason for reason for
238 typedef uint16_t am_CustomAvailabilityReason_t;
240 * with the help of this enum, sinks and sources can report their availability
243 enum class am_Availability_e: int32_t {
249 * The source / sink is available
253 * the source / sink is not available
259 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
260 struct am_Availability_eComparator;
261 enum class am_MuteState_e: int32_t {
267 * the source / sink is muted
271 * the source / sink is unmuted
277 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
278 struct am_MuteState_eComparator;
280 * this describes the availability of a sink or a source together with the latest
284 * this describes the availability of a sink or a source together with the latest
287 struct am_Availability_s: CommonAPI::SerializableStruct {
289 * the current availability state
291 am_Availability_e availability;
293 * the reason for the last change. This can be used to trigger events that deal
294 * with state changes.
296 am_CustomAvailabilityReason_t availabilityReason;
298 am_Availability_s() = default;
299 am_Availability_s(const am_Availability_e& availability, const am_CustomAvailabilityReason_t& availabilityReason);
302 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
303 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
305 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
306 typeOutputStream.writeInt32Type();
307 typeOutputStream.writeUInt16Type();
311 * this type holds all information of sinks relevant to the HMI
314 * this type holds all information of sinks relevant to the HMI
316 struct am_SinkType_s: CommonAPI::SerializableStruct {
318 * This is the ID of the sink, it is unique in the system. There are 2 ways, ID
319 * can be created: either it is assigned during the registration process (in a
320 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
321 * is a fixed (the project has to ensure the uniqueness of the ID).
325 * The name of the sink. Must be unique in the whole system.
329 * This attribute reflects the availability of the sink. There are several reasons
330 * why a sink could be not available for the moment: for example the shutdown of
331 * a sink because of overtemperature or over- & undervoltage. The
332 * availability consists of two pieces of information:
335 * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN
337 * AvailabilityReason: this informs about the last reason for a change in
338 * availability. The reasons itself are product specific.
340 am_Availability_s availability;
342 * This is the representation of the Volume for the commandInterface. It is used
343 * by the HMI to set the volume of a sink, the AudioManagerController has to
344 * transform this into real source and sink volumes.
346 am_mainVolume_t volume;
347 am_MuteState_e muteState;
349 * The sinkClassID references to a sinkClass. With the help of classification,
350 * rules can be setup to define the system behaviour.
352 am_sinkClass_t sinkClassID;
354 am_SinkType_s() = default;
355 am_SinkType_s(const am_sinkID_t& sinkID, const std::string& name, const am_Availability_s& availability, const am_mainVolume_t& volume, const am_MuteState_e& muteState, const am_sinkClass_t& sinkClassID);
358 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
359 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
361 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
362 typeOutputStream.writeUInt16Type();
363 typeOutputStream.writeStringType();
364 typeOutputStream.beginWriteStructType();
365 typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type();
366 typeOutputStream.endWriteStructType();
367 typeOutputStream.writeInt16Type();
368 typeOutputStream.writeInt32Type();
369 typeOutputStream.writeUInt16Type();
372 typedef std::vector<am_SinkType_s> am_SinkType_L;
373 typedef uint16_t am_sourceClass_t;
375 * struct describing source classes
378 * struct describing source classes
380 struct am_SourceClass_s: CommonAPI::SerializableStruct {
384 am_sourceClass_t sourceClassID;
386 * the name of the sourceClass - must be unique in the system
390 * the list of the class properties. These are pairs of a project specific enum
391 * describing the type of the value and an integer holding the real value.
393 am_ClassProperty_L listClassProperties;
395 am_SourceClass_s() = default;
396 am_SourceClass_s(const am_sourceClass_t& sourceClassID, const std::string& name, const am_ClassProperty_L& listClassProperties);
399 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
400 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
402 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
403 typeOutputStream.writeUInt16Type();
404 typeOutputStream.writeStringType();
405 typeOutputStream.beginWriteVectorType();
406 typeOutputStream.beginWriteStructType();
407 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
408 typeOutputStream.endWriteStructType();
409 typeOutputStream.endWriteVectorType();
412 typedef std::vector<am_SourceClass_s> am_SourceClass_L;
414 * this type holds all information of sources relevant to the HMI
417 * this type holds all information of sources relevant to the HMI
419 struct am_SourceType_s: CommonAPI::SerializableStruct {
421 * This is the ID of the source, it is unique in the system. There are 2 ways, ID
422 * can be created: either it is assigned during the registration process (in a
423 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
424 * is a fixed (the project has to ensure the uniqueness of the ID).
426 am_sourceID_t sourceID;
428 * The name of the source. Must be unique in the whole system.
432 * the availability of the source
434 am_Availability_s availability;
436 * the sourceClassID, indicates the class the source is in. This information can
437 * be used by the Controller to implement different behaviour for different
440 am_sourceClass_t sourceClassID;
442 am_SourceType_s() = default;
443 am_SourceType_s(const am_sourceID_t& sourceID, const std::string& name, const am_Availability_s& availability, const am_sourceClass_t& sourceClassID);
446 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
447 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
449 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
450 typeOutputStream.writeUInt16Type();
451 typeOutputStream.writeStringType();
452 typeOutputStream.beginWriteStructType();
453 typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type();
454 typeOutputStream.endWriteStructType();
455 typeOutputStream.writeUInt16Type();
458 typedef std::vector<am_SourceType_s> am_SourceType_L;
460 * describes the different system properties. Project specific
463 * describes the different system properties. Project specific
465 typedef uint16_t am_CustomSystemPropertyType_t;
467 * struct describing system properties
470 * struct describing system properties
472 struct am_SystemProperty_s: CommonAPI::SerializableStruct {
474 * the type that is set
476 am_CustomSystemPropertyType_t type;
482 am_SystemProperty_s() = default;
483 am_SystemProperty_s(const am_CustomSystemPropertyType_t& type, const int16_t& value);
486 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
487 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
489 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
490 typeOutputStream.writeUInt16Type();
491 typeOutputStream.writeInt16Type();
494 typedef std::vector<am_SystemProperty_s> am_SystemProperty_L;
501 typedef uint16_t am_connectionID_t;
502 typedef std::vector<am_connectionID_t> am_ConnectionID_L;
504 * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and
505 * maximum can be limited by actual project.
508 * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and
509 * maximum can be limited by actual project.
511 typedef int16_t am_volume_t;
513 * Project specific sound properties.
516 * Project specific sound properties.
518 typedef uint16_t am_CustomSoundPropertyType_t;
520 * This enum characterizes the data of the EarlyData_t
522 enum class am_EarlyDataType_e: int32_t {
530 ED_SOURCE_VOLUME = 1,
538 ED_SOURCE_PROPERTY = 3,
542 ED_SINK_PROPERTY = 4,
546 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
547 struct am_EarlyDataType_eComparator;
549 * struct describing the sound property
552 * struct describing the sound property
554 struct am_SoundProperty_s: CommonAPI::SerializableStruct {
556 * the type of the property - a project specific enum
558 am_CustomSoundPropertyType_t type;
560 * the actual value of the property
564 am_SoundProperty_s() = default;
565 am_SoundProperty_s(const am_CustomSoundPropertyType_t& type, const int16_t& value);
568 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
569 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
571 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
572 typeOutputStream.writeUInt16Type();
573 typeOutputStream.writeInt16Type();
577 * data type depends of am_EarlyDataType_e:
578 volume_t in case of ED_SOURCE_VOLUME,
580 soundProperty_t in case of ED_SOURCE_PROPERTY,
584 * data type depends of am_EarlyDataType_e:
585 volume_t in case of ED_SOURCE_VOLUME,
587 soundProperty_t in case of ED_SOURCE_PROPERTY,
590 typedef CommonAPI::Variant<am_volume_t, am_SoundProperty_s> am_EarlyData_u;
592 * data type depends of am_EarlyDataType_e:
593 sourceID in case of ED_SOURCE_VOLUME,
595 sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY
598 * data type depends of am_EarlyDataType_e:
599 sourceID in case of ED_SOURCE_VOLUME,
601 sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY
603 typedef CommonAPI::Variant<am_sinkID_t, am_sourceID_t> am_DataType_u;
604 struct am_EarlyData_s: CommonAPI::SerializableStruct {
605 am_EarlyDataType_e type;
606 am_DataType_u sinksource;
609 am_EarlyData_s() = default;
610 am_EarlyData_s(const am_EarlyDataType_e& type, const am_DataType_u& sinksource, const am_EarlyData_u& data);
613 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
614 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
616 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
617 typeOutputStream.writeInt32Type();
618 typeOutputStream.writeVariantType();
619 typeOutputStream.writeVariantType();
622 typedef std::vector<am_EarlyData_s> am_EarlyData_L;
624 * Here are all SoundProperties that can be set via the CommandInterface. Product
628 * Here are all SoundProperties that can be set via the CommandInterface. Product
631 typedef uint16_t am_CustomMainSoundPropertyType_t;
633 * struct describung mainsound property
636 * struct describung mainsound property
638 struct am_MainSoundProperty_s: CommonAPI::SerializableStruct {
640 * the type of the property
642 am_CustomMainSoundPropertyType_t type;
648 am_MainSoundProperty_s() = default;
649 am_MainSoundProperty_s(const am_CustomMainSoundPropertyType_t& type, const int16_t& value);
652 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
653 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
655 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
656 typeOutputStream.writeUInt16Type();
657 typeOutputStream.writeInt16Type();
660 typedef std::vector<am_MainSoundProperty_s> am_MainSoundProperty_L;
662 * gives the type of the Notification.
665 * gives the type of the Notification.
667 typedef uint16_t am_CustomNotificationType_t;
668 enum class am_NotificationStatus_e: int32_t {
671 * No notification, the function is turned off
675 * Periodic notifications are sent out. The period in ms is given by
676 * am_NotificationParameter
680 * The notification is sent out when the minimum given by am_NotificationParameter
685 * The notification is sent out when the maximum given by am_NotificationParameter
690 * The notification is sent out when a change happened. The Resolution of the
691 * change is defined by am_NotificationParameter.
697 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
698 struct am_NotificationStatus_eComparator;
700 * This struct holds information about the configuration for notifications
703 * This struct holds information about the configuration for notifications
705 struct am_NotificationConfiguration_s: CommonAPI::SerializableStruct {
707 * The notification type of the notification
709 am_CustomNotificationType_t type;
711 * The Notification status. This can be periodic, min/max value based or even off
714 am_NotificationStatus_e status;
716 * This gives additional information to the notification status.
718 * between notification status and the value:
719 NS_PERIODIC - the period in
721 NS_MINIMUM - the minimum value that triggers the notification
723 * - the maximum value that triggers the notifcation
724 NS_CHANGE - the resolution
725 * of the change value
729 am_NotificationConfiguration_s() = default;
730 am_NotificationConfiguration_s(const am_CustomNotificationType_t& type, const am_NotificationStatus_e& status, const int16_t& parameter);
733 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
734 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
736 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
737 typeOutputStream.writeUInt16Type();
738 typeOutputStream.writeInt32Type();
739 typeOutputStream.writeInt16Type();
742 typedef std::vector<am_NotificationConfiguration_s> am_NotificationConfiguration_L;
749 typedef uint16_t am_domainID_t;
751 * This project specific value classifies the format in which data is exchanged
752 * within a connection.
755 * This project specific value classifies the format in which data is exchanged
756 * within a connection.
758 typedef uint16_t am_CustomConnectionFormat_t;
760 * This represents one "hopp" in a route
763 * This represents one "hopp" in a route
765 struct am_RoutingElement_s: CommonAPI::SerializableStruct {
769 am_sourceID_t sourceID;
775 * the domainID the routeElement is in
777 am_domainID_t domainID;
779 * the connectionformat that is used for the route
781 am_CustomConnectionFormat_t connectionFormat;
783 am_RoutingElement_s() = default;
784 am_RoutingElement_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_domainID_t& domainID, const am_CustomConnectionFormat_t& connectionFormat);
787 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
788 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
790 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
791 typeOutputStream.writeUInt16Type();
792 typeOutputStream.writeUInt16Type();
793 typeOutputStream.writeUInt16Type();
794 typeOutputStream.writeUInt16Type();
797 typedef std::vector<am_RoutingElement_s> am_RoutingElement_L;
798 typedef std::vector<am_SoundProperty_s> am_SoundProperty_L;
805 typedef int16_t am_time_t;
807 * For products, different ramp types can be defined here.
809 * responsibility of the product to make sure that the routing plugins are aware
810 * of the ramp types used.
813 * For products, different ramp types can be defined here.
815 * responsibility of the product to make sure that the routing plugins are aware
816 * of the ramp types used.
818 typedef uint16_t am_CustomRampType_t;
820 * This datatype determines if a sourceID or a sinkID is used in the union
823 enum class am_VolumeType_e: int32_t {
826 * the following type is a sink
830 * the following type is a source
836 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
837 struct am_VolumeType_eComparator;
839 * This types describe a mixed description for source and sinks volumes.
842 * This types describe a mixed description for source and sinks volumes.
844 struct am_Volumes_s: CommonAPI::SerializableStruct {
846 * describes the type of the volume: source or sink.
848 am_VolumeType_e volumeType;
850 * either sourceID or sinkID
852 am_DataType_u volumeID;
858 * the ramp that shall be driven
860 am_CustomRampType_t ramp;
862 * the time for the ramp
866 am_Volumes_s() = default;
867 am_Volumes_s(const am_VolumeType_e& volumeType, const am_DataType_u& volumeID, const am_volume_t& volume, const am_CustomRampType_t& ramp, const am_time_t& time);
870 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
871 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
873 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
874 typeOutputStream.writeInt32Type();
875 typeOutputStream.writeVariantType();
876 typeOutputStream.writeInt16Type();
877 typeOutputStream.writeUInt16Type();
878 typeOutputStream.writeInt16Type();
881 typedef std::vector<am_Volumes_s> am_Volumes_L;
882 typedef std::vector<am_CustomConnectionFormat_t> am_ConnectionFormat_L;
883 typedef bool am_bool_t;
884 typedef std::vector<am_bool_t> am_Convertion_L;
891 typedef uint16_t am_gatewayID_t;
898 typedef uint16_t am_crossfaderID_t;
905 typedef uint16_t am_speed_t;
907 * describes the active sink of a crossfader.
909 enum class am_HotSink_e: int32_t {
923 * the crossfader is in the transition state
929 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
930 struct am_HotSink_eComparator;
931 enum class am_DomainState_e: int32_t {
937 * the domain is controlled by the daemon
941 * the domain is independent starting up
943 DS_INDEPENDENT_STARTUP = 1,
945 * the domain is independent running down
947 DS_INDEPENDENT_RUNDOWN = 2,
951 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
952 struct am_DomainState_eComparator;
954 * the errors of the audiomanager. All possible errors are in here. This enum is
955 * used widely as return parameter.
957 enum class am_Error_e: int32_t {
959 * no error - positive reply
975 * a database error occurred
977 E_DATABASE_ERROR = 4,
979 * the desired object already exists
981 E_ALREADY_EXISTS = 5,
987 * the desired action is not possible
991 * the desired object is non existent
995 * the asynchronous action was aborted
999 * This error is returned in case a connect is issued with a connectionFormat that
1000 * cannot be selected for the connection. This could be either due to the
1001 * capabilities of a source or a sink or gateway compatibilities for example
1003 E_WRONG_FORMAT = 10,
1007 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1008 struct am_Error_eComparator;
1009 enum class am_InterruptState_e: int32_t {
1015 * the interrupt state is off - no interrupt
1019 * the interrupt state is interrupted - the interrupt is active
1025 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1026 struct am_InterruptState_eComparator;
1028 * This enumeration is used to define the type of the action that is correlated to
1031 enum class am_Handle_e: int32_t {
1035 H_SETSOURCESTATE = 3,
1036 H_SETSINKVOLUME = 4,
1037 H_SETSOURCEVOLUME = 5,
1038 H_SETSINKSOUNDPROPERTY = 6,
1039 H_SETSOURCESOUNDPROPERTY = 7,
1040 H_SETSINKSOUNDPROPERTIES = 8,
1041 H_SETSOURCESOUNDPROPERTIES = 9,
1044 H_SETSINKNOTIFICATION = 12,
1045 H_SETSOURCENOTIFICATION = 13,
1049 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1050 struct am_Handle_eComparator;
1052 * The source state reflects the state of the source
1054 enum class am_SourceState_e: int32_t {
1057 * The source can be activly heared
1061 * The source cannot be heared
1065 * The source is paused. Meaning it cannot be heared but should be prepared to
1072 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1073 struct am_SourceState_eComparator;
1075 * This enum describes the ready state of the routing part
1077 enum class am_RoutingReady_e: int32_t {
1083 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1084 struct am_RoutingReady_eComparator;
1086 * a list of routing elements that lead from source to sink
1089 * a list of routing elements that lead from source to sink
1091 struct am_Route_s: CommonAPI::SerializableStruct {
1093 * the sourceID where the route starts
1095 am_sourceID_t sourceID;
1097 * the sinkID where the route ends
1101 * the actual route as list of routing elements
1103 am_RoutingElement_L route;
1105 am_Route_s() = default;
1106 am_Route_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_RoutingElement_L& route);
1109 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1110 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1112 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1113 typeOutputStream.writeUInt16Type();
1114 typeOutputStream.writeUInt16Type();
1115 typeOutputStream.beginWriteVectorType();
1116 typeOutputStream.beginWriteStructType();
1117 typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();
1118 typeOutputStream.endWriteStructType();
1119 typeOutputStream.endWriteVectorType();
1123 * This struct describes the attribiutes of a crossfader.
1126 * This struct describes the attribiutes of a crossfader.
1128 struct am_Crossfader_s: CommonAPI::SerializableStruct {
1130 * This is the ID of the crossfader, it is unique in the system. There are 2 ways,
1131 * ID can be created: either it is assigned during the registration process (in a
1132 * dynamic context, uniqueness will be ensured by the AudioManager daemon), or it
1133 * is a fixed (the project has to ensure the uniqueness of the ID).
1135 am_crossfaderID_t crossfaderID;
1137 * The name of the crossfader. Must be unique in the whole system.
1141 * The sinkID of the SinkA. Sinks shall be registered before registering the
1144 am_sinkID_t sinkID_A;
1146 * The sinkID of the SinkB. Sinks shall be registered before registering the
1149 am_sinkID_t sinkID_B;
1151 * The sourceID of the crossfader source. The source shall be registered before
1154 am_sourceID_t sourceID;
1156 * This enum can have 3 states:
1158 HS_SINKA sinkA is the current hot one,
1159 * sinkB is not audible
1160 HS_SINKB sinkB is the current hot one, sinkB is not
1162 HS_INTERMEDIATE the fader is stuck in between a cross-fading
1163 * action. This could be due to an abort or an error. Before using the
1164 * crossfader, it must be set to either HS_SINKA or HS_SINKB.
1166 am_HotSink_e hotSink;
1168 am_Crossfader_s() = default;
1169 am_Crossfader_s(const am_crossfaderID_t& crossfaderID, const std::string& name, const am_sinkID_t& sinkID_A, const am_sinkID_t& sinkID_B, const am_sourceID_t& sourceID, const am_HotSink_e& hotSink);
1172 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1173 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1175 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1176 typeOutputStream.writeUInt16Type();
1177 typeOutputStream.writeStringType();
1178 typeOutputStream.writeUInt16Type();
1179 typeOutputStream.writeUInt16Type();
1180 typeOutputStream.writeUInt16Type();
1181 typeOutputStream.writeInt32Type();
1185 * This struct describes the attributes of a gateway.
1188 * This struct describes the attributes of a gateway.
1190 struct am_Gateway_s: CommonAPI::SerializableStruct {
1192 * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID
1193 * can be created: either it is assigned during the registration process (in a
1194 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
1195 * is a fixed (the project has to ensure the uniqueness of the ID).
1197 am_gatewayID_t gatewayID;
1199 * The name of the gateway. Must be unique in the whole system.
1203 * The sinkID of the gateway sink-end. The sink is a full blown sink with
1204 * connectionFormats, sinkClassIDs etc... It makes sense to register the sinks of
1205 * a gateway as non-visible. Care needs to be taken that the connectionsFormats
1206 * match with the ones in the conversionMatrix. If the sink is located in the
1207 * controllingDomain, the ID needs to be retrieved by registering the sink before
1208 * registering the gateway. In case the sink is in a different domain, the ID
1209 * needs to be retrieved via peeking.
1213 * The sourceID of the gateway sink-end. The sink is a full blown source with
1214 * connectionFormats, sinkClassIDs etc... It makes sense to register the sources
1215 * of a gateway as non-visible. Care needs to be taken that the
1216 * connectionsFormats match with the ones in the conversionMatrix. If the source
1217 * is located in the controllingDomain, the ID needs to be retrieved by
1218 * registering the source before registering the gateway. In case the source is
1219 * in a different domain, the ID needs to be retrieved via peeking.
1221 am_sourceID_t sourceID;
1223 * The ID of the sink. If the domain is the same like the controlling domain, the
1224 * ID is known due to registration. If the domain is different, the ID needs to
1225 * be retrieved via peeking.
1227 am_domainID_t domainSinkID;
1229 * The ID of the source. If the domain is the same like the controlling domain,
1230 * the ID is known due to registration. If the domain is different, the ID needs
1231 * to be retrieved via peeking.
1233 am_domainID_t domainSourceID;
1235 * This is the ID of the domain that registers the gateway.
1237 am_domainID_t controlDomainID;
1239 * This is the list of available formats on the source side of the gateway. It is
1240 * not defined during the gateway registration but copied from the source
1243 am_ConnectionFormat_L listSourceFormats;
1245 * This is the list of available formats on the sink side of the gateway. It is
1246 * not defined during the gateway registration but copied from the sink
1249 am_ConnectionFormat_L listSinkFormats;
1251 * This is matrix holding information about the conversion capability of the
1252 * gateway, it's length is defined by the length(listSinkFormats) x
1253 * length(listSourceFormats).
1254 If a SinkFormat can be converted into a
1255 * SourceFormat, the vector will hold a 1, if no conversion is possible, a
1257 The data is stored row orientated, where the rows are related to the
1258 * sinksFormats and the columns to the sourceFormats. The first value will hold
1259 * the conversion information from the first sourceFormat to the first sinkFormat
1260 * for example and the seventh value the information about the 3rd sinkFormat to
1261 * the 1st sourceFormat in case we would have 3 sourceFormats.
1263 am_Convertion_L convertionMatrix;
1265 am_Gateway_s() = default;
1266 am_Gateway_s(const am_gatewayID_t& gatewayID, const std::string& name, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_domainID_t& domainSinkID, const am_domainID_t& domainSourceID, const am_domainID_t& controlDomainID, const am_ConnectionFormat_L& listSourceFormats, const am_ConnectionFormat_L& listSinkFormats, const am_Convertion_L& convertionMatrix);
1269 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1270 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1272 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1273 typeOutputStream.writeUInt16Type();
1274 typeOutputStream.writeStringType();
1275 typeOutputStream.writeUInt16Type();
1276 typeOutputStream.writeUInt16Type();
1277 typeOutputStream.writeUInt16Type();
1278 typeOutputStream.writeUInt16Type();
1279 typeOutputStream.writeUInt16Type();
1280 typeOutputStream.beginWriteVectorType();
1281 typeOutputStream.writeUInt16Type();
1282 typeOutputStream.endWriteVectorType();
1283 typeOutputStream.beginWriteVectorType();
1284 typeOutputStream.writeUInt16Type();
1285 typeOutputStream.endWriteVectorType();
1286 typeOutputStream.beginWriteVectorType();
1287 typeOutputStream.writeBoolType();
1288 typeOutputStream.endWriteVectorType();
1292 * a handle is used for asynchronous operations and is uniquely assigned for each
1293 * of this operations
1296 * a handle is used for asynchronous operations and is uniquely assigned for each
1297 * of this operations
1299 struct am_Handle_s: CommonAPI::SerializableStruct {
1303 am_Handle_e handleType;
1305 * the handle as value
1309 am_Handle_s() = default;
1310 am_Handle_s(const am_Handle_e& handleType, const uint16_t& handle);
1313 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1314 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1316 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1317 typeOutputStream.writeInt32Type();
1318 typeOutputStream.writeUInt16Type();
1322 * struct that holds attribiutes of a mainconnection
1325 * struct that holds attribiutes of a mainconnection
1327 struct am_MainConnection_s: CommonAPI::SerializableStruct {
1331 am_mainConnectionID_t mainConnectionID;
1333 * the current connection state
1335 am_ConnectionState_e connectionState;
1343 am_sourceID_t sourceID;
1345 * the delay of the connection
1347 am_timeSync_t delay;
1349 * the list of sub connection IDs the mainconnection consists of
1351 am_ConnectionID_L listConnectionID;
1353 am_MainConnection_s() = default;
1354 am_MainConnection_s(const am_mainConnectionID_t& mainConnectionID, const am_ConnectionState_e& connectionState, const am_sinkID_t& sinkID, const am_sourceID_t& sourceID, const am_timeSync_t& delay, const am_ConnectionID_L& listConnectionID);
1357 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1358 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1360 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1361 typeOutputStream.writeUInt16Type();
1362 typeOutputStream.writeInt32Type();
1363 typeOutputStream.writeUInt16Type();
1364 typeOutputStream.writeUInt16Type();
1365 typeOutputStream.writeInt16Type();
1366 typeOutputStream.beginWriteVectorType();
1367 typeOutputStream.writeUInt16Type();
1368 typeOutputStream.endWriteVectorType();
1372 * This struct holds the payload of a notification.
1375 * This struct holds the payload of a notification.
1377 struct am_NotificationPayload_s: CommonAPI::SerializableStruct {
1379 * This defines the notification type
1381 am_CustomNotificationType_t type;
1383 * This is finally the value of the notification. It's meaning depends on the
1388 am_NotificationPayload_s() = default;
1389 am_NotificationPayload_s(const am_CustomNotificationType_t& type, const int16_t& value);
1392 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1393 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1395 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1396 typeOutputStream.writeUInt16Type();
1397 typeOutputStream.writeInt16Type();
1401 * This struct describes the attribiutes of a sink
1404 * This struct describes the attribiutes of a sink
1406 struct am_Sink_s: CommonAPI::SerializableStruct {
1408 * This is the ID of the sink, it is unique in the system. There are 2 ways, ID
1409 * can be created: either it is assigned during the registration process (in a
1410 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
1411 * is a fixed (the project has to ensure the uniqueness of the ID).
1415 * The name of the sink. Must be unique in the whole system.
1419 * The domainID is the domain the sink belongs to. A sink can only be in one
1422 am_domainID_t domainID;
1424 * The sinkClassID references to a sinkClass. With the help of classification,
1425 * rules can be setup to define the system behaviour.
1427 am_sinkClass_t sinkClassID;
1429 * This is the volume of the sink. It is set by the AudioManagerController.
1433 * This Boolean flag indicates whether a sink is visible to the commandInterface
1434 * or not. If the User must have the possibility to choose the source in the HMI,
1435 * it must be visible. But there are also good reasons for invisible sinks, for
1436 * example if the sink is part of a crossfader or gateway. HMI relevant changes
1437 * in visible sinks will be automatically reported by the daemon to the
1442 * This attribute reflects the availability of the sink. There are several reasons
1443 * why a sink could be not available for the moment: for example the shutdown of
1444 * a sink because of overtemperature or over- & undervoltage. The
1445 * availability consists of two pieces of information:
1448 * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN
1450 * AvailabilityReason: this informs about the last reason for a change in
1451 * availability. The reasons itself are product specific.
1453 am_Availability_s available;
1455 * This attribute reflects the muteState of the sink. The information is not the
1456 * "real" state of the sink, but the HMI representation for he commandInterface
1457 * controlled by the AudioManagerController.
1459 am_MuteState_e muteState;
1461 * This is the representation of the Volume for the commandInterface. It is used
1462 * by the HMI to set the volume of a sink, the AudioManagerController has to
1463 * transform this into real source and sink volumes.
1465 am_mainVolume_t mainVolume;
1467 * This is the list of soundProperties, that the sink is capable of. The
1468 * soundProperties itself are project specific. For sinks, a possible
1469 * soundProperty could be for example settings.
1471 am_SoundProperty_L listSoundProperties;
1473 * This list holds information about the formats that the Source is capable of
1474 * supporting when delivering audio.
1476 am_ConnectionFormat_L listConnectionFormats;
1478 * This is the list of the available mainSoundProperties. The principle is the
1479 * same than with soundProperties, but they are only visible to the
1482 am_MainSoundProperty_L listMainSoundProperties;
1484 * This is the list of the MainNotificationConfigurations. These notifications
1485 * work on the level of command interface.
1487 am_NotificationConfiguration_L listMainNotificationConfigurations;
1489 * This is the list of the NotificationConfigurations. These notifications work on
1490 * the level of RoutingPlugins.
1492 am_NotificationConfiguration_L listNotificationConfigurations;
1494 am_Sink_s() = default;
1495 am_Sink_s(const am_sinkID_t& sinkID, const std::string& name, const am_domainID_t& domainID, const am_sinkClass_t& sinkClassID, const am_volume_t& volume, const bool& visible, const am_Availability_s& available, const am_MuteState_e& muteState, const am_mainVolume_t& mainVolume, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, const am_NotificationConfiguration_L& listMainNotificationConfigurations, const am_NotificationConfiguration_L& listNotificationConfigurations);
1498 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1499 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1501 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1502 typeOutputStream.writeUInt16Type();
1503 typeOutputStream.writeStringType();
1504 typeOutputStream.writeUInt16Type();
1505 typeOutputStream.writeUInt16Type();
1506 typeOutputStream.writeInt16Type();
1507 typeOutputStream.writeBoolType();
1508 typeOutputStream.beginWriteStructType();
1509 typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type();
1510 typeOutputStream.endWriteStructType();
1511 typeOutputStream.writeInt32Type();
1512 typeOutputStream.writeInt16Type();
1513 typeOutputStream.beginWriteVectorType();
1514 typeOutputStream.beginWriteStructType();
1515 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
1516 typeOutputStream.endWriteStructType();
1517 typeOutputStream.endWriteVectorType();
1518 typeOutputStream.beginWriteVectorType();
1519 typeOutputStream.writeUInt16Type();
1520 typeOutputStream.endWriteVectorType();
1521 typeOutputStream.beginWriteVectorType();
1522 typeOutputStream.beginWriteStructType();
1523 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
1524 typeOutputStream.endWriteStructType();
1525 typeOutputStream.endWriteVectorType();
1526 typeOutputStream.beginWriteVectorType();
1527 typeOutputStream.beginWriteStructType();
1528 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type();
1529 typeOutputStream.endWriteStructType();
1530 typeOutputStream.endWriteVectorType();
1531 typeOutputStream.beginWriteVectorType();
1532 typeOutputStream.beginWriteStructType();
1533 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type();
1534 typeOutputStream.endWriteStructType();
1535 typeOutputStream.endWriteVectorType();
1539 * This struct describes the attribiutes of a source
1542 * This struct describes the attribiutes of a source
1544 struct am_Source_s: CommonAPI::SerializableStruct {
1546 * This is the ID of the source, it is unique in the system. There are 2 ways, ID
1547 * can be created: either it is assigned during the registration process (in a
1548 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
1549 * is a fixed (the project has to ensure the uniqueness of the ID).
1551 am_sourceID_t sourceID;
1553 * The domainID is the domain the source belongs to. A source can only be in one
1556 am_domainID_t domainID;
1558 * The name of the source. Must be unique in the whole system.
1562 * the sourceClassID, indicates the class the source is in. This information can
1563 * be used by the Controller to implement different behaviour for different
1566 am_sourceClass_t sourceClassID;
1568 * The source state is an indication towards the source if it is actively heard or
1569 * not. The source can use this information to implement features like automatic
1570 * spin down of CD's in case the CD is not the active source or AF following of a
1571 * tuner that is not actively heard. The source state is set by the
1572 * AudioManagerController.There are 3 possible states:
1576 SS_OFF: the source is off
1577 SS_PAUSED: the source is paused
1580 am_SourceState_e sourceState;
1582 * This is the volume of the source. It is set by the AudioManagerController. It
1583 * is used to adopt different audiolevels in a system and mixing of sources (e.g.
1584 * navigation hints & music).
1588 * This Boolean flag indicates whether a source is visible to the commandInterface
1589 * or not. If the User must have the possibility to choose the source in the HMI,
1590 * it must be visible. But there are also good reasons for invisible sources, for
1591 * example if the source is part of a crossfader or gateway. HMI relevant changes
1592 * in visible sources will be automatically reported by the daemon to the
1597 * This attribute reflects the availability of the source. There are several
1598 * reasons why a source could be not available for the moment. For example a CD
1599 * player which has no CD entered in the slot can be unavailable, or a USB player
1600 * with no or unreadable stick attached. Other scenarios involve the shutdown of
1601 * a source because of overtemperature or over- & undervoltage. The
1602 * availability consists of two informations:
1604 Availablility: the status
1605 * itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN
1607 * AvailabilityReason: this informs about the last reason for a change in
1608 * availability. The reasons itself are product specific.
1610 am_Availability_s available;
1612 * Some special sources can have special behaviors, the are so called "Low Level
1613 * Interrupts". Here the current status is documented. The information can be
1614 * used by the AudioManagerController to react to the changes by for example
1615 * lowering the volume of the mainSources. The two states are
1618 * interrupt is not active at the moment
1619 IS_INTERRUPTED: the interrupt is
1620 * playing at the moment.
1622 am_InterruptState_e interruptState;
1624 * This is the list of soundProperties, that the source is capable of. The
1625 * soundProperties itself are project specific. For sources, a possible
1626 * soundProperty could be navigation volume offset, for example.
1628 am_SoundProperty_L listSoundProperties;
1630 * This list holds information about the formats that the Source is capable of
1631 * supporting when delivering audio.
1633 am_ConnectionFormat_L listConnectionFormats;
1635 * This is the list of the available mainSoundProperties. The principle is the
1636 * same than with soundProperties, but they are only visible to the
1639 am_MainSoundProperty_L listMainSoundProperties;
1641 * The list of MainNotificationConfigurations. These notifications work on the
1642 * level of CommandInterface.
1644 am_NotificationConfiguration_L listMainNotificationConfigurations;
1646 * The list of MainNotificationConfigurations. These notifications work on the
1647 * level of RoutingInterface.
1649 am_NotificationConfiguration_L listNotificationConfigurations;
1651 am_Source_s() = default;
1652 am_Source_s(const am_sourceID_t& sourceID, const am_domainID_t& domainID, const std::string& name, const am_sourceClass_t& sourceClassID, const am_SourceState_e& sourceState, const am_volume_t& volume, const bool& visible, const am_Availability_s& available, const am_InterruptState_e& interruptState, const am_SoundProperty_L& listSoundProperties, const am_ConnectionFormat_L& listConnectionFormats, const am_MainSoundProperty_L& listMainSoundProperties, const am_NotificationConfiguration_L& listMainNotificationConfigurations, const am_NotificationConfiguration_L& listNotificationConfigurations);
1655 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1656 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1658 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1659 typeOutputStream.writeUInt16Type();
1660 typeOutputStream.writeUInt16Type();
1661 typeOutputStream.writeStringType();
1662 typeOutputStream.writeUInt16Type();
1663 typeOutputStream.writeInt32Type();
1664 typeOutputStream.writeInt16Type();
1665 typeOutputStream.writeBoolType();
1666 typeOutputStream.beginWriteStructType();
1667 typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type();
1668 typeOutputStream.endWriteStructType();
1669 typeOutputStream.writeInt32Type();
1670 typeOutputStream.beginWriteVectorType();
1671 typeOutputStream.beginWriteStructType();
1672 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
1673 typeOutputStream.endWriteStructType();
1674 typeOutputStream.endWriteVectorType();
1675 typeOutputStream.beginWriteVectorType();
1676 typeOutputStream.writeUInt16Type();
1677 typeOutputStream.endWriteVectorType();
1678 typeOutputStream.beginWriteVectorType();
1679 typeOutputStream.beginWriteStructType();
1680 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
1681 typeOutputStream.endWriteStructType();
1682 typeOutputStream.endWriteVectorType();
1683 typeOutputStream.beginWriteVectorType();
1684 typeOutputStream.beginWriteStructType();
1685 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type();
1686 typeOutputStream.endWriteStructType();
1687 typeOutputStream.endWriteVectorType();
1688 typeOutputStream.beginWriteVectorType();
1689 typeOutputStream.beginWriteStructType();
1690 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type();
1691 typeOutputStream.endWriteStructType();
1692 typeOutputStream.endWriteVectorType();
1696 * This struct describes the attribiutes of a domain
1699 * This struct describes the attribiutes of a domain
1701 struct am_Domain_s: CommonAPI::SerializableStruct {
1705 am_domainID_t domainID;
1707 * the name of the domain
1711 * the busname. This is equal to a plugin name and is used to dispatch messages to
1712 * the elements of a plugin
1714 std::string busname;
1716 * the name of the node
1718 std::string nodename;
1720 * indicated if the domain is independent at startup or not
1724 * indicates if the domain registration is complete or not
1728 * the current domain state
1730 am_DomainState_e state;
1732 am_Domain_s() = default;
1733 am_Domain_s(const am_domainID_t& domainID, const std::string& name, const std::string& busname, const std::string& nodename, const bool& early, const bool& complete, const am_DomainState_e& state);
1736 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1737 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1739 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1740 typeOutputStream.writeUInt16Type();
1741 typeOutputStream.writeStringType();
1742 typeOutputStream.writeStringType();
1743 typeOutputStream.writeStringType();
1744 typeOutputStream.writeBoolType();
1745 typeOutputStream.writeBoolType();
1746 typeOutputStream.writeInt32Type();
1755 struct am_Connection_s: CommonAPI::SerializableStruct {
1759 am_connectionID_t connectionID;
1761 * the source the audio flows from
1763 am_sourceID_t sourceID;
1765 * the sink the audio flows to
1769 * the delay of the conneciton
1771 am_timeSync_t delay;
1773 * the used connectionformat
1775 am_CustomConnectionFormat_t connectionFormat;
1777 am_Connection_s() = default;
1778 am_Connection_s(const am_connectionID_t& connectionID, const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_timeSync_t& delay, const am_CustomConnectionFormat_t& connectionFormat);
1781 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1782 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1784 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1785 typeOutputStream.writeUInt16Type();
1786 typeOutputStream.writeUInt16Type();
1787 typeOutputStream.writeUInt16Type();
1788 typeOutputStream.writeInt16Type();
1789 typeOutputStream.writeUInt16Type();
1793 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Availability_e& enumValue) {
1794 return inputStream.readEnumValue<int32_t>(enumValue);
1797 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Availability_e& enumValue) {
1798 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1801 struct am_Availability_eComparator {
1802 inline bool operator()(const am_Availability_e& lhs, const am_Availability_e& rhs) const {
1803 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1807 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_HotSink_e& enumValue) {
1808 return inputStream.readEnumValue<int32_t>(enumValue);
1811 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_HotSink_e& enumValue) {
1812 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1815 struct am_HotSink_eComparator {
1816 inline bool operator()(const am_HotSink_e& lhs, const am_HotSink_e& rhs) const {
1817 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1821 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_ConnectionState_e& enumValue) {
1822 return inputStream.readEnumValue<int32_t>(enumValue);
1825 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_ConnectionState_e& enumValue) {
1826 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1829 struct am_ConnectionState_eComparator {
1830 inline bool operator()(const am_ConnectionState_e& lhs, const am_ConnectionState_e& rhs) const {
1831 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1835 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_DomainState_e& enumValue) {
1836 return inputStream.readEnumValue<int32_t>(enumValue);
1839 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_DomainState_e& enumValue) {
1840 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1843 struct am_DomainState_eComparator {
1844 inline bool operator()(const am_DomainState_e& lhs, const am_DomainState_e& rhs) const {
1845 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1849 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_EarlyDataType_e& enumValue) {
1850 return inputStream.readEnumValue<int32_t>(enumValue);
1853 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_EarlyDataType_e& enumValue) {
1854 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1857 struct am_EarlyDataType_eComparator {
1858 inline bool operator()(const am_EarlyDataType_e& lhs, const am_EarlyDataType_e& rhs) const {
1859 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1863 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Error_e& enumValue) {
1864 return inputStream.readEnumValue<int32_t>(enumValue);
1867 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Error_e& enumValue) {
1868 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1871 struct am_Error_eComparator {
1872 inline bool operator()(const am_Error_e& lhs, const am_Error_e& rhs) const {
1873 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1877 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_MuteState_e& enumValue) {
1878 return inputStream.readEnumValue<int32_t>(enumValue);
1881 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_MuteState_e& enumValue) {
1882 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1885 struct am_MuteState_eComparator {
1886 inline bool operator()(const am_MuteState_e& lhs, const am_MuteState_e& rhs) const {
1887 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1891 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_InterruptState_e& enumValue) {
1892 return inputStream.readEnumValue<int32_t>(enumValue);
1895 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_InterruptState_e& enumValue) {
1896 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1899 struct am_InterruptState_eComparator {
1900 inline bool operator()(const am_InterruptState_e& lhs, const am_InterruptState_e& rhs) const {
1901 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1905 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_VolumeType_e& enumValue) {
1906 return inputStream.readEnumValue<int32_t>(enumValue);
1909 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_VolumeType_e& enumValue) {
1910 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1913 struct am_VolumeType_eComparator {
1914 inline bool operator()(const am_VolumeType_e& lhs, const am_VolumeType_e& rhs) const {
1915 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1919 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_NotificationStatus_e& enumValue) {
1920 return inputStream.readEnumValue<int32_t>(enumValue);
1923 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_NotificationStatus_e& enumValue) {
1924 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1927 struct am_NotificationStatus_eComparator {
1928 inline bool operator()(const am_NotificationStatus_e& lhs, const am_NotificationStatus_e& rhs) const {
1929 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1933 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Handle_e& enumValue) {
1934 return inputStream.readEnumValue<int32_t>(enumValue);
1937 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Handle_e& enumValue) {
1938 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1941 struct am_Handle_eComparator {
1942 inline bool operator()(const am_Handle_e& lhs, const am_Handle_e& rhs) const {
1943 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1947 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_SourceState_e& enumValue) {
1948 return inputStream.readEnumValue<int32_t>(enumValue);
1951 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_SourceState_e& enumValue) {
1952 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1955 struct am_SourceState_eComparator {
1956 inline bool operator()(const am_SourceState_e& lhs, const am_SourceState_e& rhs) const {
1957 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1961 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_RoutingReady_e& enumValue) {
1962 return inputStream.readEnumValue<int32_t>(enumValue);
1965 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_RoutingReady_e& enumValue) {
1966 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1969 struct am_RoutingReady_eComparator {
1970 inline bool operator()(const am_RoutingReady_e& lhs, const am_RoutingReady_e& rhs) const {
1971 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1975 bool operator==(const am_Route_s& lhs, const am_Route_s& rhs);
1976 inline bool operator!=(const am_Route_s& lhs, const am_Route_s& rhs) {
1977 return !(lhs == rhs);
1979 bool operator==(const am_Availability_s& lhs, const am_Availability_s& rhs);
1980 inline bool operator!=(const am_Availability_s& lhs, const am_Availability_s& rhs) {
1981 return !(lhs == rhs);
1983 bool operator==(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs);
1984 inline bool operator!=(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs) {
1985 return !(lhs == rhs);
1987 bool operator==(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs);
1988 inline bool operator!=(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs) {
1989 return !(lhs == rhs);
1991 bool operator==(const am_Gateway_s& lhs, const am_Gateway_s& rhs);
1992 inline bool operator!=(const am_Gateway_s& lhs, const am_Gateway_s& rhs) {
1993 return !(lhs == rhs);
1995 bool operator==(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs);
1996 inline bool operator!=(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs) {
1997 return !(lhs == rhs);
1999 bool operator==(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs);
2000 inline bool operator!=(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs) {
2001 return !(lhs == rhs);
2003 bool operator==(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs);
2004 inline bool operator!=(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs) {
2005 return !(lhs == rhs);
2007 bool operator==(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs);
2008 inline bool operator!=(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs) {
2009 return !(lhs == rhs);
2011 bool operator==(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs);
2012 inline bool operator!=(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs) {
2013 return !(lhs == rhs);
2015 bool operator==(const am_SourceType_s& lhs, const am_SourceType_s& rhs);
2016 inline bool operator!=(const am_SourceType_s& lhs, const am_SourceType_s& rhs) {
2017 return !(lhs == rhs);
2019 bool operator==(const am_SinkType_s& lhs, const am_SinkType_s& rhs);
2020 inline bool operator!=(const am_SinkType_s& lhs, const am_SinkType_s& rhs) {
2021 return !(lhs == rhs);
2023 bool operator==(const am_Handle_s& lhs, const am_Handle_s& rhs);
2024 inline bool operator!=(const am_Handle_s& lhs, const am_Handle_s& rhs) {
2025 return !(lhs == rhs);
2027 bool operator==(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs);
2028 inline bool operator!=(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs) {
2029 return !(lhs == rhs);
2031 bool operator==(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs);
2032 inline bool operator!=(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs) {
2033 return !(lhs == rhs);
2035 bool operator==(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs);
2036 inline bool operator!=(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs) {
2037 return !(lhs == rhs);
2039 bool operator==(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs);
2040 inline bool operator!=(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs) {
2041 return !(lhs == rhs);
2043 bool operator==(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs);
2044 inline bool operator!=(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs) {
2045 return !(lhs == rhs);
2047 bool operator==(const am_Sink_s& lhs, const am_Sink_s& rhs);
2048 inline bool operator!=(const am_Sink_s& lhs, const am_Sink_s& rhs) {
2049 return !(lhs == rhs);
2051 bool operator==(const am_Source_s& lhs, const am_Source_s& rhs);
2052 inline bool operator!=(const am_Source_s& lhs, const am_Source_s& rhs) {
2053 return !(lhs == rhs);
2055 bool operator==(const am_Domain_s& lhs, const am_Domain_s& rhs);
2056 inline bool operator!=(const am_Domain_s& lhs, const am_Domain_s& rhs) {
2057 return !(lhs == rhs);
2059 bool operator==(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs);
2060 inline bool operator!=(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs) {
2061 return !(lhs == rhs);
2063 bool operator==(const am_Connection_s& lhs, const am_Connection_s& rhs);
2064 inline bool operator!=(const am_Connection_s& lhs, const am_Connection_s& rhs) {
2065 return !(lhs == rhs);
2067 bool operator==(const am_Volumes_s& lhs, const am_Volumes_s& rhs);
2068 inline bool operator!=(const am_Volumes_s& lhs, const am_Volumes_s& rhs) {
2069 return !(lhs == rhs);
2073 static inline const char* getTypeCollectionName() {
2074 static const char* typeCollectionName = "org.genivi.am";
2075 return typeCollectionName;
2078 inline CommonAPI::Version getTypeCollectionVersion() {
2079 return CommonAPI::Version(1, 0);
2084 } // namespace genivi
2087 namespace CommonAPI {
2090 struct BasicTypeWriter<org::genivi::am::am_Availability_e> {
2091 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2092 typeStream.writeInt32EnumType();
2097 struct InputStreamVectorHelper<org::genivi::am::am_Availability_e> {
2098 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) {
2100 inputStream.beginReadInt32EnumVector();
2105 struct OutputStreamVectorHelper<org::genivi::am::am_Availability_e> {
2106 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) {
2107 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2111 struct BasicTypeWriter<org::genivi::am::am_HotSink_e> {
2112 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2113 typeStream.writeInt32EnumType();
2118 struct InputStreamVectorHelper<org::genivi::am::am_HotSink_e> {
2119 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) {
2121 inputStream.beginReadInt32EnumVector();
2126 struct OutputStreamVectorHelper<org::genivi::am::am_HotSink_e> {
2127 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) {
2128 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2132 struct BasicTypeWriter<org::genivi::am::am_ConnectionState_e> {
2133 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2134 typeStream.writeInt32EnumType();
2139 struct InputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> {
2140 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) {
2142 inputStream.beginReadInt32EnumVector();
2147 struct OutputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> {
2148 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) {
2149 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2153 struct BasicTypeWriter<org::genivi::am::am_DomainState_e> {
2154 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2155 typeStream.writeInt32EnumType();
2160 struct InputStreamVectorHelper<org::genivi::am::am_DomainState_e> {
2161 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) {
2163 inputStream.beginReadInt32EnumVector();
2168 struct OutputStreamVectorHelper<org::genivi::am::am_DomainState_e> {
2169 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) {
2170 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2174 struct BasicTypeWriter<org::genivi::am::am_EarlyDataType_e> {
2175 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2176 typeStream.writeInt32EnumType();
2181 struct InputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> {
2182 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) {
2184 inputStream.beginReadInt32EnumVector();
2189 struct OutputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> {
2190 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) {
2191 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2195 struct BasicTypeWriter<org::genivi::am::am_Error_e> {
2196 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2197 typeStream.writeInt32EnumType();
2202 struct InputStreamVectorHelper<org::genivi::am::am_Error_e> {
2203 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) {
2205 inputStream.beginReadInt32EnumVector();
2210 struct OutputStreamVectorHelper<org::genivi::am::am_Error_e> {
2211 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) {
2212 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2216 struct BasicTypeWriter<org::genivi::am::am_MuteState_e> {
2217 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2218 typeStream.writeInt32EnumType();
2223 struct InputStreamVectorHelper<org::genivi::am::am_MuteState_e> {
2224 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) {
2226 inputStream.beginReadInt32EnumVector();
2231 struct OutputStreamVectorHelper<org::genivi::am::am_MuteState_e> {
2232 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) {
2233 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2237 struct BasicTypeWriter<org::genivi::am::am_InterruptState_e> {
2238 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2239 typeStream.writeInt32EnumType();
2244 struct InputStreamVectorHelper<org::genivi::am::am_InterruptState_e> {
2245 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) {
2247 inputStream.beginReadInt32EnumVector();
2252 struct OutputStreamVectorHelper<org::genivi::am::am_InterruptState_e> {
2253 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) {
2254 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2258 struct BasicTypeWriter<org::genivi::am::am_VolumeType_e> {
2259 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2260 typeStream.writeInt32EnumType();
2265 struct InputStreamVectorHelper<org::genivi::am::am_VolumeType_e> {
2266 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) {
2268 inputStream.beginReadInt32EnumVector();
2273 struct OutputStreamVectorHelper<org::genivi::am::am_VolumeType_e> {
2274 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) {
2275 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2279 struct BasicTypeWriter<org::genivi::am::am_NotificationStatus_e> {
2280 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2281 typeStream.writeInt32EnumType();
2286 struct InputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> {
2287 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) {
2289 inputStream.beginReadInt32EnumVector();
2294 struct OutputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> {
2295 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) {
2296 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2300 struct BasicTypeWriter<org::genivi::am::am_Handle_e> {
2301 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2302 typeStream.writeInt32EnumType();
2307 struct InputStreamVectorHelper<org::genivi::am::am_Handle_e> {
2308 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) {
2310 inputStream.beginReadInt32EnumVector();
2315 struct OutputStreamVectorHelper<org::genivi::am::am_Handle_e> {
2316 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Handle_e>& vectorValue) {
2317 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2321 struct BasicTypeWriter<org::genivi::am::am_SourceState_e> {
2322 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2323 typeStream.writeInt32EnumType();
2328 struct InputStreamVectorHelper<org::genivi::am::am_SourceState_e> {
2329 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) {
2331 inputStream.beginReadInt32EnumVector();
2336 struct OutputStreamVectorHelper<org::genivi::am::am_SourceState_e> {
2337 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) {
2338 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2342 struct BasicTypeWriter<org::genivi::am::am_RoutingReady_e> {
2343 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2344 typeStream.writeInt32EnumType();
2349 struct InputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> {
2350 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) {
2352 inputStream.beginReadInt32EnumVector();
2357 struct OutputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> {
2358 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) {
2359 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2367 //Hash for am_Availability_e
2369 struct hash<org::genivi::am::am_Availability_e> {
2370 inline size_t operator()(const org::genivi::am::am_Availability_e& am_Availability_e) const {
2371 return static_cast<int32_t>(am_Availability_e);
2374 //Hash for am_HotSink_e
2376 struct hash<org::genivi::am::am_HotSink_e> {
2377 inline size_t operator()(const org::genivi::am::am_HotSink_e& am_HotSink_e) const {
2378 return static_cast<int32_t>(am_HotSink_e);
2381 //Hash for am_ConnectionState_e
2383 struct hash<org::genivi::am::am_ConnectionState_e> {
2384 inline size_t operator()(const org::genivi::am::am_ConnectionState_e& am_ConnectionState_e) const {
2385 return static_cast<int32_t>(am_ConnectionState_e);
2388 //Hash for am_DomainState_e
2390 struct hash<org::genivi::am::am_DomainState_e> {
2391 inline size_t operator()(const org::genivi::am::am_DomainState_e& am_DomainState_e) const {
2392 return static_cast<int32_t>(am_DomainState_e);
2395 //Hash for am_EarlyDataType_e
2397 struct hash<org::genivi::am::am_EarlyDataType_e> {
2398 inline size_t operator()(const org::genivi::am::am_EarlyDataType_e& am_EarlyDataType_e) const {
2399 return static_cast<int32_t>(am_EarlyDataType_e);
2402 //Hash for am_Error_e
2404 struct hash<org::genivi::am::am_Error_e> {
2405 inline size_t operator()(const org::genivi::am::am_Error_e& am_Error_e) const {
2406 return static_cast<int32_t>(am_Error_e);
2409 //Hash for am_MuteState_e
2411 struct hash<org::genivi::am::am_MuteState_e> {
2412 inline size_t operator()(const org::genivi::am::am_MuteState_e& am_MuteState_e) const {
2413 return static_cast<int32_t>(am_MuteState_e);
2416 //Hash for am_InterruptState_e
2418 struct hash<org::genivi::am::am_InterruptState_e> {
2419 inline size_t operator()(const org::genivi::am::am_InterruptState_e& am_InterruptState_e) const {
2420 return static_cast<int32_t>(am_InterruptState_e);
2423 //Hash for am_VolumeType_e
2425 struct hash<org::genivi::am::am_VolumeType_e> {
2426 inline size_t operator()(const org::genivi::am::am_VolumeType_e& am_VolumeType_e) const {
2427 return static_cast<int32_t>(am_VolumeType_e);
2430 //Hash for am_NotificationStatus_e
2432 struct hash<org::genivi::am::am_NotificationStatus_e> {
2433 inline size_t operator()(const org::genivi::am::am_NotificationStatus_e& am_NotificationStatus_e) const {
2434 return static_cast<int32_t>(am_NotificationStatus_e);
2437 //Hash for am_Handle_e
2439 struct hash<org::genivi::am::am_Handle_e> {
2440 inline size_t operator()(const org::genivi::am::am_Handle_e& am_Handle_e) const {
2441 return static_cast<int32_t>(am_Handle_e);
2444 //Hash for am_SourceState_e
2446 struct hash<org::genivi::am::am_SourceState_e> {
2447 inline size_t operator()(const org::genivi::am::am_SourceState_e& am_SourceState_e) const {
2448 return static_cast<int32_t>(am_SourceState_e);
2451 //Hash for am_RoutingReady_e
2453 struct hash<org::genivi::am::am_RoutingReady_e> {
2454 inline size_t operator()(const org::genivi::am::am_RoutingReady_e& am_RoutingReady_e) const {
2455 return static_cast<int32_t>(am_RoutingReady_e);
2460 #endif // ORG_GENIVI_am_H_