33 #define __METHOD_NAME__ std::string (std::string("CAmRoutingReceiver::") + __func__) 39 mpDatabaseHandler(iDatabaseHandler),
40 mpRoutingSender(iRoutingSender),
41 mpControlSender(iControlSender),
42 mpSocketHandler(iSocketHandler),
44 mListStartupHandles(),
45 mListRundownHandles(),
49 mLastStartupError(
E_OK),
50 mLastRundownError(
E_OK)
52 assert(mpDatabaseHandler!=NULL);
53 assert(mpRoutingSender!=NULL);
54 assert(mpControlSender!=NULL);
55 assert(mpSocketHandler!=NULL);
59 mpDatabaseHandler(iDatabaseHandler),
60 mpRoutingSender(iRoutingSender),
61 mpControlSender(iControlSender),
62 mpSocketHandler(iSocketHandler),
63 mpDBusWrapper(iDBusWrapper),
64 mListStartupHandles(),
65 mListRundownHandles(),
69 mLastStartupError(
E_OK),
70 mLastRundownError(
E_OK)
72 assert(mpDatabaseHandler!=NULL);
73 assert(mpRoutingSender!=NULL);
74 assert(mpControlSender!=NULL);
75 assert(mpSocketHandler!=NULL);
76 assert(mpDBusWrapper!=NULL);
166 handleCallback(handle,error);
173 handleCallback(handle,error);
180 handleCallback(handle,error);
187 handleCallback(handle,error);
194 handleCallback(handle,error);
201 handleCallback(handle,error);
219 return (mpDatabaseHandler->
peekDomain(name, domainID));
254 return (mpDatabaseHandler->
peekSink(name, sinkID));
269 return (mpDatabaseHandler->
peekSource(name, sourceID));
343 #ifdef WITH_DBUS_WRAPPER 346 dbusConnectionWrapper = mpDBusWrapper;
357 socketHandler = mpSocketHandler;
369 mLastStartupError=error;
370 mListStartupHandles.erase(std::remove(mListStartupHandles.begin(), mListStartupHandles.end(), handle), mListStartupHandles.end());
371 if (mWaitStartup && mListStartupHandles.empty())
378 mLastRundownError=error;
379 mListRundownHandles.erase(std::remove(mListRundownHandles.begin(), mListRundownHandles.end(), handle), mListRundownHandles.end());
380 if (mWaitRundown && mListRundownHandles.empty())
386 uint16_t handle = ++handleCount;
387 mListStartupHandles.push_back(handle);
393 uint16_t handle = ++handleCount;
394 mListRundownHandles.push_back(handle);
400 mWaitStartup = startup;
401 mLastStartupError=
E_OK;
407 handleCallback(handle,error);
414 handleCallback(handle,error);
420 return (mpControlSender->
hookSystemUpdateGateway(gatewayID,listSourceFormats,listSinkFormats,convertionMatrix));
430 return (mpControlSender->
hookSystemUpdateSink(sinkID,sinkClassID,listSoundProperties,listConnectionFormats,listMainSoundProperties));
435 return (mpControlSender->
hookSystemUpdateSource(sourceID,sourceClassID,listSoundProperties,listConnectionFormats,listMainSoundProperties));
441 handleCallback(handle,error);
474 mWaitRundown = rundown;
475 mLastRundownError=
E_OK;
Implements the RoutingSendInterface.
virtual am_Error_e changeSourceInterruptState(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)=0
am_Error_e getDBusConnectionWrapper(CAmDbusWrapper *&dbusConnectionWrapper) const
this function is used to retrieve a pointer to the dBusConnectionWrapper
uint16_t am_connectionID_t
a connection ID
void hookSystemSourceAvailablityStateChange(const am_sourceID_t sourceID, const am_Availability_s &availability)
am_Error_e hookSystemUpdateGateway(const am_gatewayID_t gatewayID, const std::vector< am_CustomConnectionFormat_t > &listSourceConnectionFormats, const std::vector< am_CustomConnectionFormat_t > &listSinkConnectionFromats, const std::vector< bool > &convertionMatrix)
A Common-API wrapper class, which loads the common-api runtime and instantiates all necessary objects...
void hookSourceNotificationDataChange(const am_sourceID_t sourceID, const am_NotificationPayload_s &payload)
is called whenever a notified value needs to be send
void cbAckSetSinkSoundProperties(const am_Handle_s handle, const am_Error_e error)
am_Error_e
the errors of the audiomanager.
void ackSetVolumes(const am_Handle_s handle, const std::vector< am_Volumes_s > &listvolumes, const am_Error_e error)
acknowledges a asyncSetSinkVolumes
am_Error_e hookSystemRegisterSink(const am_Sink_s &sinkData, am_sinkID_t &sinkID)
am_Error_e hookSystemDeregisterCrossfader(const am_crossfaderID_t crossfaderID)
void logInfo(T value, TArgs...args)
logs given values with infolevel with the default context
void confirmRoutingReady(const uint16_t handle, const am_Error_e error)
confirms the setRoutingReady Command
virtual am_Error_e getDomainOfSink(const am_sinkID_t sinkID, am_domainID_t &domainID) const =0
void hookTimingInformationChanged(const am_connectionID_t connectionID, const am_timeSync_t delay)
is called when the timinginformation (delay) changed for a connection.
void hookSystemInterruptStateChange(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)
void hookSystemDomainRegistrationComplete(const am_domainID_t domainID)
This struct describes the attribiutes of a sink.
This struct holds the payload of a notification.
void cbAckSetSinkNotificationConfiguration(const am_Handle_s handle, const am_Error_e error)
void confirmRoutingReady(const am_Error_e error)
am_Error_e registerSource(const am_Source_s &sourceData, am_sourceID_t &sourceID)
registers a source.
void ackCrossFading(const am_Handle_s handle, const am_HotSink_e hotSink, const am_Error_e error)
acknowledges asyncCrossFade
void hookSinkNotificationDataChanged(const am_sinkID_t sinkID, const am_NotificationPayload_s &payload)
am_Error_e registerConverter(const am_Converter_s &converterData, am_converterID_t &converterID)
registers a converter.
am_Error_e hookSystemDeregisterSink(const am_sinkID_t sinkID)
void checkVolume(const am_Handle_s handle, const am_volume_t volume)
This struct describes the attribiutes of a domain.
void waitOnRundown(bool rundown)
tells the RoutingReceiver to start waiting for all handles to be confirmed
am_Error_e hookSystemUpdateSink(const am_sinkID_t sinkID, const am_sinkClass_t sinkClassID, const std::vector< am_SoundProperty_s > &listSoundProperties, const std::vector< am_CustomConnectionFormat_t > &listConnectionFormats, const std::vector< am_MainSoundProperty_s > &listMainSoundProperties)
uint16_t am_crossfaderID_t
a crossfader ID
The am::CAmSocketHandler implements a mainloop for the AudioManager.
SPDX license identifier: MPL-2.0.
am_Error_e updateSink(const am_sinkID_t sinkID, const am_sinkClass_t sinkClassID, const std::vector< am_SoundProperty_s > &listSoundProperties, const std::vector< am_CustomConnectionFormat_t > &listConnectionFormats, const std::vector< am_MainSoundProperty_s > &listMainSoundProperties)
updates data of an gateway.
am_Error_e updateConverter(const am_converterID_t converterID, const std::vector< am_CustomConnectionFormat_t > &listSourceFormats, const std::vector< am_CustomConnectionFormat_t > &listSinkFormats, const std::vector< bool > &convertionMatrix)
updates data of an converter.
void hookSystemSinkAvailablityStateChange(const am_sinkID_t sinkID, const am_Availability_s &availability)
int16_t am_timeSync_t
offset time that is introduced in milli seconds.
void confirmRoutingRundown(const uint16_t handle, const am_Error_e error)
confirms the setRoutingRundown Command
void hookSourceNotificationDataChanged(const am_sourceID_t sourceID, const am_NotificationPayload_s &payload)
am_Error_e hookSystemRegisterSource(const am_Source_s &sourceData, am_sourceID_t &sourceID)
am_Error_e deregisterGateway(const am_gatewayID_t gatewayID)
deregisters a gateway.
SPDX license identifier: MPL-2.0.
am_Error_e updateSource(const am_sourceID_t sourceID, const am_sourceClass_t sourceClassID, const std::vector< am_SoundProperty_s > &listSoundProperties, const std::vector< am_CustomConnectionFormat_t > &listConnectionFormats, const std::vector< am_MainSoundProperty_s > &listMainSoundProperties)
updates data of an source.
void hookSystemDomainStateChange(const am_domainID_t domainID, const am_DomainState_e state)
am_Error_e hookSystemRegisterConverter(const am_Converter_s &converterData, am_converterID_t &converterID)
void ackSourceVolumeTick(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume)
acknowledges a volume tick.
void cbAckCrossFade(const am_Handle_s handle, const am_HotSink_e hostsink, const am_Error_e error)
void cbAckSetSinkVolumeChange(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)
am_Error_e getDomainOfSource(const am_sourceID_t sourceID, am_domainID_t &domainID) const
E_OK in case of success.
am_Error_e peekSourceClassID(const std::string &name, am_sourceClass_t &sourceClassID)
this function peeks a sourceclassID.
am_CustomNotificationType_t type
This defines the notification type.
am_Error_e peekSink(const std::string &name, am_sinkID_t &sinkID)
This function returns the ID to the given sinkName.
void cbAckDisconnect(const am_Handle_s handle, const am_Error_e errorID)
void cbAckSetSourceNotificationConfiguration(const am_Handle_s handle, const am_Error_e error)
virtual am_Error_e peekSinkClassID(const std::string &name, am_sinkClass_t &sinkClassID)=0
am_Error_e hookSystemUpdateConverter(const am_converterID_t converterID, const std::vector< am_CustomConnectionFormat_t > &listSourceConnectionFormats, const std::vector< am_CustomConnectionFormat_t > &listSinkConnectionFromats, const std::vector< bool > &convertionMatrix)
void hookSystemSinkVolumeTick(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)
uint16_t am_converterID_t
a converter ID
int16_t value
This is finally the value of the notification.
void ackSetSourceState(const am_Handle_s handle, const am_Error_e error)
acknowlegde for asyncSetSourceState
am_Error_e registerGateway(const am_Gateway_s &gatewayData, am_gatewayID_t &gatewayID)
registers a gateway.
SPDX license identifier: MPL-2.0.
void getInterfaceVersion(std::string &version) const
This function returns the version of the interface.
void cbAckConnect(const am_Handle_s handle, const am_Error_e errorID)
am_Error_e peekSinkClassID(const std::string &name, am_sinkClass_t &sinkClassID)
this function peeks a sourceclassID.
void hookInterruptStatusChange(const am_sourceID_t sourceID, const am_InterruptState_e interruptState)
is called when a low level interrupt changes it status.
void cbAckSetSinkSoundProperty(const am_Handle_s handle, const am_Error_e error)
a handle is used for asynchronous operations and is uniquely assigned for each of this operations ...
am_Error_e hookSystemRegisterCrossfader(const am_Crossfader_s &crossfaderData, am_crossfaderID_t &crossfaderID)
void ackSetSinkSoundProperty(const am_Handle_s handle, const am_Error_e error)
acknowledges asyncSetSinkSoundProperty
uint16_t am_sourceID_t
a source ID
am_Error_e hookSystemRegisterGateway(const am_Gateway_s &gatewayData, am_gatewayID_t &gatewayID)
void hookSourceAvailablityStatusChange(const am_sourceID_t sourceID, const am_Availability_s &availability)
is called when a source changes its availability
void ackSourceNotificationConfiguration(const am_Handle_s handle, const am_Error_e error)
The acknowledge of the SourceNotificationConfiguration.
void ackSetSourceVolumeChange(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)
acknowledges a asyncsetSourceVolume
void cbAckSetSourceState(const am_Handle_s handle, const am_Error_e error)
am_Error_e deregisterConverter(const am_converterID_t converterID)
deregisters a converter.
virtual am_Error_e removeConnection(const am_connectionID_t connectionID)=0
uint16_t getStartupHandle()
returns a startup handle
sends data to the commandInterface, takes the file of the library that needs to be loaded ...
CAmRoutingReceiver(IAmDatabaseHandler *iDatabaseHandler, CAmRoutingSender *iRoutingSender, CAmControlSender *iControlSender, CAmSocketHandler *iSocketHandler)
This class handles and abstracts the database.
SPDX license identifier: MPL-2.0.
void cbAckSetSourceSoundProperty(const am_Handle_s handle, const am_Error_e error)
virtual am_Error_e getDomainOfCrossfader(const am_crossfaderID_t crossfader, am_domainID_t &domainID) const =0
void ackSetSinkSoundProperties(const am_Handle_s handle, const am_Error_e error)
acknowledges asyncSetSinkSoundProperties
am_Error_e hookSystemDeregisterDomain(const am_domainID_t domainID)
void ackSetSinkVolumeChange(const am_Handle_s handle, const am_volume_t volume, const am_Error_e error)
acknowledges a asyncsetSinkVolume
This struct describes the attributes of a converter.
void hookDomainRegistrationComplete(const am_domainID_t domainID)
This hook is called when all elements from a domain are registered.
am_Error_e peekSource(const std::string &name, am_sourceID_t &sourceID)
This function returns the ID to the given sourceName.
am_Error_e registerDomain(const am_Domain_s &domainData, am_domainID_t &domainID)
registers a domain
am_Error_e deregisterSink(const am_sinkID_t sinkID)
deregisters a sink.
am_Error_e registerSink(const am_Sink_s &sinkData, am_sinkID_t &sinkID)
Registers a sink.
am_HotSink_e
describes the active sink of a crossfader.
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 hookSystemUpdateSource(const am_sourceID_t sourceID, const am_sourceClass_t sourceClassID, const std::vector< am_SoundProperty_s > &listSoundProperties, const std::vector< am_CustomConnectionFormat_t > &listConnectionFormats, const std::vector< am_MainSoundProperty_s > &listMainSoundProperties)
am_Error_e getSocketHandler(CAmSocketHandler *&socketHandler) const
This function returns the pointer to the socketHandler.
uint16_t getRundownHandle()
returns a rundown handle
am_Error_e writeToDatabaseAndRemove(const am_Handle_s handle)
write data to Database and remove handle
am_Error_e deregisterSource(const am_sourceID_t sourceID)
deregisters a source
uint16_t am_sourceClass_t
SPDX license identifier: MPL-2.0.
void ackSinkNotificationConfiguration(const am_Handle_s handle, const am_Error_e error)
The acknowledge of the SinkNotificationConfiguration.
void cbAckSetVolume(const am_Handle_s handle, const std::vector< am_Volumes_s > &listVolumes, const am_Error_e error)
void hookSinkAvailablityStatusChange(const am_sinkID_t sinkID, const am_Availability_s &availability)
is called when a sink changes its availability
void hookSystemSingleTimingInformationChanged(const am_connectionID_t connectionID, const am_timeSync_t time)
this describes the availability of a sink or a source together with the latest change ...
This struct describes the attributes of a gateway.
am_Error_e getDomainOfSink(const am_sinkID_t sinkID, am_domainID_t &domainID) const
E_OK in case of success.
the asynchronous action was aborted
am_Error_e removeHandle(const am_Handle_s &handle)
removes a handle from the list
void hookDomainStateChange(const am_domainID_t domainID, const am_DomainState_e domainState)
is called when a domain changes its status.
am_Error_e updateGateway(const am_gatewayID_t gatewayID, const std::vector< am_CustomConnectionFormat_t > &listSourceFormats, const std::vector< am_CustomConnectionFormat_t > &listSinkFormats, const std::vector< bool > &convertionMatrix)
updates data of an gateway.
virtual am_Error_e getDomainOfSource(const am_sourceID_t sourceID, am_domainID_t &domainID) const =0
am_Error_e registerCrossfader(const am_Crossfader_s &crossfaderData, am_crossfaderID_t &crossfaderID)
this function registers a crossfader.
am_Error_e hookSystemDeregisterConverter(const am_converterID_t converterID)
virtual am_Error_e peekSource(const std::string &name, am_sourceID_t &sourceID)=0
am_Error_e deregisterCrossfader(const am_crossfaderID_t crossfaderID)
this function deregisters a crossfader.
This wraps dbus and provides everything needed to anyone who wants to use dbus (including plugins)...
virtual am_Error_e changeConnectionTimingInformation(const am_connectionID_t connectionID, const am_timeSync_t delay)=0
virtual am_Error_e peekSink(const std::string &name, am_sinkID_t &sinkID)=0
void sendChangedData(const std::vector< am_EarlyData_s > &earlyData)
this function is used to send out all data that has been changed in an early state.
am_Error_e hookSystemDeregisterGateway(const am_gatewayID_t gatewayID)
uint16_t am_domainID_t
a domain ID
void hookSystemSourceVolumeTick(const am_Handle_s handle, const am_sourceID_t sourceID, const am_volume_t volume)
void ackConnect(const am_Handle_s handle, const am_connectionID_t connectionID, const am_Error_e error)
acknowledges a asyncConnect
void cbAckSetSourceSoundProperties(const am_Handle_s handle, const am_Error_e error)
no error - positive reply
am_Error_e hookSystemDeregisterSource(const am_sourceID_t sourceID)
SPDX license identifier: MPL-2.0.
am_Error_e peekDomain(const std::string &name, am_domainID_t &domainID)
This function returns the ID to the given domainName.
void ackDisconnect(const am_Handle_s handle, const am_connectionID_t connectionID, const am_Error_e error)
acknowledges a asyncDisconnect
void confirmRoutingRundown(const am_Error_e error)
void waitOnStartup(bool startup)
tells the RoutingReceiver to start waiting for all handles to be confirmed
uint16_t am_gatewayID_t
a gateway ID
This struct describes the attribiutes of a source.
am_Error_e getDomainOfCrossfader(const am_crossfaderID_t crossfader, am_domainID_t &domainID) const
E_OK in case of success.
uint16_t am_sinkID_t
a sink ID
void cbAckSetSourceVolumeChange(const am_Handle_s handle, const am_volume_t voulme, const am_Error_e error)
void ackSetSourceSoundProperties(const am_Handle_s handle, const am_Error_e error)
acknowledges asyncSetSourceSoundProperties
am_Error_e deregisterDomain(const am_domainID_t domainID)
deregisters a domain.
am_Error_e hookSystemRegisterDomain(const am_Domain_s &domainData, am_domainID_t &domainID)
void ackSinkVolumeTick(const am_Handle_s handle, const am_sinkID_t sinkID, const am_volume_t volume)
acknowledges a volume tick.
am_Error_e removeConnectionLookup(const am_connectionID_t connectionID)
virtual am_Error_e peekDomain(const std::string &name, am_domainID_t &domainID)=0
void hookSinkNotificationDataChange(const am_sinkID_t sinkID, const am_NotificationPayload_s &payload)
is called whenever a notified value needs to be send
void ackSetSourceSoundProperty(const am_Handle_s handle, const am_Error_e error)
acknowledges asyncSetSourceSoundProperty
virtual am_Error_e peekSourceClassID(const std::string &name, am_sourceClass_t &sourceClassID)=0
void hookSystemReceiveEarlyData(const std::vector< am_EarlyData_s > &data)