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;
109 std::function<void (const am_sinkID_t , const am_sinkClass_t , const std::vector<am_MainSoundProperty_s>& ,
const bool )>
dboSinkUpdated;
110 std::function<void (const am_sourceID_t , const am_sourceClass_t , const std::vector<am_MainSoundProperty_s>& ,
const bool )>
dboSourceUpdated;
218 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);
219 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);
224 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);
225 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);
248 void dump( std::ostream & output )
const;
262 #define AM_SUBCLASS_BEGIN(Subclass, Class) \ 263 typedef struct Subclass : public Class\ 266 #define AM_SUBCLASS_CONSTR(Subclass, Class) \ 269 #define AM_SUBCLASS_CONSTR_BODY()\ 272 #define AM_SUBCLASS_COPY_OP_START(Subclass, Class) \ 273 Subclass & operator=(const Subclass & anObject)\ 275 if (this != &anObject)\ 277 Class::operator=(anObject); 279 #define AM_SUBCLASS_COPY_OP_END()\ 284 #define AM_SUBCLASS_OP(Subclass, Class) \ 285 Subclass & operator=(const Class & anObject)\ 287 if (this != &anObject)\ 288 Class::operator=(anObject);\ 292 #define AM_SUBCLASS_END(Typedef) \ 293 void getDescription (std::string & outString) const;\ 296 #define AM_TYPEDEF_SUBCLASS_RESERVED_FLAG_BEGIN(Subclass, Class)\ 297 AM_SUBCLASS_BEGIN(Subclass, Class)\ 299 AM_SUBCLASS_CONSTR(Subclass, Class)\ 301 AM_SUBCLASS_CONSTR_BODY()\ 302 AM_SUBCLASS_COPY_OP_START(Subclass, Class)\ 303 reserved = anObject.reserved;\ 304 AM_SUBCLASS_COPY_OP_END()\ 305 AM_SUBCLASS_OP(Subclass, Class)\ 307 #define AM_TYPEDEF_SUBCLASS_SOUND_PROPERTIES_BEGIN(Subclass, Class)\ 308 AM_SUBCLASS_BEGIN(Subclass, Class)\ 310 std::unordered_map<am_CustomSoundPropertyType_t, int16_t> cacheSoundProperties;\ 311 std::unordered_map<am_CustomMainSoundPropertyType_t, int16_t> cacheMainSoundProperties;\ 312 AM_SUBCLASS_CONSTR(Subclass, Class)\ 313 ,reserved(false), cacheSoundProperties(), cacheMainSoundProperties()\ 314 AM_SUBCLASS_CONSTR_BODY()\ 315 AM_SUBCLASS_COPY_OP_START(Subclass, Class)\ 316 reserved = anObject.reserved;\ 317 cacheSoundProperties = anObject.cacheSoundProperties;\ 318 cacheMainSoundProperties = anObject.cacheMainSoundProperties;\ 319 AM_SUBCLASS_COPY_OP_END()\ 320 AM_SUBCLASS_OP(Subclass, Class)\ 322 #define AM_TYPEDEF_SUBCLASS_BEGIN(Subclass, Class)\ 323 AM_SUBCLASS_BEGIN(Subclass, Class)\ 324 AM_SUBCLASS_COPY_OP_START(Subclass, Class)\ 325 AM_SUBCLASS_COPY_OP_END()\ 326 AM_SUBCLASS_OP(Subclass, Class)\ 333 void getSinkType(am_SinkType_s & sinkType) const;\
337 void getSourceType(am_SourceType_s & sourceType) const;\
347 void getMainConnectionType(am_MainConnectionType_s & connectionType) const;\
376 typedef
std::vector<am_SystemProperty_s> AmVectorSystemProperties;
396 AmIdentifier():mMin(DYNAMIC_ID_BOUNDARY), mMax(SHRT_MAX), mCurrentValue(mMin){};
397 AmIdentifier(
const int16_t & min,
const int16_t & max):mMin(min), mMax(max), mCurrentValue(mMin){assert(min<max);};
411 AmVectorSystemProperties mSystemProperties;
412 AmMapDomain mDomainMap;
413 AmMapSourceClass mSourceClassesMap;
414 AmMapSinkClass mSinkClassesMap;
416 AmMapSource mSourceMap;
417 AmMapGateway mGatewayMap;
418 AmMapConverter mConverterMap;
419 AmMapCrossfader mCrossfaderMap;
420 AmMapConnection mConnectionMap;
421 AmMapMainConnection mMainConnectionMap;
424 mCurrentDomainID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
425 mCurrentSourceClassesID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
426 mCurrentSinkClassesID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
427 mCurrentSinkID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
428 mCurrentSourceID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
429 mCurrentGatewayID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
430 mCurrentConverterID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
431 mCurrentCrossfaderID(DYNAMIC_ID_BOUNDARY, SHRT_MAX),
437 mGatewayMap(), mConverterMap(), mCrossfaderMap(), mConnectionMap(), mMainConnectionMap()
450 bool increaseID(int16_t & resultID,
AmIdentifier & elementID, int16_t
const desiredStaticID);
457 bool increaseMainConnectionID(int16_t & resultID);
465 bool increaseConnectionID(int16_t & resultID);
467 template <
class TPr
intObject>
static void print (
const TPrintObject & t, std::ostream & output)
469 std::string description;
470 t.getDescription( description );
471 output << description;
473 template <
typename TPr
intMapKey,
class TPr
intMapObject>
static void printMap (
const std::unordered_map<TPrintMapKey, TPrintMapObject> & t, std::ostream & output)
475 typename std::unordered_map<TPrintMapKey, TPrintMapObject>::const_iterator iter = t.begin();
476 for(; iter!=t.end(); iter++)
477 AmMappedData::print(iter->second, output);
480 template <
typename TMapKey,
class TMapObject>
bool getNextConnectionID(int16_t & resultID,
AmIdentifier & connID,
481 const std::unordered_map<TMapKey, TMapObject> & map);
488 int16_t calculateDelayForRoute(
const std::vector<am_connectionID_t>& listConnectionID);
496 const am_Sink_Database_s * sinkWithNameOrID(
const am_sinkID_t sinkID,
const std::string & name)
const;
497 const am_Source_Database_s * sourceWithNameOrID(
const am_sourceID_t sourceID,
const std::string & name)
const;
498 template <
class Component>
bool isConnected(
const Component & comp)
const 500 return std::find_if(mMappedData.mConnectionMap.begin(), mMappedData.mConnectionMap.end(),[&](
const std::pair<am_connectionID_t, am_Connection_Database_s>& rConnection){
501 return (rConnection.second.sinkID == comp.sinkID ||rConnection.second.sourceID ==comp.sourceID);})!=mMappedData.mConnectionMap.end();
503 void filterDuplicateNotificationConfigurationTypes(std::vector<am_NotificationConfiguration_s> & list)
505 std::vector<am_NotificationConfiguration_s> oldList(list);
508 std::vector<am_NotificationConfiguration_s>::iterator found =
510 if (provided.type == stored.type) {
516 if (found == list.end())
517 list.push_back(provided);
522 AmMappedData mMappedData;
523 std::vector<AmDatabaseObserverCallbacks*> mDatabaseObservers;
527 void setConnectionIDRange(
const int16_t & min,
const int16_t & max)
529 mMappedData.mCurrentConnectionID.mMin = min;
530 mMappedData.mCurrentConnectionID.mMax = max;
532 void setMainConnectionIDRange(
const int16_t & min,
const int16_t & max)
534 mMappedData.mCurrentMainConnectionID.mMin = min;
535 mMappedData.mCurrentMainConnectionID.mMax = max;
537 void setSinkIDRange(
const int16_t & min,
const int16_t & max)
539 mMappedData.mCurrentSinkID.mMin = min;
540 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
std::function< void(const am_sourceID_t, const bool)> dboRemovedSource
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.
std::function< void(const am_Sink_s &)> dboNewSink
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
registers the Observer at the Database
std::function< void(const am_SystemProperty_s &)> dboSystemPropertyChanged
A Common-API wrapper class, which loads the common-api runtime and instantiates all necessary objects...
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
std::function< void(const am_sinkID_t, const am_sinkClass_t, const std::vector< am_MainSoundProperty_s > &, const bool)> dboSinkUpdated
std::function< void(const am_sinkID_t, const bool)> dboRemovedSink
struct describing source classes
This struct describes the attribiutes of a sink.
std::function< void(const am_mainConnectionID_t, const am_timeSync_t)> dboTimingInformationChanged
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)
std::function< void(const am_converterID_t)> dboRemoveConverter
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)
std::function< void(const am_sourceID_t, const am_MainSoundProperty_s &)> dboMainSourceSoundPropertyChanged
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
unsigned countObservers()
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
std::function< void(const am_crossfaderID_t)> dboRemoveCrossfader
uint16_t am_crossfaderID_t
a crossfader ID
std::function< void(const am_mainConnectionID_t)> dboRemovedMainConnection
std::function< void(const am_sinkID_t, const am_Availability_s &)> dboSinkAvailabilityChanged
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)
std::function< void(const am_mainConnectionID_t, const am_ConnectionState_e)> dboMainConnectionStateChanged
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)
int16_t mCurrentValue
current value
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
std::function< void(const am_sourceID_t, const am_NotificationConfiguration_s)> dboSourceMainNotificationConfigurationChanged
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
std::function< void(const am_Source_s &)> dboNewSource
am_Error_e getListMainConnections(std::vector< am_MainConnection_s > &listMainConnections) const
bool existConverter(const am_converterID_t converterID) const
std::function< void()> dboNumberOfSourceClassesChanged
std::function< void(const am_domainID_t)> dboRemoveDomain
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)
std::function< void(const am_sourceID_t, const am_Availability_s &)> dboSourceAvailabilityChanged
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 unregisterObserver(IAmDatabaseObserver *iObserver)
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.
std::function< void(const am_sourceID_t, const am_sourceClass_t, const std::vector< am_MainSoundProperty_s > &, const bool)> dboSourceUpdated
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()
virtual ~AmDatabaseObserverCallbacks()
std::function< void()> dboNumberOfSinkClassesChanged
am_Error_e enumerateConverters(std::function< void(const am_Converter_s &element)> cb) const
uint16_t am_sourceID_t
a source ID
AmDatabaseObserverCallbacks()
struct describing the sound property
am_Error_e getDomainOfSource(const am_sourceID_t sourceID, am_domainID_t &domainID) const
std::function< void(const am_sinkID_t, const am_MuteState_e)> dboSinkMuteStateChanged
am_Error_e removeCrossfaderDB(const am_crossfaderID_t crossfaderID)
std::function< void(const am_sinkID_t, const am_MainSoundProperty_s &)> dboMainSinkSoundPropertyChanged
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
std::function< void(const am_sinkID_t, const am_NotificationConfiguration_s)> dboSinkMainNotificationConfigurationChanged
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)
The following interface methods must be implemented by the subclass.
This class handles and abstracts the database.
The structure encapsulates the id boundary and the current id value.
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)
bool registerObserver(IAmDatabaseObserver *iObserver)
am_Error_e getListSourceClasses(std::vector< am_SourceClass_s > &listSourceClasses) const
am_HotSink_e
describes the active sink of a crossfader.
am_Error_e changeSourceInterruptState(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)
std::function< void(const am_Domain_s &)> dboNewDomain
am_Error_e enumerateGateways(std::function< void(const am_Gateway_s &element)> cb) const
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.
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
std::function< void(const am_Gateway_s &)> dboNewGateway
int16_t mMin
min possible value
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)
int16_t mMax
max possible value
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
AmIdentifier(const int16_t &min, const int16_t &max)
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
std::function< void(const am_Crossfader_s &)> dboNewCrossfader
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.
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)
#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
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
std::function< void(const am_sinkID_t, const am_mainVolume_t)> dboVolumeChanged
am_Error_e enterConverterDB(const am_Converter_s &converterData, am_converterID_t &converterID)
std::function< void(const am_gatewayID_t)> dboRemoveGateway
std::function< void(const am_MainConnectionType_s &)> dboNewMainConnection
bool existMainConnection(const am_mainConnectionID_t mainConnectionID) const
checks for a certain mainConnection
CAmDatabaseHandlerMap * mpDatabaseHandler
am_Error_e getMainSourceSoundPropertyValue(const am_sourceID_t sourceID, const am_CustomMainSoundPropertyType_t propertyType, int16_t &value) const
std::function< void(const am_Converter_s &)> dboNewConverter