2 * This file was generated by the CommonAPI Generators.
3 * Used org.genivi.commonapi.core 2.1.2.201309301424.
4 * Used org.franca.core 0.8.9.201308271211.
6 * Copyright (c) 2012 BMW
8 * \author Aleksandar Donchev, aleksander.donchev@partner.bmw.de BMW 2013
11 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction,
12 * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
13 * subject to the following conditions:
14 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
17 * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18 * For further information see http://www.genivi.org/.
22 * @author Christian Linke
24 #ifndef ORG_GENIVI_am_H_
25 #define ORG_GENIVI_am_H_
29 #if !defined (COMMONAPI_INTERNAL_COMPILATION)
30 #define COMMONAPI_INTERNAL_COMPILATION
33 #include <CommonAPI/InputStream.h>
34 #include <CommonAPI/OutputStream.h>
35 #include <CommonAPI/SerializableStruct.h>
36 #include <CommonAPI/SerializableVariant.h>
37 #include <CommonAPI/types.h>
43 #undef COMMONAPI_INTERNAL_COMPILATION
55 typedef uint16_t am_sourceID_t;
62 typedef uint16_t am_mainConnectionID_t;
64 * offset time that is introduced in milli seconds.
67 * offset time that is introduced in milli seconds.
69 typedef int16_t am_timeSync_t;
76 typedef uint16_t am_sinkID_t;
78 * represents the connection state
80 enum class am_ConnectionState_e: int32_t {
83 * This means the connection is just building up
87 * the connection is ready to be used
91 * the connection is in the course to be knocked down
95 * only relevant for connectionStatechanged. Is send after the connection was
100 * this means the connection is still build up but unused at the moment
106 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
107 struct am_ConnectionState_eComparator;
109 * this type holds all information of connections relevant to the HMI
112 * this type holds all information of connections relevant to the HMI
114 struct am_MainConnectionType_s: CommonAPI::SerializableStruct {
116 * the ID of the mainconnection
118 am_mainConnectionID_t mainConnectionID;
120 * the sourceID where the connection starts
122 am_sourceID_t sourceID;
124 * the sinkID where the connection ends
128 * the delay of the mainconnection
132 * the current connection state
134 am_ConnectionState_e connectionState;
136 am_MainConnectionType_s() = default;
137 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);
140 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
141 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
143 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
144 typeOutputStream.writeUInt16Type();
145 typeOutputStream.writeUInt16Type();
146 typeOutputStream.writeUInt16Type();
147 typeOutputStream.writeInt16Type();
148 typeOutputStream.writeInt32Type();
151 typedef std::vector<am_MainConnectionType_s> am_MainConnection_L;
153 * product specific identifier of property
156 * product specific identifier of property
158 typedef uint16_t am_ClassProperty_pe;
160 * describes class properties
163 * describes class properties
165 struct am_ClassProperty_s: CommonAPI::SerializableStruct {
167 * the property as enum
169 am_ClassProperty_pe classProperty;
171 * the value of the property
175 am_ClassProperty_s() = default;
176 am_ClassProperty_s(const am_ClassProperty_pe& classProperty, const int16_t& value);
179 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
180 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
182 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
183 typeOutputStream.writeUInt16Type();
184 typeOutputStream.writeInt16Type();
187 typedef std::vector<am_ClassProperty_s> am_ClassProperty_L;
188 typedef uint16_t am_sinkClass_t;
190 * struct describing sinkclasses
193 * struct describing sinkclasses
195 struct am_SinkClass_s: CommonAPI::SerializableStruct {
197 * the ID of the sinkClass
199 am_sinkClass_t sinkClassID;
201 * the name of the sinkClass - must be unique in the system
205 * the list of the class properties. These are pairs of a project specific enum
206 * describing the type of the value and an integer holding the real value.
208 am_ClassProperty_L listClassProperties;
210 am_SinkClass_s() = default;
211 am_SinkClass_s(const am_sinkClass_t& sinkClassID, const std::string& name, const am_ClassProperty_L& listClassProperties);
214 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
215 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
217 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
218 typeOutputStream.writeUInt16Type();
219 typeOutputStream.writeStringType();
220 typeOutputStream.beginWriteVectorType();
221 typeOutputStream.beginWriteStructType();
222 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
223 typeOutputStream.endWriteStructType();
224 typeOutputStream.endWriteVectorType();
227 typedef std::vector<am_SinkClass_s> am_SinkClass_L;
229 * This is the volume presented on the command interface. It is in the duty of the
230 * Controller to change the volumes given here into meaningful values on the
232 The range of this type is customer specific.
235 * This is the volume presented on the command interface. It is in the duty of the
236 * Controller to change the volumes given here into meaningful values on the
238 The range of this type is customer specific.
240 typedef int16_t am_mainVolume_t;
242 * This project specific value gives the information about reason for reason for
246 * This project specific value gives the information about reason for reason for
249 typedef uint16_t am_AvailabilityReason_pe;
251 * with the help of this enum, sinks and sources can report their availability
254 enum class am_Availability_e: int32_t {
260 * The source / sink is available
264 * the source / sink is not available
270 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
271 struct am_Availability_eComparator;
272 enum class am_MuteState_e: int32_t {
278 * the source / sink is muted
282 * the source / sink is unmuted
288 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
289 struct am_MuteState_eComparator;
291 * this describes the availability of a sink or a source together with the latest
295 * this describes the availability of a sink or a source together with the latest
298 struct am_Availability_s: CommonAPI::SerializableStruct {
300 * the current availability state
302 am_Availability_e availability;
304 * the reason for the last change. This can be used to trigger events that deal
305 * with state changes.
307 am_AvailabilityReason_pe availabilityReason;
309 am_Availability_s() = default;
310 am_Availability_s(const am_Availability_e& availability, const am_AvailabilityReason_pe& availabilityReason);
313 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
314 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
316 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
317 typeOutputStream.writeInt32Type();
318 typeOutputStream.writeUInt16Type();
322 * this type holds all information of sinks relevant to the HMI
325 * this type holds all information of sinks relevant to the HMI
327 struct am_SinkType_s: CommonAPI::SerializableStruct {
329 * This is the ID of the sink, it is unique in the system. There are 2 ways, ID
330 * can be created: either it is assigned during the registration process (in a
331 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
332 * is a fixed (the project has to ensure the uniqueness of the ID).
336 * The name of the sink. Must be unique in the whole system.
340 * This attribute reflects the availability of the sink. There are several reasons
341 * why a sink could be not available for the moment: for example the shutdown of
342 * a sink because of overtemperature or over- & undervoltage. The
343 * availability consists of two pieces of information:
346 * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN
348 * AvailabilityReason: this informs about the last reason for a change in
349 * availability. The reasons itself are product specific.
351 am_Availability_s availability;
353 * This is the representation of the Volume for the commandInterface. It is used
354 * by the HMI to set the volume of a sink, the AudioManagerController has to
355 * transform this into real source and sink volumes.
357 am_mainVolume_t volume;
358 am_MuteState_e muteState;
360 * The sinkClassID references to a sinkClass. With the help of classification,
361 * rules can be setup to define the system behaviour.
363 am_sinkClass_t sinkClassID;
365 am_SinkType_s() = default;
366 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);
369 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
370 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
372 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
373 typeOutputStream.writeUInt16Type();
374 typeOutputStream.writeStringType();
375 typeOutputStream.beginWriteStructType();
376 typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type();
377 typeOutputStream.endWriteStructType();
378 typeOutputStream.writeInt16Type();
379 typeOutputStream.writeInt32Type();
380 typeOutputStream.writeUInt16Type();
383 typedef std::vector<am_SinkType_s> am_SinkType_L;
384 typedef uint16_t am_sourceClass_t;
386 * struct describing source classes
389 * struct describing source classes
391 struct am_SourceClass_s: CommonAPI::SerializableStruct {
395 am_sourceClass_t sourceClassID;
397 * the name of the sourceClass - must be unique in the system
401 * the list of the class properties. These are pairs of a project specific enum
402 * describing the type of the value and an integer holding the real value.
404 am_ClassProperty_L listClassProperties;
406 am_SourceClass_s() = default;
407 am_SourceClass_s(const am_sourceClass_t& sourceClassID, const std::string& name, const am_ClassProperty_L& listClassProperties);
410 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
411 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
413 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
414 typeOutputStream.writeUInt16Type();
415 typeOutputStream.writeStringType();
416 typeOutputStream.beginWriteVectorType();
417 typeOutputStream.beginWriteStructType();
418 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
419 typeOutputStream.endWriteStructType();
420 typeOutputStream.endWriteVectorType();
423 typedef std::vector<am_SourceClass_s> am_SourceClass_L;
425 * this type holds all information of sources relevant to the HMI
428 * this type holds all information of sources relevant to the HMI
430 struct am_SourceType_s: CommonAPI::SerializableStruct {
432 * This is the ID of the source, it is unique in the system. There are 2 ways, ID
433 * can be created: either it is assigned during the registration process (in a
434 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
435 * is a fixed (the project has to ensure the uniqueness of the ID).
437 am_sourceID_t sourceID;
439 * The name of the source. Must be unique in the whole system.
443 * the availability of the source
445 am_Availability_s availability;
447 * the sourceClassID, indicates the class the source is in. This information can
448 * be used by the Controller to implement different behaviour for different
451 am_sourceClass_t sourceClassID;
453 am_SourceType_s() = default;
454 am_SourceType_s(const am_sourceID_t& sourceID, const std::string& name, const am_Availability_s& availability, const am_sourceClass_t& sourceClassID);
457 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
458 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
460 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
461 typeOutputStream.writeUInt16Type();
462 typeOutputStream.writeStringType();
463 typeOutputStream.beginWriteStructType();
464 typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type();
465 typeOutputStream.endWriteStructType();
466 typeOutputStream.writeUInt16Type();
469 typedef std::vector<am_SourceType_s> am_SourceType_L;
471 * describes the different system properties. Project specific
474 * describes the different system properties. Project specific
476 typedef uint16_t am_SystemPropertyType_pe;
478 * struct describing system properties
481 * struct describing system properties
483 struct am_SystemProperty_s: CommonAPI::SerializableStruct {
485 * the type that is set
487 am_SystemPropertyType_pe type;
493 am_SystemProperty_s() = default;
494 am_SystemProperty_s(const am_SystemPropertyType_pe& type, const int16_t& value);
497 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
498 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
500 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
501 typeOutputStream.writeUInt16Type();
502 typeOutputStream.writeInt16Type();
505 typedef std::vector<am_SystemProperty_s> am_SystemProperty_L;
512 typedef uint16_t am_connectionID_t;
513 typedef std::vector<am_connectionID_t> am_ConnectionID_L;
515 * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and
516 * maximum can be limited by actual project.
519 * The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and
520 * maximum can be limited by actual project.
522 typedef int16_t am_volume_t;
524 * Project specific sound properties.
527 * Project specific sound properties.
529 typedef uint16_t am_SoundPropertyType_pe;
531 * This enum characterizes the data of the EarlyData_t
533 enum class am_EarlyDataType_e: int32_t {
541 ED_SOURCE_VOLUME = 1,
549 ED_SOURCE_PROPERTY = 3,
553 ED_SINK_PROPERTY = 4,
557 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
558 struct am_EarlyDataType_eComparator;
560 * struct describing the sound property
563 * struct describing the sound property
565 struct am_SoundProperty_s: CommonAPI::SerializableStruct {
567 * the type of the property - a project specific enum
569 am_SoundPropertyType_pe type;
571 * the actual value of the property
575 am_SoundProperty_s() = default;
576 am_SoundProperty_s(const am_SoundPropertyType_pe& type, const int16_t& value);
579 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
580 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
582 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
583 typeOutputStream.writeUInt16Type();
584 typeOutputStream.writeInt16Type();
588 * data type depends of am_EarlyDataType_e:
589 volume_t in case of ED_SOURCE_VOLUME,
591 soundProperty_t in case of ED_SOURCE_PROPERTY,
595 * data type depends of am_EarlyDataType_e:
596 volume_t in case of ED_SOURCE_VOLUME,
598 soundProperty_t in case of ED_SOURCE_PROPERTY,
601 typedef CommonAPI::Variant<am_volume_t, am_SoundProperty_s> am_EarlyData_u;
603 * data type depends of am_EarlyDataType_e:
604 sourceID in case of ED_SOURCE_VOLUME,
606 sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY
609 * data type depends of am_EarlyDataType_e:
610 sourceID in case of ED_SOURCE_VOLUME,
612 sinkID in case of ED_SINK_VOLUME, ED_SINK_PROPERTY
614 typedef CommonAPI::Variant<am_sinkID_t, am_sourceID_t> am_DataType_u;
615 struct am_EarlyData_s: CommonAPI::SerializableStruct {
616 am_EarlyDataType_e type;
617 am_DataType_u sinksource;
620 am_EarlyData_s() = default;
621 am_EarlyData_s(const am_EarlyDataType_e& type, const am_DataType_u& sinksource, const am_EarlyData_u& data);
624 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
625 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
627 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
628 typeOutputStream.writeInt32Type();
629 typeOutputStream.writeVariantType();
630 typeOutputStream.writeVariantType();
633 typedef std::vector<am_EarlyData_s> am_EarlyData_L;
635 * Here are all SoundProperties that can be set via the CommandInterface. Product
639 * Here are all SoundProperties that can be set via the CommandInterface. Product
642 typedef uint16_t am_MainSoundPropertyType_pe;
644 * struct describung mainsound property
647 * struct describung mainsound property
649 struct am_MainSoundProperty_s: CommonAPI::SerializableStruct {
651 * the type of the property
653 am_MainSoundPropertyType_pe type;
659 am_MainSoundProperty_s() = default;
660 am_MainSoundProperty_s(const am_MainSoundPropertyType_pe& type, const int16_t& value);
663 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
664 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
666 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
667 typeOutputStream.writeUInt16Type();
668 typeOutputStream.writeInt16Type();
671 typedef std::vector<am_MainSoundProperty_s> am_MainSoundProperty_L;
673 * gives the type of the Notification.
676 * gives the type of the Notification.
678 typedef uint16_t am_NotificationType_pe;
679 enum class am_NotificationStatus_e: int32_t {
682 * No notification, the function is turned off
686 * Periodic notifications are sent out. The period in ms is given by
687 * am_NotificationParameter
691 * The notification is sent out when the minimum given by am_NotificationParameter
696 * The notification is sent out when the maximum given by am_NotificationParameter
701 * The notification is sent out when a change happened. The Resolution of the
702 * change is defined by am_NotificationParameter.
708 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
709 struct am_NotificationStatus_eComparator;
711 * This struct holds information about the configuration for notifications
714 * This struct holds information about the configuration for notifications
716 struct am_NotificationConfiguration_s: CommonAPI::SerializableStruct {
718 * The notification type of the notification
720 am_NotificationType_pe type;
722 * The Notification status. This can be periodic, min/max value based or even off
725 am_NotificationStatus_e status;
727 * This gives additional information to the notification status.
729 * between notification status and the value:
730 NS_PERIODIC - the period in
732 NS_MINIMUM - the minimum value that triggers the notification
734 * - the maximum value that triggers the notifcation
735 NS_CHANGE - the resolution
736 * of the change value
740 am_NotificationConfiguration_s() = default;
741 am_NotificationConfiguration_s(const am_NotificationType_pe& type, const am_NotificationStatus_e& status, const int16_t& parameter);
744 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
745 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
747 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
748 typeOutputStream.writeUInt16Type();
749 typeOutputStream.writeInt32Type();
750 typeOutputStream.writeInt16Type();
753 typedef std::vector<am_NotificationConfiguration_s> am_NotificationConfiguration_L;
760 typedef uint16_t am_domainID_t;
762 * This project specific value classifies the format in which data is exchanged
763 * within a connection.
766 * This project specific value classifies the format in which data is exchanged
767 * within a connection.
769 typedef uint16_t am_ConnectionFormat_pe;
771 * This represents one "hopp" in a route
774 * This represents one "hopp" in a route
776 struct am_RoutingElement_s: CommonAPI::SerializableStruct {
780 am_sourceID_t sourceID;
786 * the domainID the routeElement is in
788 am_domainID_t domainID;
790 * the connectionformat that is used for the route
792 am_ConnectionFormat_pe connectionFormat;
794 am_RoutingElement_s() = default;
795 am_RoutingElement_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_domainID_t& domainID, const am_ConnectionFormat_pe& connectionFormat);
798 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
799 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
801 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
802 typeOutputStream.writeUInt16Type();
803 typeOutputStream.writeUInt16Type();
804 typeOutputStream.writeUInt16Type();
805 typeOutputStream.writeUInt16Type();
808 typedef std::vector<am_RoutingElement_s> am_RoutingElement_L;
809 typedef std::vector<am_SoundProperty_s> am_SoundProperty_L;
816 typedef int16_t am_time_t;
818 * For products, different ramp types can be defined here.
820 * responsibility of the product to make sure that the routing plugins are aware
821 * of the ramp types used.
824 * For products, different ramp types can be defined here.
826 * responsibility of the product to make sure that the routing plugins are aware
827 * of the ramp types used.
829 typedef uint16_t am_RampType_pe;
831 * This datatype determines if a sourceID or a sinkID is used in the union
834 enum class am_VolumeType_e: int32_t {
837 * the following type is a sink
841 * the following type is a source
847 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
848 struct am_VolumeType_eComparator;
850 * This types describe a mixed description for source and sinks volumes.
853 * This types describe a mixed description for source and sinks volumes.
855 struct am_Volumes_s: CommonAPI::SerializableStruct {
857 * describes the type of the volume: source or sink.
859 am_VolumeType_e volumeType;
861 * either sourceID or sinkID
863 am_DataType_u volumeID;
869 * the ramp that shall be driven
873 * the time for the ramp
877 am_Volumes_s() = default;
878 am_Volumes_s(const am_VolumeType_e& volumeType, const am_DataType_u& volumeID, const am_volume_t& volume, const am_RampType_pe& ramp, const am_time_t& time);
881 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
882 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
884 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
885 typeOutputStream.writeInt32Type();
886 typeOutputStream.writeVariantType();
887 typeOutputStream.writeInt16Type();
888 typeOutputStream.writeUInt16Type();
889 typeOutputStream.writeInt16Type();
892 typedef std::vector<am_Volumes_s> am_Volumes_L;
893 typedef std::vector<am_ConnectionFormat_pe> am_ConnectionFormat_L;
894 typedef bool am_bool_t;
895 typedef std::vector<am_bool_t> am_Convertion_L;
902 typedef uint16_t am_gatewayID_t;
909 typedef uint16_t am_crossfaderID_t;
916 typedef uint16_t am_speed_t;
918 * describes the active sink of a crossfader.
920 enum class am_HotSink_e: int32_t {
934 * the crossfader is in the transition state
940 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
941 struct am_HotSink_eComparator;
942 enum class am_DomainState_e: int32_t {
948 * the domain is controlled by the daemon
952 * the domain is independent starting up
954 DS_INDEPENDENT_STARTUP = 1,
956 * the domain is independent running down
958 DS_INDEPENDENT_RUNDOWN = 2,
962 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
963 struct am_DomainState_eComparator;
965 * the errors of the audiomanager. All possible errors are in here. This enum is
966 * used widely as return parameter.
968 enum class am_Error_e: int32_t {
970 * no error - positive reply
986 * a database error occurred
988 E_DATABASE_ERROR = 4,
990 * the desired object already exists
992 E_ALREADY_EXISTS = 5,
998 * the desired action is not possible
1002 * the desired object is non existent
1006 * the asynchronous action was aborted
1010 * This error is returned in case a connect is issued with a connectionFormat that
1011 * cannot be selected for the connection. This could be either due to the
1012 * capabilities of a source or a sink or gateway compatibilities for example
1014 E_WRONG_FORMAT = 10,
1018 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1019 struct am_Error_eComparator;
1020 enum class am_InterruptState_e: int32_t {
1026 * the interrupt state is off - no interrupt
1030 * the interrupt state is interrupted - the interrupt is active
1036 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1037 struct am_InterruptState_eComparator;
1039 * This enumeration is used to define the type of the action that is correlated to
1042 enum class am_Handle_e: int32_t {
1046 H_SETSOURCESTATE = 3,
1047 H_SETSINKVOLUME = 4,
1048 H_SETSOURCEVOLUME = 5,
1049 H_SETSINKSOUNDPROPERTY = 6,
1050 H_SETSOURCESOUNDPROPERTY = 7,
1051 H_SETSINKSOUNDPROPERTIES = 8,
1052 H_SETSOURCESOUNDPROPERTIES = 9,
1055 H_SETSINKNOTIFICATION = 12,
1056 H_SETSOURCENOTIFICATION = 13,
1060 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1061 struct am_Handle_eComparator;
1063 * The source state reflects the state of the source
1065 enum class am_SourceState_e: int32_t {
1068 * The source can be activly heared
1072 * The source cannot be heared
1076 * The source is paused. Meaning it cannot be heared but should be prepared to
1083 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1084 struct am_SourceState_eComparator;
1086 * This enum describes the ready state of the routing part
1088 enum class am_RoutingReady_e: int32_t {
1094 // Definition of a comparator still is necessary for GCC 4.4.1, topic is fixed since 4.5.1
1095 struct am_RoutingReady_eComparator;
1097 * a list of routing elements that lead from source to sink
1100 * a list of routing elements that lead from source to sink
1102 struct am_Route_s: CommonAPI::SerializableStruct {
1104 * the sourceID where the route starts
1106 am_sourceID_t sourceID;
1108 * the sinkID where the route ends
1112 * the actual route as list of routing elements
1114 am_RoutingElement_L route;
1116 am_Route_s() = default;
1117 am_Route_s(const am_sourceID_t& sourceID, const am_sinkID_t& sinkID, const am_RoutingElement_L& route);
1120 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1121 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1123 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1124 typeOutputStream.writeUInt16Type();
1125 typeOutputStream.writeUInt16Type();
1126 typeOutputStream.beginWriteVectorType();
1127 typeOutputStream.beginWriteStructType();
1128 typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();typeOutputStream.writeUInt16Type();
1129 typeOutputStream.endWriteStructType();
1130 typeOutputStream.endWriteVectorType();
1134 * This struct describes the attribiutes of a crossfader.
1137 * This struct describes the attribiutes of a crossfader.
1139 struct am_Crossfader_s: CommonAPI::SerializableStruct {
1141 * This is the ID of the crossfader, it is unique in the system. There are 2 ways,
1142 * ID can be created: either it is assigned during the registration process (in a
1143 * dynamic context, uniqueness will be ensured by the AudioManager daemon), or it
1144 * is a fixed (the project has to ensure the uniqueness of the ID).
1146 am_crossfaderID_t crossfaderID;
1148 * The name of the crossfader. Must be unique in the whole system.
1152 * The sinkID of the SinkA. Sinks shall be registered before registering the
1155 am_sinkID_t sinkID_A;
1157 * The sinkID of the SinkB. Sinks shall be registered before registering the
1160 am_sinkID_t sinkID_B;
1162 * The sourceID of the crossfader source. The source shall be registered before
1165 am_sourceID_t sourceID;
1167 * This enum can have 3 states:
1169 HS_SINKA sinkA is the current hot one,
1170 * sinkB is not audible
1171 HS_SINKB sinkB is the current hot one, sinkB is not
1173 HS_INTERMEDIATE the fader is stuck in between a cross-fading
1174 * action. This could be due to an abort or an error. Before using the
1175 * crossfader, it must be set to either HS_SINKA or HS_SINKB.
1177 am_HotSink_e hotSink;
1179 am_Crossfader_s() = default;
1180 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);
1183 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1184 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1186 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1187 typeOutputStream.writeUInt16Type();
1188 typeOutputStream.writeStringType();
1189 typeOutputStream.writeUInt16Type();
1190 typeOutputStream.writeUInt16Type();
1191 typeOutputStream.writeUInt16Type();
1192 typeOutputStream.writeInt32Type();
1196 * This struct describes the attributes of a gateway.
1199 * This struct describes the attributes of a gateway.
1201 struct am_Gateway_s: CommonAPI::SerializableStruct {
1203 * This is the ID of the gateway, it is unique in the system. There are 2 ways, ID
1204 * can be created: either it is assigned during the registration process (in a
1205 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
1206 * is a fixed (the project has to ensure the uniqueness of the ID).
1208 am_gatewayID_t gatewayID;
1210 * The name of the gateway. Must be unique in the whole system.
1214 * The sinkID of the gateway sink-end. The sink is a full blown sink with
1215 * connectionFormats, sinkClassIDs etc... It makes sense to register the sinks of
1216 * a gateway as non-visible. Care needs to be taken that the connectionsFormats
1217 * match with the ones in the conversionMatrix. If the sink is located in the
1218 * controllingDomain, the ID needs to be retrieved by registering the sink before
1219 * registering the gateway. In case the sink is in a different domain, the ID
1220 * needs to be retrieved via peeking.
1224 * The sourceID of the gateway sink-end. The sink is a full blown source with
1225 * connectionFormats, sinkClassIDs etc... It makes sense to register the sources
1226 * of a gateway as non-visible. Care needs to be taken that the
1227 * connectionsFormats match with the ones in the conversionMatrix. If the source
1228 * is located in the controllingDomain, the ID needs to be retrieved by
1229 * registering the source before registering the gateway. In case the source is
1230 * in a different domain, the ID needs to be retrieved via peeking.
1232 am_sourceID_t sourceID;
1234 * The ID of the sink. If the domain is the same like the controlling domain, the
1235 * ID is known due to registration. If the domain is different, the ID needs to
1236 * be retrieved via peeking.
1238 am_domainID_t domainSinkID;
1240 * The ID of the source. If the domain is the same like the controlling domain,
1241 * the ID is known due to registration. If the domain is different, the ID needs
1242 * to be retrieved via peeking.
1244 am_domainID_t domainSourceID;
1246 * This is the ID of the domain that registers the gateway.
1248 am_domainID_t controlDomainID;
1250 * This is the list of available formats on the source side of the gateway. It is
1251 * not defined during the gateway registration but copied from the source
1254 am_ConnectionFormat_L listSourceFormats;
1256 * This is the list of available formats on the sink side of the gateway. It is
1257 * not defined during the gateway registration but copied from the sink
1260 am_ConnectionFormat_L listSinkFormats;
1262 * This is matrix holding information about the conversion capability of the
1263 * gateway, it's length is defined by the length(listSinkFormats) x
1264 * length(listSourceFormats).
1265 If a SinkFormat can be converted into a
1266 * SourceFormat, the vector will hold a 1, if no conversion is possible, a
1268 The data is stored row orientated, where the rows are related to the
1269 * sinksFormats and the columns to the sourceFormats. The first value will hold
1270 * the conversion information from the first sourceFormat to the first sinkFormat
1271 * for example and the seventh value the information about the 3rd sinkFormat to
1272 * the 1st sourceFormat in case we would have 3 sourceFormats.
1274 am_Convertion_L convertionMatrix;
1276 am_Gateway_s() = default;
1277 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);
1280 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1281 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1283 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1284 typeOutputStream.writeUInt16Type();
1285 typeOutputStream.writeStringType();
1286 typeOutputStream.writeUInt16Type();
1287 typeOutputStream.writeUInt16Type();
1288 typeOutputStream.writeUInt16Type();
1289 typeOutputStream.writeUInt16Type();
1290 typeOutputStream.writeUInt16Type();
1291 typeOutputStream.beginWriteVectorType();
1292 typeOutputStream.writeUInt16Type();
1293 typeOutputStream.endWriteVectorType();
1294 typeOutputStream.beginWriteVectorType();
1295 typeOutputStream.writeUInt16Type();
1296 typeOutputStream.endWriteVectorType();
1297 typeOutputStream.beginWriteVectorType();
1298 typeOutputStream.writeBoolType();
1299 typeOutputStream.endWriteVectorType();
1303 * a handle is used for asynchronous operations and is uniquely assigned for each
1304 * of this operations
1307 * a handle is used for asynchronous operations and is uniquely assigned for each
1308 * of this operations
1310 struct am_Handle_s: CommonAPI::SerializableStruct {
1314 am_Handle_e handleType;
1316 * the handle as value
1320 am_Handle_s() = default;
1321 am_Handle_s(const am_Handle_e& handleType, const uint16_t& handle);
1324 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1325 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1327 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1328 typeOutputStream.writeInt32Type();
1329 typeOutputStream.writeUInt16Type();
1333 * struct that holds attribiutes of a mainconnection
1336 * struct that holds attribiutes of a mainconnection
1338 struct am_MainConnection_s: CommonAPI::SerializableStruct {
1342 am_mainConnectionID_t mainConnectionID;
1344 * the current connection state
1346 am_ConnectionState_e connectionState;
1354 am_sourceID_t sourceID;
1356 * the delay of the connection
1358 am_timeSync_t delay;
1360 * the list of sub connection IDs the mainconnection consists of
1362 am_ConnectionID_L listConnectionID;
1364 am_MainConnection_s() = default;
1365 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);
1368 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1369 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1371 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1372 typeOutputStream.writeUInt16Type();
1373 typeOutputStream.writeInt32Type();
1374 typeOutputStream.writeUInt16Type();
1375 typeOutputStream.writeUInt16Type();
1376 typeOutputStream.writeInt16Type();
1377 typeOutputStream.beginWriteVectorType();
1378 typeOutputStream.writeUInt16Type();
1379 typeOutputStream.endWriteVectorType();
1383 * This struct holds the payload of a notification.
1386 * This struct holds the payload of a notification.
1388 struct am_NotificationPayload_s: CommonAPI::SerializableStruct {
1390 * This defines the notification type
1392 am_NotificationType_pe type;
1394 * This is finally the value of the notification. It's meaning depends on the
1399 am_NotificationPayload_s() = default;
1400 am_NotificationPayload_s(const am_NotificationType_pe& type, const int16_t& value);
1403 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1404 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1406 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1407 typeOutputStream.writeUInt16Type();
1408 typeOutputStream.writeInt16Type();
1412 * This struct describes the attribiutes of a sink
1415 * This struct describes the attribiutes of a sink
1417 struct am_Sink_s: CommonAPI::SerializableStruct {
1419 * This is the ID of the sink, it is unique in the system. There are 2 ways, ID
1420 * can be created: either it is assigned during the registration process (in a
1421 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
1422 * is a fixed (the project has to ensure the uniqueness of the ID).
1426 * The name of the sink. Must be unique in the whole system.
1430 * The domainID is the domain the sink belongs to. A sink can only be in one
1433 am_domainID_t domainID;
1435 * The sinkClassID references to a sinkClass. With the help of classification,
1436 * rules can be setup to define the system behaviour.
1438 am_sinkClass_t sinkClassID;
1440 * This is the volume of the sink. It is set by the AudioManagerController.
1444 * This Boolean flag indicates whether a sink is visible to the commandInterface
1445 * or not. If the User must have the possibility to choose the source in the HMI,
1446 * it must be visible. But there are also good reasons for invisible sinks, for
1447 * example if the sink is part of a crossfader or gateway. HMI relevant changes
1448 * in visible sinks will be automatically reported by the daemon to the
1453 * This attribute reflects the availability of the sink. There are several reasons
1454 * why a sink could be not available for the moment: for example the shutdown of
1455 * a sink because of overtemperature or over- & undervoltage. The
1456 * availability consists of two pieces of information:
1459 * status itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN
1461 * AvailabilityReason: this informs about the last reason for a change in
1462 * availability. The reasons itself are product specific.
1464 am_Availability_s available;
1466 * This attribute reflects the muteState of the sink. The information is not the
1467 * "real" state of the sink, but the HMI representation for he commandInterface
1468 * controlled by the AudioManagerController.
1470 am_MuteState_e muteState;
1472 * This is the representation of the Volume for the commandInterface. It is used
1473 * by the HMI to set the volume of a sink, the AudioManagerController has to
1474 * transform this into real source and sink volumes.
1476 am_mainVolume_t mainVolume;
1478 * This is the list of soundProperties, that the sink is capable of. The
1479 * soundProperties itself are project specific. For sinks, a possible
1480 * soundProperty could be for example settings.
1482 am_SoundProperty_L listSoundProperties;
1484 * This list holds information about the formats that the Source is capable of
1485 * supporting when delivering audio.
1487 am_ConnectionFormat_L listConnectionFormats;
1489 * This is the list of the available mainSoundProperties. The principle is the
1490 * same than with soundProperties, but they are only visible to the
1493 am_MainSoundProperty_L listMainSoundProperties;
1495 * This is the list of the MainNotificationConfigurations. These notifications
1496 * work on the level of command interface.
1498 am_NotificationConfiguration_L listMainNotificationConfigurations;
1500 * This is the list of the NotificationConfigurations. These notifications work on
1501 * the level of RoutingPlugins.
1503 am_NotificationConfiguration_L listNotificationConfigurations;
1505 am_Sink_s() = default;
1506 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);
1509 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1510 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1512 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1513 typeOutputStream.writeUInt16Type();
1514 typeOutputStream.writeStringType();
1515 typeOutputStream.writeUInt16Type();
1516 typeOutputStream.writeUInt16Type();
1517 typeOutputStream.writeInt16Type();
1518 typeOutputStream.writeBoolType();
1519 typeOutputStream.beginWriteStructType();
1520 typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type();
1521 typeOutputStream.endWriteStructType();
1522 typeOutputStream.writeInt32Type();
1523 typeOutputStream.writeInt16Type();
1524 typeOutputStream.beginWriteVectorType();
1525 typeOutputStream.beginWriteStructType();
1526 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
1527 typeOutputStream.endWriteStructType();
1528 typeOutputStream.endWriteVectorType();
1529 typeOutputStream.beginWriteVectorType();
1530 typeOutputStream.writeUInt16Type();
1531 typeOutputStream.endWriteVectorType();
1532 typeOutputStream.beginWriteVectorType();
1533 typeOutputStream.beginWriteStructType();
1534 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
1535 typeOutputStream.endWriteStructType();
1536 typeOutputStream.endWriteVectorType();
1537 typeOutputStream.beginWriteVectorType();
1538 typeOutputStream.beginWriteStructType();
1539 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type();
1540 typeOutputStream.endWriteStructType();
1541 typeOutputStream.endWriteVectorType();
1542 typeOutputStream.beginWriteVectorType();
1543 typeOutputStream.beginWriteStructType();
1544 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type();
1545 typeOutputStream.endWriteStructType();
1546 typeOutputStream.endWriteVectorType();
1550 * This struct describes the attribiutes of a source
1553 * This struct describes the attribiutes of a source
1555 struct am_Source_s: CommonAPI::SerializableStruct {
1557 * This is the ID of the source, it is unique in the system. There are 2 ways, ID
1558 * can be created: either it is assigned during the registration process (in a
1559 * dynamic context, uniqueness will be ensured by the AudioManagerDaemon), or it
1560 * is a fixed (the project has to ensure the uniqueness of the ID).
1562 am_sourceID_t sourceID;
1564 * The domainID is the domain the source belongs to. A source can only be in one
1567 am_domainID_t domainID;
1569 * The name of the source. Must be unique in the whole system.
1573 * the sourceClassID, indicates the class the source is in. This information can
1574 * be used by the Controller to implement different behaviour for different
1577 am_sourceClass_t sourceClassID;
1579 * The source state is an indication towards the source if it is actively heard or
1580 * not. The source can use this information to implement features like automatic
1581 * spin down of CD's in case the CD is not the active source or AF following of a
1582 * tuner that is not actively heard. The source state is set by the
1583 * AudioManagerController.There are 3 possible states:
1587 SS_OFF: the source is off
1588 SS_PAUSED: the source is paused
1591 am_SourceState_e sourceState;
1593 * This is the volume of the source. It is set by the AudioManagerController. It
1594 * is used to adopt different audiolevels in a system and mixing of sources (e.g.
1595 * navigation hints & music).
1599 * This Boolean flag indicates whether a source is visible to the commandInterface
1600 * or not. If the User must have the possibility to choose the source in the HMI,
1601 * it must be visible. But there are also good reasons for invisible sources, for
1602 * example if the source is part of a crossfader or gateway. HMI relevant changes
1603 * in visible sources will be automatically reported by the daemon to the
1608 * This attribute reflects the availability of the source. There are several
1609 * reasons why a source could be not available for the moment. For example a CD
1610 * player which has no CD entered in the slot can be unavailable, or a USB player
1611 * with no or unreadable stick attached. Other scenarios involve the shutdown of
1612 * a source because of overtemperature or over- & undervoltage. The
1613 * availability consists of two informations:
1615 Availablility: the status
1616 * itself, can be A_AVAILABLE, A_UNAVAILABLE or A_UNKNOWN
1618 * AvailabilityReason: this informs about the last reason for a change in
1619 * availability. The reasons itself are product specific.
1621 am_Availability_s available;
1623 * Some special sources can have special behaviors, the are so called "Low Level
1624 * Interrupts". Here the current status is documented. The information can be
1625 * used by the AudioManagerController to react to the changes by for example
1626 * lowering the volume of the mainSources. The two states are
1629 * interrupt is not active at the moment
1630 IS_INTERRUPTED: the interrupt is
1631 * playing at the moment.
1633 am_InterruptState_e interruptState;
1635 * This is the list of soundProperties, that the source is capable of. The
1636 * soundProperties itself are project specific. For sources, a possible
1637 * soundProperty could be navigation volume offset, for example.
1639 am_SoundProperty_L listSoundProperties;
1641 * This list holds information about the formats that the Source is capable of
1642 * supporting when delivering audio.
1644 am_ConnectionFormat_L listConnectionFormats;
1646 * This is the list of the available mainSoundProperties. The principle is the
1647 * same than with soundProperties, but they are only visible to the
1650 am_MainSoundProperty_L listMainSoundProperties;
1652 * The list of MainNotificationConfigurations. These notifications work on the
1653 * level of CommandInterface.
1655 am_NotificationConfiguration_L listMainNotificationConfigurations;
1657 * The list of MainNotificationConfigurations. These notifications work on the
1658 * level of RoutingInterface.
1660 am_NotificationConfiguration_L listNotificationConfigurations;
1662 am_Source_s() = default;
1663 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);
1666 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1667 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1669 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1670 typeOutputStream.writeUInt16Type();
1671 typeOutputStream.writeUInt16Type();
1672 typeOutputStream.writeStringType();
1673 typeOutputStream.writeUInt16Type();
1674 typeOutputStream.writeInt32Type();
1675 typeOutputStream.writeInt16Type();
1676 typeOutputStream.writeBoolType();
1677 typeOutputStream.beginWriteStructType();
1678 typeOutputStream.writeInt32Type();typeOutputStream.writeUInt16Type();
1679 typeOutputStream.endWriteStructType();
1680 typeOutputStream.writeInt32Type();
1681 typeOutputStream.beginWriteVectorType();
1682 typeOutputStream.beginWriteStructType();
1683 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
1684 typeOutputStream.endWriteStructType();
1685 typeOutputStream.endWriteVectorType();
1686 typeOutputStream.beginWriteVectorType();
1687 typeOutputStream.writeUInt16Type();
1688 typeOutputStream.endWriteVectorType();
1689 typeOutputStream.beginWriteVectorType();
1690 typeOutputStream.beginWriteStructType();
1691 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt16Type();
1692 typeOutputStream.endWriteStructType();
1693 typeOutputStream.endWriteVectorType();
1694 typeOutputStream.beginWriteVectorType();
1695 typeOutputStream.beginWriteStructType();
1696 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type();
1697 typeOutputStream.endWriteStructType();
1698 typeOutputStream.endWriteVectorType();
1699 typeOutputStream.beginWriteVectorType();
1700 typeOutputStream.beginWriteStructType();
1701 typeOutputStream.writeUInt16Type();typeOutputStream.writeInt32Type();typeOutputStream.writeInt16Type();
1702 typeOutputStream.endWriteStructType();
1703 typeOutputStream.endWriteVectorType();
1707 * This struct describes the attribiutes of a domain
1710 * This struct describes the attribiutes of a domain
1712 struct am_Domain_s: CommonAPI::SerializableStruct {
1716 am_domainID_t domainID;
1718 * the name of the domain
1722 * the busname. This is equal to a plugin name and is used to dispatch messages to
1723 * the elements of a plugin
1725 std::string busname;
1727 * the name of the node
1729 std::string nodename;
1731 * indicated if the domain is independent at startup or not
1735 * indicates if the domain registration is complete or not
1739 * the current domain state
1741 am_DomainState_e state;
1743 am_Domain_s() = default;
1744 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);
1747 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1748 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1750 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1751 typeOutputStream.writeUInt16Type();
1752 typeOutputStream.writeStringType();
1753 typeOutputStream.writeStringType();
1754 typeOutputStream.writeStringType();
1755 typeOutputStream.writeBoolType();
1756 typeOutputStream.writeBoolType();
1757 typeOutputStream.writeInt32Type();
1766 struct am_Connection_s: CommonAPI::SerializableStruct {
1770 am_connectionID_t connectionID;
1772 * the source the audio flows from
1774 am_sourceID_t sourceID;
1776 * the sink the audio flows to
1780 * the delay of the conneciton
1782 am_timeSync_t delay;
1784 * the used connectionformat
1786 am_ConnectionFormat_pe connectionFormat;
1788 am_Connection_s() = default;
1789 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_ConnectionFormat_pe& connectionFormat);
1792 virtual void readFromInputStream(CommonAPI::InputStream& inputStream);
1793 virtual void writeToOutputStream(CommonAPI::OutputStream& outputStream) const;
1795 static inline void writeToTypeOutputStream(CommonAPI::TypeOutputStream& typeOutputStream) {
1796 typeOutputStream.writeUInt16Type();
1797 typeOutputStream.writeUInt16Type();
1798 typeOutputStream.writeUInt16Type();
1799 typeOutputStream.writeInt16Type();
1800 typeOutputStream.writeUInt16Type();
1804 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Availability_e& enumValue) {
1805 return inputStream.readEnumValue<int32_t>(enumValue);
1808 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Availability_e& enumValue) {
1809 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1812 struct am_Availability_eComparator {
1813 inline bool operator()(const am_Availability_e& lhs, const am_Availability_e& rhs) const {
1814 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1818 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_HotSink_e& enumValue) {
1819 return inputStream.readEnumValue<int32_t>(enumValue);
1822 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_HotSink_e& enumValue) {
1823 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1826 struct am_HotSink_eComparator {
1827 inline bool operator()(const am_HotSink_e& lhs, const am_HotSink_e& rhs) const {
1828 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1832 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_ConnectionState_e& enumValue) {
1833 return inputStream.readEnumValue<int32_t>(enumValue);
1836 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_ConnectionState_e& enumValue) {
1837 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1840 struct am_ConnectionState_eComparator {
1841 inline bool operator()(const am_ConnectionState_e& lhs, const am_ConnectionState_e& rhs) const {
1842 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1846 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_DomainState_e& enumValue) {
1847 return inputStream.readEnumValue<int32_t>(enumValue);
1850 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_DomainState_e& enumValue) {
1851 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1854 struct am_DomainState_eComparator {
1855 inline bool operator()(const am_DomainState_e& lhs, const am_DomainState_e& rhs) const {
1856 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1860 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_EarlyDataType_e& enumValue) {
1861 return inputStream.readEnumValue<int32_t>(enumValue);
1864 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_EarlyDataType_e& enumValue) {
1865 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1868 struct am_EarlyDataType_eComparator {
1869 inline bool operator()(const am_EarlyDataType_e& lhs, const am_EarlyDataType_e& rhs) const {
1870 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1874 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Error_e& enumValue) {
1875 return inputStream.readEnumValue<int32_t>(enumValue);
1878 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Error_e& enumValue) {
1879 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1882 struct am_Error_eComparator {
1883 inline bool operator()(const am_Error_e& lhs, const am_Error_e& rhs) const {
1884 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1888 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_MuteState_e& enumValue) {
1889 return inputStream.readEnumValue<int32_t>(enumValue);
1892 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_MuteState_e& enumValue) {
1893 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1896 struct am_MuteState_eComparator {
1897 inline bool operator()(const am_MuteState_e& lhs, const am_MuteState_e& rhs) const {
1898 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1902 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_InterruptState_e& enumValue) {
1903 return inputStream.readEnumValue<int32_t>(enumValue);
1906 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_InterruptState_e& enumValue) {
1907 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1910 struct am_InterruptState_eComparator {
1911 inline bool operator()(const am_InterruptState_e& lhs, const am_InterruptState_e& rhs) const {
1912 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1916 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_VolumeType_e& enumValue) {
1917 return inputStream.readEnumValue<int32_t>(enumValue);
1920 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_VolumeType_e& enumValue) {
1921 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1924 struct am_VolumeType_eComparator {
1925 inline bool operator()(const am_VolumeType_e& lhs, const am_VolumeType_e& rhs) const {
1926 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1930 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_NotificationStatus_e& enumValue) {
1931 return inputStream.readEnumValue<int32_t>(enumValue);
1934 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_NotificationStatus_e& enumValue) {
1935 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1938 struct am_NotificationStatus_eComparator {
1939 inline bool operator()(const am_NotificationStatus_e& lhs, const am_NotificationStatus_e& rhs) const {
1940 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1944 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_Handle_e& enumValue) {
1945 return inputStream.readEnumValue<int32_t>(enumValue);
1948 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_Handle_e& enumValue) {
1949 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1952 struct am_Handle_eComparator {
1953 inline bool operator()(const am_Handle_e& lhs, const am_Handle_e& rhs) const {
1954 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1958 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_SourceState_e& enumValue) {
1959 return inputStream.readEnumValue<int32_t>(enumValue);
1962 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_SourceState_e& enumValue) {
1963 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1966 struct am_SourceState_eComparator {
1967 inline bool operator()(const am_SourceState_e& lhs, const am_SourceState_e& rhs) const {
1968 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1972 inline CommonAPI::InputStream& operator>>(CommonAPI::InputStream& inputStream, am_RoutingReady_e& enumValue) {
1973 return inputStream.readEnumValue<int32_t>(enumValue);
1976 inline CommonAPI::OutputStream& operator<<(CommonAPI::OutputStream& outputStream, const am_RoutingReady_e& enumValue) {
1977 return outputStream.writeEnumValue(static_cast<int32_t>(enumValue));
1980 struct am_RoutingReady_eComparator {
1981 inline bool operator()(const am_RoutingReady_e& lhs, const am_RoutingReady_e& rhs) const {
1982 return static_cast<int32_t>(lhs) < static_cast<int32_t>(rhs);
1986 bool operator==(const am_Route_s& lhs, const am_Route_s& rhs);
1987 inline bool operator!=(const am_Route_s& lhs, const am_Route_s& rhs) {
1988 return !(lhs == rhs);
1990 bool operator==(const am_Availability_s& lhs, const am_Availability_s& rhs);
1991 inline bool operator!=(const am_Availability_s& lhs, const am_Availability_s& rhs) {
1992 return !(lhs == rhs);
1994 bool operator==(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs);
1995 inline bool operator!=(const am_ClassProperty_s& lhs, const am_ClassProperty_s& rhs) {
1996 return !(lhs == rhs);
1998 bool operator==(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs);
1999 inline bool operator!=(const am_Crossfader_s& lhs, const am_Crossfader_s& rhs) {
2000 return !(lhs == rhs);
2002 bool operator==(const am_Gateway_s& lhs, const am_Gateway_s& rhs);
2003 inline bool operator!=(const am_Gateway_s& lhs, const am_Gateway_s& rhs) {
2004 return !(lhs == rhs);
2006 bool operator==(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs);
2007 inline bool operator!=(const am_RoutingElement_s& lhs, const am_RoutingElement_s& rhs) {
2008 return !(lhs == rhs);
2010 bool operator==(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs);
2011 inline bool operator!=(const am_SoundProperty_s& lhs, const am_SoundProperty_s& rhs) {
2012 return !(lhs == rhs);
2014 bool operator==(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs);
2015 inline bool operator!=(const am_SystemProperty_s& lhs, const am_SystemProperty_s& rhs) {
2016 return !(lhs == rhs);
2018 bool operator==(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs);
2019 inline bool operator!=(const am_SinkClass_s& lhs, const am_SinkClass_s& rhs) {
2020 return !(lhs == rhs);
2022 bool operator==(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs);
2023 inline bool operator!=(const am_SourceClass_s& lhs, const am_SourceClass_s& rhs) {
2024 return !(lhs == rhs);
2026 bool operator==(const am_SourceType_s& lhs, const am_SourceType_s& rhs);
2027 inline bool operator!=(const am_SourceType_s& lhs, const am_SourceType_s& rhs) {
2028 return !(lhs == rhs);
2030 bool operator==(const am_SinkType_s& lhs, const am_SinkType_s& rhs);
2031 inline bool operator!=(const am_SinkType_s& lhs, const am_SinkType_s& rhs) {
2032 return !(lhs == rhs);
2034 bool operator==(const am_Handle_s& lhs, const am_Handle_s& rhs);
2035 inline bool operator!=(const am_Handle_s& lhs, const am_Handle_s& rhs) {
2036 return !(lhs == rhs);
2038 bool operator==(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs);
2039 inline bool operator!=(const am_MainSoundProperty_s& lhs, const am_MainSoundProperty_s& rhs) {
2040 return !(lhs == rhs);
2042 bool operator==(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs);
2043 inline bool operator!=(const am_MainConnectionType_s& lhs, const am_MainConnectionType_s& rhs) {
2044 return !(lhs == rhs);
2046 bool operator==(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs);
2047 inline bool operator!=(const am_MainConnection_s& lhs, const am_MainConnection_s& rhs) {
2048 return !(lhs == rhs);
2050 bool operator==(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs);
2051 inline bool operator!=(const am_NotificationPayload_s& lhs, const am_NotificationPayload_s& rhs) {
2052 return !(lhs == rhs);
2054 bool operator==(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs);
2055 inline bool operator!=(const am_NotificationConfiguration_s& lhs, const am_NotificationConfiguration_s& rhs) {
2056 return !(lhs == rhs);
2058 bool operator==(const am_Sink_s& lhs, const am_Sink_s& rhs);
2059 inline bool operator!=(const am_Sink_s& lhs, const am_Sink_s& rhs) {
2060 return !(lhs == rhs);
2062 bool operator==(const am_Source_s& lhs, const am_Source_s& rhs);
2063 inline bool operator!=(const am_Source_s& lhs, const am_Source_s& rhs) {
2064 return !(lhs == rhs);
2066 bool operator==(const am_Domain_s& lhs, const am_Domain_s& rhs);
2067 inline bool operator!=(const am_Domain_s& lhs, const am_Domain_s& rhs) {
2068 return !(lhs == rhs);
2070 bool operator==(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs);
2071 inline bool operator!=(const am_EarlyData_s& lhs, const am_EarlyData_s& rhs) {
2072 return !(lhs == rhs);
2074 bool operator==(const am_Connection_s& lhs, const am_Connection_s& rhs);
2075 inline bool operator!=(const am_Connection_s& lhs, const am_Connection_s& rhs) {
2076 return !(lhs == rhs);
2078 bool operator==(const am_Volumes_s& lhs, const am_Volumes_s& rhs);
2079 inline bool operator!=(const am_Volumes_s& lhs, const am_Volumes_s& rhs) {
2080 return !(lhs == rhs);
2084 static inline const char* getTypeCollectionName() {
2085 static const char* typeCollectionName = "org.genivi.am";
2086 return typeCollectionName;
2089 inline CommonAPI::Version getTypeCollectionVersion() {
2090 return CommonAPI::Version(1, 0);
2095 } // namespace genivi
2098 namespace CommonAPI {
2101 struct BasicTypeWriter<org::genivi::am::am_Availability_e> {
2102 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2103 typeStream.writeInt32EnumType();
2108 struct InputStreamVectorHelper<org::genivi::am::am_Availability_e> {
2109 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) {
2110 inputStream.beginReadInt32EnumVector();
2115 struct OutputStreamVectorHelper<org::genivi::am::am_Availability_e> {
2116 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Availability_e>& vectorValue) {
2117 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2121 struct BasicTypeWriter<org::genivi::am::am_HotSink_e> {
2122 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2123 typeStream.writeInt32EnumType();
2128 struct InputStreamVectorHelper<org::genivi::am::am_HotSink_e> {
2129 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) {
2130 inputStream.beginReadInt32EnumVector();
2135 struct OutputStreamVectorHelper<org::genivi::am::am_HotSink_e> {
2136 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_HotSink_e>& vectorValue) {
2137 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2141 struct BasicTypeWriter<org::genivi::am::am_ConnectionState_e> {
2142 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2143 typeStream.writeInt32EnumType();
2148 struct InputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> {
2149 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) {
2150 inputStream.beginReadInt32EnumVector();
2155 struct OutputStreamVectorHelper<org::genivi::am::am_ConnectionState_e> {
2156 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_ConnectionState_e>& vectorValue) {
2157 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2161 struct BasicTypeWriter<org::genivi::am::am_DomainState_e> {
2162 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2163 typeStream.writeInt32EnumType();
2168 struct InputStreamVectorHelper<org::genivi::am::am_DomainState_e> {
2169 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) {
2170 inputStream.beginReadInt32EnumVector();
2175 struct OutputStreamVectorHelper<org::genivi::am::am_DomainState_e> {
2176 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_DomainState_e>& vectorValue) {
2177 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2181 struct BasicTypeWriter<org::genivi::am::am_EarlyDataType_e> {
2182 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2183 typeStream.writeInt32EnumType();
2188 struct InputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> {
2189 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) {
2190 inputStream.beginReadInt32EnumVector();
2195 struct OutputStreamVectorHelper<org::genivi::am::am_EarlyDataType_e> {
2196 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_EarlyDataType_e>& vectorValue) {
2197 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2201 struct BasicTypeWriter<org::genivi::am::am_Error_e> {
2202 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2203 typeStream.writeInt32EnumType();
2208 struct InputStreamVectorHelper<org::genivi::am::am_Error_e> {
2209 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) {
2210 inputStream.beginReadInt32EnumVector();
2215 struct OutputStreamVectorHelper<org::genivi::am::am_Error_e> {
2216 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_Error_e>& vectorValue) {
2217 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2221 struct BasicTypeWriter<org::genivi::am::am_MuteState_e> {
2222 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2223 typeStream.writeInt32EnumType();
2228 struct InputStreamVectorHelper<org::genivi::am::am_MuteState_e> {
2229 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) {
2230 inputStream.beginReadInt32EnumVector();
2235 struct OutputStreamVectorHelper<org::genivi::am::am_MuteState_e> {
2236 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_MuteState_e>& vectorValue) {
2237 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2241 struct BasicTypeWriter<org::genivi::am::am_InterruptState_e> {
2242 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2243 typeStream.writeInt32EnumType();
2248 struct InputStreamVectorHelper<org::genivi::am::am_InterruptState_e> {
2249 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) {
2250 inputStream.beginReadInt32EnumVector();
2255 struct OutputStreamVectorHelper<org::genivi::am::am_InterruptState_e> {
2256 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_InterruptState_e>& vectorValue) {
2257 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2261 struct BasicTypeWriter<org::genivi::am::am_VolumeType_e> {
2262 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2263 typeStream.writeInt32EnumType();
2268 struct InputStreamVectorHelper<org::genivi::am::am_VolumeType_e> {
2269 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) {
2270 inputStream.beginReadInt32EnumVector();
2275 struct OutputStreamVectorHelper<org::genivi::am::am_VolumeType_e> {
2276 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_VolumeType_e>& vectorValue) {
2277 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2281 struct BasicTypeWriter<org::genivi::am::am_NotificationStatus_e> {
2282 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2283 typeStream.writeInt32EnumType();
2288 struct InputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> {
2289 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) {
2290 inputStream.beginReadInt32EnumVector();
2295 struct OutputStreamVectorHelper<org::genivi::am::am_NotificationStatus_e> {
2296 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_NotificationStatus_e>& vectorValue) {
2297 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2301 struct BasicTypeWriter<org::genivi::am::am_Handle_e> {
2302 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2303 typeStream.writeInt32EnumType();
2308 struct InputStreamVectorHelper<org::genivi::am::am_Handle_e> {
2309 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) {
2330 inputStream.beginReadInt32EnumVector();
2335 struct OutputStreamVectorHelper<org::genivi::am::am_SourceState_e> {
2336 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_SourceState_e>& vectorValue) {
2337 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2341 struct BasicTypeWriter<org::genivi::am::am_RoutingReady_e> {
2342 inline static void writeType (CommonAPI::TypeOutputStream& typeStream) {
2343 typeStream.writeInt32EnumType();
2348 struct InputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> {
2349 static void beginReadVector(InputStream& inputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) {
2350 inputStream.beginReadInt32EnumVector();
2355 struct OutputStreamVectorHelper<org::genivi::am::am_RoutingReady_e> {
2356 static void beginWriteVector(OutputStream& outputStream, const std::vector<org::genivi::am::am_RoutingReady_e>& vectorValue) {
2357 outputStream.beginWriteInt32EnumVector(vectorValue.size());
2365 //Hash for am_Availability_e
2367 struct hash<org::genivi::am::am_Availability_e> {
2368 inline size_t operator()(const org::genivi::am::am_Availability_e& am_Availability_e) const {
2369 return static_cast<int32_t>(am_Availability_e);
2372 //Hash for am_HotSink_e
2374 struct hash<org::genivi::am::am_HotSink_e> {
2375 inline size_t operator()(const org::genivi::am::am_HotSink_e& am_HotSink_e) const {
2376 return static_cast<int32_t>(am_HotSink_e);
2379 //Hash for am_ConnectionState_e
2381 struct hash<org::genivi::am::am_ConnectionState_e> {
2382 inline size_t operator()(const org::genivi::am::am_ConnectionState_e& am_ConnectionState_e) const {
2383 return static_cast<int32_t>(am_ConnectionState_e);
2386 //Hash for am_DomainState_e
2388 struct hash<org::genivi::am::am_DomainState_e> {
2389 inline size_t operator()(const org::genivi::am::am_DomainState_e& am_DomainState_e) const {
2390 return static_cast<int32_t>(am_DomainState_e);
2393 //Hash for am_EarlyDataType_e
2395 struct hash<org::genivi::am::am_EarlyDataType_e> {
2396 inline size_t operator()(const org::genivi::am::am_EarlyDataType_e& am_EarlyDataType_e) const {
2397 return static_cast<int32_t>(am_EarlyDataType_e);
2400 //Hash for am_Error_e
2402 struct hash<org::genivi::am::am_Error_e> {
2403 inline size_t operator()(const org::genivi::am::am_Error_e& am_Error_e) const {
2404 return static_cast<int32_t>(am_Error_e);
2407 //Hash for am_MuteState_e
2409 struct hash<org::genivi::am::am_MuteState_e> {
2410 inline size_t operator()(const org::genivi::am::am_MuteState_e& am_MuteState_e) const {
2411 return static_cast<int32_t>(am_MuteState_e);
2414 //Hash for am_InterruptState_e
2416 struct hash<org::genivi::am::am_InterruptState_e> {
2417 inline size_t operator()(const org::genivi::am::am_InterruptState_e& am_InterruptState_e) const {
2418 return static_cast<int32_t>(am_InterruptState_e);
2421 //Hash for am_VolumeType_e
2423 struct hash<org::genivi::am::am_VolumeType_e> {
2424 inline size_t operator()(const org::genivi::am::am_VolumeType_e& am_VolumeType_e) const {
2425 return static_cast<int32_t>(am_VolumeType_e);
2428 //Hash for am_NotificationStatus_e
2430 struct hash<org::genivi::am::am_NotificationStatus_e> {
2431 inline size_t operator()(const org::genivi::am::am_NotificationStatus_e& am_NotificationStatus_e) const {
2432 return static_cast<int32_t>(am_NotificationStatus_e);
2435 //Hash for am_Handle_e
2437 struct hash<org::genivi::am::am_Handle_e> {
2438 inline size_t operator()(const org::genivi::am::am_Handle_e& am_Handle_e) const {
2439 return static_cast<int32_t>(am_Handle_e);
2442 //Hash for am_SourceState_e
2444 struct hash<org::genivi::am::am_SourceState_e> {
2445 inline size_t operator()(const org::genivi::am::am_SourceState_e& am_SourceState_e) const {
2446 return static_cast<int32_t>(am_SourceState_e);
2449 //Hash for am_RoutingReady_e
2451 struct hash<org::genivi::am::am_RoutingReady_e> {
2452 inline size_t operator()(const org::genivi::am::am_RoutingReady_e& am_RoutingReady_e) const {
2453 return static_cast<int32_t>(am_RoutingReady_e);
2458 #endif // ORG_GENIVI_am_H_