/* * This file was generated by the CommonAPI Generators. * Used org.genivi.commonapi.core 2.1.6.v20140519. * Used org.franca.core 0.8.11.201401091023. * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at * http://mozilla.org/MPL/2.0/. */ /** * The interface towards the Controlling Instance (e.g HMI). It handles the * communication towards the HMI and other system components who need to interact * with the audiomanagement. There are two rules that have to be kept in mind * when implementing against this interface: * @author Christian Mueller */ #ifndef ORG_GENIVI_AM_Command_Control_STUB_DEFAULT_H_ #define ORG_GENIVI_AM_Command_Control_STUB_DEFAULT_H_ #include #include namespace org { namespace genivi { namespace am { /** * Provides a default implementation for CommandControlStubRemoteEvent and * CommandControlStub. Method callbacks have an empty implementation, * remote set calls on attributes will always change the value of the attribute * to the one received. * * Override this stub if you only want to provide a subset of the functionality * that would be defined for this service, and/or if you do not need any non-default * behaviour. */ class CommandControlStubDefault : public virtual CommandControlStub { public: CommandControlStubDefault(); CommandControlStubRemoteEvent* initStubAdapter(const std::shared_ptr& stubAdapter); const CommonAPI::Version& getInterfaceVersion(std::shared_ptr clientId); /** * connects a source to sink (at)return E_OK on success, E_NOT_POSSIBLE on * failure, E_ALREADY_EXISTS if the connection does already exists */ virtual void connect(const std::shared_ptr clientId, am_sourceID_t sourceID, am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID, am_Error_e& error); virtual void connect(am_sourceID_t sourceID, am_sinkID_t sinkID, am_mainConnectionID_t& mainConnectionID, am_Error_e& error); /** * disconnects a mainConnection (at)return E_OK on successes, E_NON_EXISTENT if * the connection does not exist, E_NOT_POSSIBLE on error. */ virtual void disconnect(const std::shared_ptr clientId, am_mainConnectionID_t mainConnectionID, am_Error_e& error); virtual void disconnect(am_mainConnectionID_t mainConnectionID, am_Error_e& error); /** * sets the volume for a sink (at)return E_OK on success, E_UNKOWN on error, * E_OUT_OF_RANGE in case the value is out of range */ virtual void setVolume(const std::shared_ptr clientId, am_sinkID_t sinkID, am_mainVolume_t volume, am_Error_e& error); virtual void setVolume(am_sinkID_t sinkID, am_mainVolume_t volume, am_Error_e& error); /** * This function is used to increment or decrement the current volume for a * sink. (at)return E_OK on success, E_UNKNOWN on error and E_OUT_OF_RANGE if the * value is not in the given volume range. */ virtual void volumeStep(const std::shared_ptr clientId, am_sinkID_t sinkID, int16_t volStep, am_Error_e& error); virtual void volumeStep(am_sinkID_t sinkID, int16_t volStep, am_Error_e& error); /** * sets the mute state of a sink (at)return E_OK on success, E_UNKNOWN on error. * If the mute state is already the desired one, the Daemon will return E_OK. */ virtual void setSinkMuteState(const std::shared_ptr clientId, am_sinkID_t sinkID, am_MuteState_e muteState, am_Error_e& error); virtual void setSinkMuteState(am_sinkID_t sinkID, am_MuteState_e muteState, am_Error_e& error); /** * This method is used to set sound properties, e.g. Equalizer Values. Since the * capabilities of the system can differ, the exact key value pairs can be * extended in each product (at)return E_OK on success, E_OUT_OF_RANGE if value * exceeds range, E_UNKNOWN in case of an error */ virtual void setMainSinkSoundProperty(const std::shared_ptr clientId, am_sinkID_t sinkID, am_MainSoundProperty_s soundProperty, am_Error_e& error); virtual void setMainSinkSoundProperty(am_sinkID_t sinkID, am_MainSoundProperty_s soundProperty, am_Error_e& error); /** * This method is used to set sound properties, e.g. Equalizer Values. Since the * capabilities of the system can differ, the exact key value pairs can be * extended in each product (at)return E_OK on success, E_OUT_OF_RANGE if value * exceeds range, E_UNKNOWN in case of an error */ virtual void setMainSourceSoundProperty(const std::shared_ptr clientId, am_sourceID_t sourceID, am_MainSoundProperty_s soundProperty, am_Error_e& error); virtual void setMainSourceSoundProperty(am_sourceID_t sourceID, am_MainSoundProperty_s soundProperty, am_Error_e& error); /** * is used to set a specific system property. (at)return E_OK on success, * E_OUT_OF_RANGE if value exceeds range, E_UNKNOWN in case of an error */ virtual void setSystemProperty(const std::shared_ptr clientId, am_SystemProperty_s property, am_Error_e& error); virtual void setSystemProperty(am_SystemProperty_s property, am_Error_e& error); /** * returns the actual list of MainConnections (at)return E_OK on success, * E_DATABASE_ERROR on error */ virtual void getListMainConnections(const std::shared_ptr clientId, am_MainConnection_L& listConnections, am_Error_e& error); virtual void getListMainConnections(am_MainConnection_L& listConnections, am_Error_e& error); /** * returns the actual list of Sinks (at)return E_OK on success, E_DATABASE_ERROR * on error */ virtual void getListMainSinks(const std::shared_ptr clientId, am_SinkType_L& listMainSinks, am_Error_e& error); virtual void getListMainSinks(am_SinkType_L& listMainSinks, am_Error_e& error); /** * returns the actual list of Sources (at)return E_OK on success, E_DATABASE_ERROR * on error */ virtual void getListMainSources(const std::shared_ptr clientId, am_SourceType_L& listMainSources, am_Error_e& error); virtual void getListMainSources(am_SourceType_L& listMainSources, am_Error_e& error); /** * This is used to retrieve all source sound properties related to a source. * Returns a vector of the sound properties and values as pair (at)return E_OK on * success, E_DATABASE_ERROR on error */ virtual void getListMainSinkSoundProperties(const std::shared_ptr clientId, am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); virtual void getListMainSinkSoundProperties(am_sinkID_t sinkID, am_MainSoundProperty_L& listSoundProperties, am_Error_e& error); /** * This is used to retrieve all source sound properties related to a * source. (at)return E_OK on success, E_DATABASE_ERROR on error */ virtual void getListMainSourceSoundProperties(const std::shared_ptr clientId, am_sourceID_t sourceID, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error); virtual void getListMainSourceSoundProperties(am_sourceID_t sourceID, am_MainSoundProperty_L& listSourceProperties, am_Error_e& error); /** * This is used to retrieve SourceClass Information of all source classes * (at)return E_OK on success, E_DATABASE_ERROR on error */ virtual void getListSourceClasses(const std::shared_ptr clientId, am_SourceClass_L& listSourceClasses, am_Error_e& error); virtual void getListSourceClasses(am_SourceClass_L& listSourceClasses, am_Error_e& error); /** * This is used to retrieve SinkClass Information of all sink classes (at)return * E_OK on success, E_DATABASE_ERROR on error */ virtual void getListSinkClasses(const std::shared_ptr clientId, am_SinkClass_L& listSinkClasses, am_Error_e& error); virtual void getListSinkClasses(am_SinkClass_L& listSinkClasses, am_Error_e& error); /** * Retrieves a complete list of all systemProperties. (at)return E_OK on success, * E_DATABASE_ERROR on error */ virtual void getListSystemProperties(const std::shared_ptr clientId, am_SystemProperty_L& listSystemProperties, am_Error_e& error); virtual void getListSystemProperties(am_SystemProperty_L& listSystemProperties, am_Error_e& error); /** * returns the delay in ms that the audiopath for the given mainConnection * has (at)return E_OK on success, E_NOT_POSSIBLE if timing information is not * yet retrieved, E_DATABASE_ERROR on read error on the database */ virtual void getTimingInformation(const std::shared_ptr clientId, am_mainConnectionID_t mainConnectionID, am_timeSync_t& delay, am_Error_e& error); virtual void getTimingInformation(am_mainConnectionID_t mainConnectionID, am_timeSync_t& delay, am_Error_e& error); /** * Retrieves the list of MainNotifications for a sink. Does not return the * possible ones. */ virtual void getListMainSinkNotificationConfigurations(const std::shared_ptr clientId, am_sinkID_t sinkID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); virtual void getListMainSinkNotificationConfigurations(am_sinkID_t sinkID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); /** * Retrieves the list of MainNotifications for a source. Does not return the * possible ones. */ virtual void getListMainSourceNotificationConfigurations(const std::shared_ptr clientId, am_sourceID_t sourceID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); virtual void getListMainSourceNotificationConfigurations(am_sourceID_t sourceID, am_NotificationConfiguration_L& listMainNotificationConfigurations, am_Error_e& error); /** * sets a MainNotificationConfiuration. This can be used to turn on an off * notifications an to change the mode of the configuration. (at)return E_OK on * success, E_NON_EXISTENT if sinkID does not exists, E_DATABASE_ERROR on error */ virtual void setMainSinkNotificationConfiguration(const std::shared_ptr clientId, am_sinkID_t sinkID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error); virtual void setMainSinkNotificationConfiguration(am_sinkID_t sinkID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error); /** * sets a MainNotificationConfiuration. This can be used to turn on an off * notifications an to change the mode of the configuration. (at)return E_OK on * success, E_NON_EXISTENT if sourceID does not exists, E_DATABASE_ERROR on error */ virtual void setMainSourceNotificationConfiguration(const std::shared_ptr clientId, am_sourceID_t sourceID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error); virtual void setMainSourceNotificationConfiguration(am_sourceID_t sourceID, am_NotificationConfiguration_s mainNotificationConfiguration, am_Error_e& error); /** * Callback that is called when the number of connections change */ virtual void fireNewMainConnectionEvent(const am_MainConnectionType_s& mainConnection); /** * Callback that is called when the number of connections change */ virtual void fireRemovedMainConnectionEvent(const am_mainConnectionID_t& mainConnection); /** * Callback that is called when the number of sinks change */ virtual void fireNewSinkEvent(const am_SinkType_s& sink); /** * Callback that is called when the number of sinks change */ virtual void fireRemovedSinkEvent(const am_sinkID_t& sinkID); /** * Callback that is called when the number of sources change */ virtual void fireNewSourceEvent(const am_SourceType_s& source); /** * Callback that is called when the number of sources change */ virtual void fireRemovedSourceEvent(const am_sourceID_t& source); /** * this callback is fired if the number of sink classes changed */ virtual void fireNumberOfSinkClassesChangedEvent(); /** * this callback is fired if the number of source classes changed */ virtual void fireNumberOfSourceClassesChangedEvent(); /** * This callback is called when the ConnectionState of a connection changed. */ virtual void fireMainConnectionStateChangedEvent(const am_mainConnectionID_t& connectionID, const am_ConnectionState_e& connectionState); /** * this callback indicates that a sinkSoundProperty has changed. */ virtual void fireMainSinkSoundPropertyChangedEvent(const am_sinkID_t& sinkID, const am_MainSoundProperty_s& soundProperty); /** * this callback indicates that a sourceSoundProperty has changed. */ virtual void fireMainSourceSoundPropertyChangedEvent(const am_sourceID_t& sourceID, const am_MainSoundProperty_s& soundProperty); /** * this callback is called when the availability of a sink has changed */ virtual void fireSinkAvailabilityChangedEvent(const am_sinkID_t& sinkID, const am_Availability_s& availability); /** * this callback is called when the availability of source has changed. */ virtual void fireSourceAvailabilityChangedEvent(const am_sourceID_t& sourceID, const am_Availability_s& availability); /** * this callback indicates a volume change on the indicated sink */ virtual void fireVolumeChangedEvent(const am_sinkID_t& sinkID, const am_mainVolume_t& volume); /** * this callback indicates a mute state change on a sink. */ virtual void fireSinkMuteStateChangedEvent(const am_sinkID_t& sinkID, const am_MuteState_e& muteState); /** * is fired if a systemProperty changed */ virtual void fireSystemPropertyChangedEvent(const am_SystemProperty_s& systemProperty); /** * This callback is fired if the timinginformation for a mainConnectionID changed */ virtual void fireTimingInformationChangedEvent(const am_mainConnectionID_t& mainConnectionID, const am_timeSync_t& time); /** * This callback is called when a sink is updated. */ virtual void fireSinkUpdatedEvent(const am_sinkID_t& sinkID, const am_sinkClass_t& sinkClassID, const am_MainSoundProperty_L& listMainSoundProperties); /** * This callback is called when a source is updated. */ virtual void fireSourceUpdatedEvent(const am_sourceID_t& sourceID, const am_sourceClass_t& sourceClassID, const am_MainSoundProperty_L& listMainSoundProperties); /** * This callback is called when a notificated value of a sink changes. */ virtual void fireSinkNotificationEvent(const am_sinkID_t& sinkID, const am_NotificationPayload_s& notification); /** * This callback is called when a notifcated value of a source changes. */ virtual void fireSourceNotificationEvent(const am_sourceID_t& sourceID, const am_NotificationPayload_s& notification); /** * This callback is triggered when a mainNotificationConfiguration is changed. */ virtual void fireMainSinkNotificationConfigurationChangedEvent(const am_sinkID_t& sinkID, const am_NotificationConfiguration_s& mainNotificationConfiguration); /** * This callback is triggered when a mainNotificationConfiguration is changed. */ virtual void fireMainSourceNotificationConfigurationChangedEvent(const am_sourceID_t& sourceID, const am_NotificationConfiguration_s& mainNotificationConfiguration); protected: class RemoteEventHandler: public virtual CommandControlStubRemoteEvent { public: RemoteEventHandler(CommandControlStubDefault* defaultStub); private: CommandControlStubDefault* defaultStub_; }; private: CommandControlStubDefault::RemoteEventHandler remoteEventHandler_; CommonAPI::Version interfaceVersion_; }; } // namespace am } // namespace genivi } // namespace org #endif // ORG_GENIVI_AM_Command_Control_STUB_DEFAULT_H_