31 #include <unordered_map>
39 #ifndef AM_MAP_CAPACITY
40 #define AM_MAP_CAPACITY 0
43 #ifndef AM_MAX_CONNECTIONS
44 #define AM_MAX_CONNECTIONS 0x1000
47 #ifndef AM_MAX_MAIN_CONNECTIONS
48 #define AM_MAX_MAIN_CONNECTIONS SHRT_MAX
66 bool mFirstStaticSink;
67 bool mFirstStaticSource;
68 bool mFirstStaticGateway;
69 bool mFirstStaticConverter;
70 bool mFirstStaticSinkClass;
71 bool mFirstStaticSourceClass;
72 bool mFirstStaticCrossfader;
172 am_Error_e changeSourceDB(
const am_sourceID_t sourceID,
const am_sourceClass_t sourceClassID,
const std::vector<am_SoundProperty_s>& listSoundProperties,
const std::vector<am_CustomAvailabilityReason_t>& listConnectionFormats,
const std::vector<am_MainSoundProperty_s>& listMainSoundProperties);
173 am_Error_e changeSinkDB(
const am_sinkID_t sinkID,
const am_sinkClass_t sinkClassID,
const std::vector<am_SoundProperty_s>& listSoundProperties,
const std::vector<am_CustomAvailabilityReason_t>& listConnectionFormats,
const std::vector<am_MainSoundProperty_s>& listMainSoundProperties);
178 am_Error_e changeGatewayDB(
const am_gatewayID_t gatewayID,
const std::vector<am_CustomAvailabilityReason_t>& listSourceConnectionFormats,
const std::vector<am_CustomAvailabilityReason_t>& listSinkConnectionFormats,
const std::vector<bool>& convertionMatrix);
179 am_Error_e changeConverterDB(
const am_converterID_t converterID,
const std::vector<am_CustomConnectionFormat_t>& listSourceConnectionFormats,
const std::vector<am_CustomConnectionFormat_t>& listSinkConnectionFormats,
const std::vector<bool>& convertionMatrix);
203 void dump( std::ostream & output )
const;
212 #define AM_SUBCLASS_BEGIN(Subclass, Class) \
213 typedef struct Subclass : public Class\
216 #define AM_SUBCLASS_CONSTR(Subclass, Class) \
219 #define AM_SUBCLASS_CONSTR_BODY()\
222 #define AM_SUBCLASS_COPY_OP_START(Subclass, Class) \
223 Subclass & operator=(const Subclass & anObject)\
225 if (this != &anObject)\
227 Class::operator=(anObject);
229 #define AM_SUBCLASS_COPY_OP_END()\
234 #define AM_SUBCLASS_OP(Subclass, Class) \
235 Subclass & operator=(const Class & anObject)\
237 if (this != &anObject)\
238 Class::operator=(anObject);\
242 #define AM_SUBCLASS_END(Typedef) \
243 void getDescription (std::string & outString) const;\
246 #define AM_TYPEDEF_SUBCLASS_RESERVED_FLAG_BEGIN(Subclass, Class)\
247 AM_SUBCLASS_BEGIN(Subclass, Class)\
249 AM_SUBCLASS_CONSTR(Subclass, Class)\
251 AM_SUBCLASS_CONSTR_BODY()\
252 AM_SUBCLASS_COPY_OP_START(Subclass, Class)\
253 reserved = anObject.reserved;\
254 AM_SUBCLASS_COPY_OP_END()\
255 AM_SUBCLASS_OP(Subclass, Class)\
257 #define AM_TYPEDEF_SUBCLASS_SOUND_PROPERTIES_BEGIN(Subclass, Class)\
258 AM_SUBCLASS_BEGIN(Subclass, Class)\
260 std::unordered_map<am_CustomSoundPropertyType_t, int16_t> cacheSoundProperties;\
261 std::unordered_map<am_CustomMainSoundPropertyType_t, int16_t> cacheMainSoundProperties;\
262 AM_SUBCLASS_CONSTR(Subclass, Class)\
263 ,reserved(false), cacheSoundProperties(), cacheMainSoundProperties()\
264 AM_SUBCLASS_CONSTR_BODY()\
265 AM_SUBCLASS_COPY_OP_START(Subclass, Class)\
266 reserved = anObject.reserved;\
267 cacheSoundProperties = anObject.cacheSoundProperties;\
268 cacheMainSoundProperties = anObject.cacheMainSoundProperties;\
269 AM_SUBCLASS_COPY_OP_END()\
270 AM_SUBCLASS_OP(Subclass, Class)\
272 #define AM_TYPEDEF_SUBCLASS_BEGIN(Subclass, Class)\
273 AM_SUBCLASS_BEGIN(Subclass, Class)\
274 AM_SUBCLASS_COPY_OP_START(Subclass, Class)\
275 AM_SUBCLASS_COPY_OP_END()\
276 AM_SUBCLASS_OP(Subclass, Class)\
316 typedef std::unordered_map<
am_domainID_t, CAmDomain> CAmMapDomain;
317 typedef std::unordered_map<
am_sourceClass_t, CAmSourceClass> CAmMapSourceClass;
318 typedef std::unordered_map<
am_sinkClass_t, CAmSinkClass> CAmMapSinkClass;
319 typedef std::unordered_map<
am_sinkID_t, CAmSink> CAmMapSink;
320 typedef std::unordered_map<
am_sourceID_t, CAmSource> CAmMapSource;
321 typedef std::unordered_map<
am_gatewayID_t, CAmGateway> CAmMapGateway;
326 typedef std::vector<am_SystemProperty_s> CAmVectorSystemProperties;
334 typedef struct CAmMappedData
347 am_Identifier_s(
const int16_t & min,
const int16_t & max):mMin(min), mMax(max), mCurrentValue(mMin){assert(min<max);};
350 am_Identifier_s mCurrentDomainID;
351 am_Identifier_s mCurrentSourceClassesID;
352 am_Identifier_s mCurrentSinkClassesID;
353 am_Identifier_s mCurrentSinkID;
354 am_Identifier_s mCurrentSourceID;
355 am_Identifier_s mCurrentGatewayID;
356 am_Identifier_s mCurrentConverterID;
357 am_Identifier_s mCurrentCrossfaderID;
358 am_Identifier_s mCurrentConnectionID;
359 am_Identifier_s mCurrentMainConnectionID;
361 CAmVectorSystemProperties mSystemProperties;
362 CAmMapDomain mDomainMap;
363 CAmMapSourceClass mSourceClassesMap;
364 CAmMapSinkClass mSinkClassesMap;
366 CAmMapSource mSourceMap;
367 CAmMapGateway mGatewayMap;
368 CAmMapConverter mConverterMap;
369 CAmMapCrossfader mCrossfaderMap;
370 CAmMapConnection mConnectionMap;
371 CAmMapMainConnection mMainConnectionMap;
374 mCurrentDomainID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
375 mCurrentSourceClassesID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
376 mCurrentSinkClassesID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
377 mCurrentSinkID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
378 mCurrentSourceID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
379 mCurrentGatewayID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
380 mCurrentConverterID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
381 mCurrentCrossfaderID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
387 mGatewayMap(), mConverterMap(), mCrossfaderMap(), mConnectionMap(), mMainConnectionMap()
401 bool increaseID(int16_t & resultID, am_Identifier_s & sourceID, int16_t
const desiredStaticID);
408 bool increaseMainConnectionID(int16_t & resultID);
416 bool increaseConnectionID(int16_t & resultID);
418 template <
class TPr
intObject>
static void print (
const TPrintObject & t, std::ostream & output)
420 std::string description;
421 t.getDescription( description );
422 output << description;
424 template <
typename TPr
intMapKey,
class TPr
intMapObject>
static void printMap (
const std::unordered_map<TPrintMapKey, TPrintMapObject> & t, std::ostream & output)
426 typename std::unordered_map<TPrintMapKey, TPrintMapObject>::const_iterator iter = t.begin();
427 for(; iter!=t.end(); iter++)
428 CAmMappedData::print(iter->second, output);
431 template <
typename TMapKey,
class TMapObject>
bool getNextConnectionID(int16_t & resultID, am_Identifier_s & sourceID,
432 const std::unordered_map<TMapKey, TMapObject> & map);
437 am_timeSync_t calculateMainConnectionDelay(
const am_mainConnectionID_t mainConnectionID)
const;
438 int16_t calculateDelayForRoute(
const std::vector<am_connectionID_t>& listConnectionID);
439 bool insertSinkDB(
const am_Sink_s & sinkData, am_sinkID_t & sinkID);
440 bool insertCrossfaderDB(
const am_Crossfader_s & crossfaderData, am_crossfaderID_t & crossfaderID);
441 bool insertGatewayDB(
const am_Gateway_s & gatewayData, am_gatewayID_t & gatewayID);
442 bool insertConverterDB(
const am_Converter_s & converteData, am_converterID_t & converterID);
443 bool insertSourceDB(
const am_Source_s & sourceData, am_sourceID_t & sourceID);
444 bool insertSinkClassDB(
const am_SinkClass_s & sinkClass, am_sinkClass_t & sinkClassID);
445 bool insertSourceClassDB(am_sourceClass_t & sourceClassID,
const am_SourceClass_s & sourceClass);
446 const am_Sink_Database_s * sinkWithNameOrID(
const am_sinkID_t sinkID,
const std::string & name)
const;
447 const am_Source_Database_s * sourceWithNameOrID(
const am_sourceID_t sourceID,
const std::string & name)
const;
448 template <
class Component>
bool isConnected(
const Component & comp)
const
450 return std::find_if(mMappedData.mConnectionMap.begin(), mMappedData.mConnectionMap.end(),[&](
const std::pair<am_connectionID_t, am_Connection_Database_s>& rConnection){
451 return (rConnection.second.sinkID == comp.sinkID ||rConnection.second.sourceID ==comp.sourceID);})!=mMappedData.mConnectionMap.end();
453 void filterDuplicateNotificationConfigurationTypes(std::vector<am_NotificationConfiguration_s> & list)
455 std::vector<am_NotificationConfiguration_s> oldList(list);
457 std::for_each(oldList.begin(), oldList.end(), [&](am_NotificationConfiguration_s & provided) {
458 std::vector<am_NotificationConfiguration_s>::iterator found =
459 std::find_if(list.begin(), list.end(), [&](am_NotificationConfiguration_s & stored) {
460 if (provided.type == stored.type) {
466 if (found == list.end())
467 list.push_back(provided);
471 CAmDatabaseObserver *mpDatabaseObserver;
473 CAmMappedData mMappedData;
476 void setConnectionIDRange(
const int16_t & min,
const int16_t & max)
478 mMappedData.mCurrentConnectionID.mMin = min;
479 mMappedData.mCurrentConnectionID.mMax = max;
481 void setMainConnectionIDRange(
const int16_t & min,
const int16_t & max)
483 mMappedData.mCurrentMainConnectionID.mMin = min;
484 mMappedData.mCurrentMainConnectionID.mMax = max;
486 void setSinkIDRange(
const int16_t & min,
const int16_t & max)
488 mMappedData.mCurrentSinkID.mMin = min;
489 mMappedData.mCurrentSinkID.mMax = max;
am_Error_e getMainConnectionInfoDB(const am_mainConnectionID_t mainConnectionID, am_MainConnection_s &mainConnectionData) const
am_Error_e getListSinkClasses(std::vector< am_SinkClass_s > &listSinkClasses) const
am_Error_e removeConverterDB(const am_converterID_t converterID)
am_Error_e getListGateways(std::vector< am_Gateway_s > &listGateways) const
am_Error_e changeSinkMuteStateDB(const am_MuteState_e muteState, const am_sinkID_t sinkID)
am_Error_e getListConnections(std::vector< am_Connection_s > &listConnections) const
am_Error_e changeCrossFaderHotSink(const am_crossfaderID_t crossfaderID, const am_HotSink_e hotsink)
am_Error_e changeSinkDB(const am_sinkID_t sinkID, const am_sinkClass_t sinkClassID, const std::vector< am_SoundProperty_s > &listSoundProperties, const std::vector< am_CustomAvailabilityReason_t > &listConnectionFormats, const std::vector< am_MainSoundProperty_s > &listMainSoundProperties)
uint16_t am_connectionID_t
a connection ID
uint16_t am_CustomSoundPropertyType_t
Within genivi only the some example properties are defined.
am_Error_e changeDelayMainConnection(const am_timeSync_t &delay, const am_mainConnectionID_t &connectionID)
am_Error_e getListSourcesOfDomain(const am_domainID_t domainID, std::vector< am_sourceID_t > &listSourceID) const
bool sourceVisible(const am_sourceID_t sourceID) const
gives information about the visibility of a source
bool existSourceName(const std::string &name) const
checks if a name exits
am_Error_e
the errors of the audiomanager.
am_Error_e changeConnectionFinal(const am_connectionID_t connectionID)
This struct holds information about the configuration for notifications.
am_Error_e peekDomain(const std::string &name, am_domainID_t &domainID)
am_Error_e changeSourceNotificationConfigurationDB(const am_sourceID_t sourceID, const am_NotificationConfiguration_s notificationConfiguration)
am_Error_e getListSinkSoundProperties(const am_sinkID_t sinkID, std::vector< am_SoundProperty_s > &listSoundproperties) const
am_Error_e getListMainSinkSoundProperties(const am_sinkID_t sinkID, std::vector< am_MainSoundProperty_s > &listSoundProperties) const
int16_t mMax
max possible value
struct describing source classes
This struct describes the attribiutes of a sink.
bool sinkVisible(const am_sinkID_t sinkID) const
gives information about the visibility of a sink
am_Error_e getListMainSinkNotificationConfigurations(const am_sinkID_t sinkID, std::vector< am_NotificationConfiguration_s > &listMainNotificationConfigurations)
am_Identifier_s(const int16_t &min, const int16_t &max)
am_Error_e getDomainOfSink(const am_sinkID_t sinkID, am_domainID_t &domainID) const
am_Error_e changeSourceVolume(const am_sourceID_t sourceID, const am_volume_t volume)
am_Error_e getSinkInfoDB(const am_sinkID_t sinkID, am_Sink_s &sinkData) const
am_Error_e removeMainConnectionDB(const am_mainConnectionID_t mainConnectionID)
am_Error_e getListSources(std::vector< am_Source_s > &lisSources) const
am_Error_e enumerateSinks(std::function< void(const am_Sink_s &element)> cb) const
am_Error_e removeSinkClassDB(const am_sinkClass_t sinkClassID)
This struct describes the attribiutes of a domain.
std::map< am_gatewayID_t, std::vector< bool > > ListConnectionFormat
type for list of connection formats
uint16_t am_crossfaderID_t
a crossfader ID
am_Error_e getListMainSources(std::vector< am_SourceType_s > &listMainSources) const
uint16_t am_CustomMainSoundPropertyType_t
Here are all SoundProperties that can be set via the CommandInterface.
am_Error_e changeSinkAvailabilityDB(const am_Availability_s &availability, const am_sinkID_t sinkID)
am_Error_e getListCrossfadersOfDomain(const am_domainID_t domainID, std::vector< am_crossfaderID_t > &listGatewaysID) const
am_Error_e changeDomainStateDB(const am_DomainState_e domainState, const am_domainID_t domainID)
int16_t am_timeSync_t
offset time that is introduced in milli seconds.
am_Error_e enumerateSources(std::function< void(const am_Source_s &element)> cb) const
am_Error_e changeSystemPropertyDB(const am_SystemProperty_s &property)
void registerObserver(CAmDatabaseObserver *iObserver)
registers the Observer at the Database
am_Error_e getListSourceSoundProperties(const am_sourceID_t sourceID, std::vector< am_SoundProperty_s > &listSoundproperties) const
bool existSink(const am_sinkID_t sinkID) const
checks for a certain Sink
am_Error_e getListSinksOfDomain(const am_domainID_t domainID, std::vector< am_sinkID_t > &listSinkID) const
am_Error_e getConverterInfoDB(const am_converterID_t converterID, am_Converter_s &converterData) const
am_Error_e getListSourceConnectionFormats(const am_sourceID_t sourceID, std::vector< am_CustomAvailabilityReason_t > &listConnectionFormats) const
struct that holds attribiutes of a mainconnection
am_Error_e getSoureState(const am_sourceID_t sourceID, am_SourceState_e &sourceState) const
am_Error_e getListMainConnections(std::vector< am_MainConnection_s > &listMainConnections) const
bool existConverter(const am_converterID_t converterID) const
void getSinkType(am_SinkType_s &sinkType) const
am_Error_e peekSink(const std::string &name, am_sinkID_t &sinkID)
am_Error_e changeSourceClassInfoDB(const am_SourceClass_s &sourceClass)
#define AM_MAX_MAIN_CONNECTIONS
bool existDomain(const am_domainID_t domainID) const
checks for a certain domain
bool existConnectionID(const am_connectionID_t connectionID) const
checks if a connection with the given ID exists
am_Error_e enterSourceDB(const am_Source_s &sourceData, am_sourceID_t &sourceID)
am_Error_e changeConnectionTimingInformation(const am_connectionID_t connectionID, const am_timeSync_t delay)
am_Error_e changeSinkClassInfoDB(const am_SinkClass_s &sinkClass)
am_Error_e getListSystemProperties(std::vector< am_SystemProperty_s > &listSystemProperties) const
am_Error_e getListGatewaysOfDomain(const am_domainID_t domainID, std::vector< am_gatewayID_t > &listGatewaysID) const
am_Error_e getListSinks(std::vector< am_Sink_s > &listSinks) const
am_Error_e getSinkMainVolume(const am_sinkID_t sinkID, am_mainVolume_t &mainVolume) const
struct describing system properties
am_Error_e getSinkSoundPropertyValue(const am_sinkID_t sinkID, const am_CustomSoundPropertyType_t propertyType, int16_t &value) const
bool existConnection(const am_Connection_s &connection) const
checks if a connection already exists.
uint16_t am_converterID_t
a converter ID
am_Error_e getSourceInfoDB(const am_sourceID_t sourceID, am_Source_s &sourceData) const
am_Error_e removeDomainDB(const am_domainID_t domainID)
am_Error_e changeMainConnectionRouteDB(const am_mainConnectionID_t mainconnectionID, const std::vector< am_connectionID_t > &listConnectionID)
bool existCrossFader(const am_crossfaderID_t crossfaderID) const
checks if a CrossFader exists
am_Error_e peekSourceClassID(const std::string &name, am_sourceClass_t &sourceClassID)
am_Error_e getSourceVolume(const am_sourceID_t sourceID, am_volume_t &volume) const
am_Error_e enterSinkClassDB(const am_SinkClass_s &sinkClass, am_sinkClass_t &sinkClassID)
struct describung mainsound property
am_Error_e getListDomains(std::vector< am_Domain_s > &listDomains) const
#define AM_MAX_CONNECTIONS
bool existSourceNameOrID(const am_sourceID_t sourceID, const std::string &name) const
checks if a source name or ID exists
am_Error_e removeConnection(const am_connectionID_t connectionID)
SPDX license identifier: MPL-2.0.
am_Error_e enterSourceClassDB(am_sourceClass_t &sourceClassID, const am_SourceClass_s &sourceClass)
am_Error_e getSourceClassInfoDB(const am_sourceID_t sourceID, am_SourceClass_s &classInfo) const
am_Error_e getListSinkConnectionFormats(const am_sinkID_t sinkID, std::vector< am_CustomAvailabilityReason_t > &listConnectionFormats) const
bool existSourceClass(const am_sourceClass_t sourceClassID) const
checks for certain sourceClass
am_Error_e changeSinkMainVolumeDB(const am_mainVolume_t mainVolume, const am_sinkID_t sinkID)
am_Error_e peekSource(const std::string &name, am_sourceID_t &sourceID)
#define AM_TYPEDEF_SUBCLASS_RESERVED_FLAG_BEGIN(Subclass, Class)
am_Error_e changeSinkVolume(const am_sinkID_t sinkID, const am_volume_t volume)
virtual ~CAmDatabaseHandlerMap()
am_Error_e enumerateConverters(std::function< void(const am_Converter_s &element)> cb) const
uint16_t am_sourceID_t
a source ID
struct describing the sound property
am_Error_e getDomainOfSource(const am_sourceID_t sourceID, am_domainID_t &domainID) const
am_Error_e removeCrossfaderDB(const am_crossfaderID_t crossfaderID)
am_Error_e enterCrossfaderDB(const am_Crossfader_s &crossfaderData, am_crossfaderID_t &crossfaderID)
struct describing sinkclasses
am_Error_e removeSinkDB(const am_sinkID_t sinkID)
am_Error_e getSourceSoundPropertyValue(const am_sourceID_t sourceID, const am_CustomSoundPropertyType_t propertyType, int16_t &value) const
bool existSinkClass(const am_sinkClass_t sinkClassID) const
checks for certain SinkClass
am_Error_e getSinkVolume(const am_sinkID_t sinkID, am_volume_t &volume) const
am_Error_e enterDomainDB(const am_Domain_s &domainData, am_domainID_t &domainID)
This class handles and abstracts the database.
am_Error_e getListCrossfaders(std::vector< am_Crossfader_s > &listCrossfaders) const
am_Error_e getGatewayInfoDB(const am_gatewayID_t gatewayID, am_Gateway_s &gatewayData) const
am_Error_e getCrossfaderInfoDB(const am_crossfaderID_t crossfaderID, am_Crossfader_s &crossfaderData) const
am_ConnectionState_e
represents the connection state
This struct describes the attributes of a converter.
am_Error_e getListMainSourceSoundProperties(const am_sourceID_t sourceID, std::vector< am_MainSoundProperty_s > &listSourceProperties) const
bool existSource(const am_sourceID_t sourceID) const
checks for a certain Source
am_Error_e removeSourceClassDB(const am_sourceClass_t sourceClassID)
am_Error_e getListSourceClasses(std::vector< am_SourceClass_s > &listSourceClasses) const
am_HotSink_e
describes the active sink of a crossfader.
am_Error_e enumerateGateways(std::function< void(const am_Gateway_s &element)> cb) const
void getMainConnectionType(am_MainConnectionType_s &connectionType) const
The following structures extend the base structures with print capabilities.
int16_t am_volume_t
The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE).
This struct describes the attribiutes of a crossfader.
am_Error_e enterConnectionDB(const am_Connection_s &connection, am_connectionID_t &connectionID)
am_Error_e changeMainSinkNotificationConfigurationDB(const am_sinkID_t sinkID, const am_NotificationConfiguration_s mainNotificationConfiguration)
am_Error_e getListConnectionsReserved(std::vector< am_Connection_s > &listConnections) const
am_Error_e changeMainSourceNotificationConfigurationDB(const am_sourceID_t sourceID, const am_NotificationConfiguration_s mainNotificationConfiguration)
am_Error_e changeSourceSoundPropertyDB(const am_SoundProperty_s &soundProperty, const am_sourceID_t sourceID)
am_Error_e getMainSinkSoundPropertyValue(const am_sinkID_t sinkID, const am_CustomMainSoundPropertyType_t propertyType, int16_t &value) const
bool isComponentConnected(const am_Gateway_s &gateway) const
am_Error_e changeMainConnectionStateDB(const am_mainConnectionID_t mainconnectionID, const am_ConnectionState_e connectionState)
am_Error_e changeMainSinkSoundPropertyDB(const am_MainSoundProperty_s &soundProperty, const am_sinkID_t sinkID)
bool existGateway(const am_gatewayID_t gatewayID) const
checks for certain gateway
uint16_t am_sourceClass_t
am_Error_e enterMainConnectionDB(const am_MainConnection_s &mainConnectionData, am_mainConnectionID_t &connectionID)
am_Error_e removeGatewayDB(const am_gatewayID_t gatewayID)
am_Error_e peekSinkClassID(const std::string &name, am_sinkClass_t &sinkClassID)
this describes the availability of a sink or a source together with the latest change ...
am_Error_e getDomainState(const am_domainID_t domainID, am_DomainState_e &state) const
am_Error_e changeSourceDB(const am_sourceID_t sourceID, const am_sourceClass_t sourceClassID, const std::vector< am_SoundProperty_s > &listSoundProperties, const std::vector< am_CustomAvailabilityReason_t > &listConnectionFormats, const std::vector< am_MainSoundProperty_s > &listMainSoundProperties)
This struct describes the attributes of a gateway.
int16_t mMin
min possible value
am_Error_e getListConvertersOfDomain(const am_domainID_t domainID, std::vector< am_converterID_t > &listConvertersID) const
am_Error_e changeSourceAvailabilityDB(const am_Availability_s &availability, const am_sourceID_t sourceID)
am_Error_e changeSourceState(const am_sourceID_t sourceID, const am_SourceState_e sourceState)
am_Error_e changeMainSourceSoundPropertyDB(const am_MainSoundProperty_s &soundProperty, const am_sourceID_t sourceID)
void dump(std::ostream &output) const
uint16_t am_domainID_t
a domain ID
am_Error_e enterSystemProperties(const std::vector< am_SystemProperty_s > &listSystemProperties)
am_Error_e enterSinkDB(const am_Sink_s &sinkData, am_sinkID_t &sinkID)
int16_t am_mainVolume_t
This is the volume presented on the command interface.
am_Error_e changeSinkSoundPropertyDB(const am_SoundProperty_s &soundProperty, const am_sinkID_t sinkID)
bool existSinkName(const std::string &name) const
checks if a sink with the name exists
am_Error_e getListMainSourceNotificationConfigurations(const am_sourceID_t sourceID, std::vector< am_NotificationConfiguration_s > &listMainNotificationConfigurations)
am_Error_e getListVisibleMainConnections(std::vector< am_MainConnectionType_s > &listConnections) const
am_Error_e getDomainOfCrossfader(const am_converterID_t crossfader, am_domainID_t &domainID) const
bool existSinkNameOrID(const am_sinkID_t sinkID, const std::string &name) const
checks if a sink with the ID or the name exists
uint16_t am_gatewayID_t
a gateway ID
This struct describes the attribiutes of a source.
am_Error_e removeSourceDB(const am_sourceID_t sourceID)
am_Error_e enterGatewayDB(const am_Gateway_s &gatewayData, am_gatewayID_t &gatewayID)
#define AM_SUBCLASS_END(Typedef)
am_Error_e getTimingInformation(const am_mainConnectionID_t mainConnectionID, am_timeSync_t &delay) const
#define AM_TYPEDEF_SUBCLASS_SOUND_PROPERTIES_BEGIN(Subclass, Class)
am_Error_e getListConverters(std::vector< am_Converter_s > &listConverters) const
uint16_t am_sinkID_t
a sink ID
uint16_t am_mainConnectionID_t
a mainConnection ID
am_Error_e changeSinkNotificationConfigurationDB(const am_sinkID_t sinkID, const am_NotificationConfiguration_s notificationConfiguration)
This class handles and abstracts the database.
The structure encapsulates the id boundary and the current id value.
am_Error_e changeGatewayDB(const am_gatewayID_t gatewayID, const std::vector< am_CustomAvailabilityReason_t > &listSourceConnectionFormats, const std::vector< am_CustomAvailabilityReason_t > &listSinkConnectionFormats, const std::vector< bool > &convertionMatrix)
void getSourceType(am_SourceType_s &sourceType) const
#define AM_TYPEDEF_SUBCLASS_BEGIN(Subclass, Class)
am_SourceState_e
The source state reflects the state of the source.
am_Error_e getSinkClassInfoDB(const am_sinkID_t sinkID, am_SinkClass_s &sinkClass) const
int16_t mCurrentValue
current value
am_Error_e changeConverterDB(const am_converterID_t converterID, const std::vector< am_CustomConnectionFormat_t > &listSourceConnectionFormats, const std::vector< am_CustomConnectionFormat_t > &listSinkConnectionFormats, const std::vector< bool > &convertionMatrix)
am_Error_e getListGatewayConnectionFormats(const am_gatewayID_t gatewayID, std::vector< bool > &listConnectionFormat) const
am_Error_e getListMainSinks(std::vector< am_SinkType_s > &listMainSinks) const
am_Error_e enterConverterDB(const am_Converter_s &converterData, am_converterID_t &converterID)
bool existMainConnection(const am_mainConnectionID_t mainConnectionID) const
checks for a certain mainConnection
This class observes the Database and notifies other classes about important events, mainly the CommandSender.
am_Error_e getMainSourceSoundPropertyValue(const am_sourceID_t sourceID, const am_CustomMainSoundPropertyType_t propertyType, int16_t &value) const