AlexaClientSDK  3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
Classes | Public Member Functions | List of all members
alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface Class Referenceabstract

#include <ExternalCapabilitiesBuilderInterface.h>

Inheritance diagram for alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface:
Inheritance graph
[legend]

Classes

struct  Capability
 

Public Member Functions

virtual ~ExternalCapabilitiesBuilderInterface ()=default
 
virtual ExternalCapabilitiesBuilderInterfacewithSettingsStorage (std::shared_ptr< settings::storage::DeviceSettingStorageInterface > settingStorage)=0
 
virtual ExternalCapabilitiesBuilderInterfacewithTemplateRunTime (std::shared_ptr< templateRuntimeInterfaces::TemplateRuntimeInterface > templateRuntime)=0
 
virtual std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::CallManagerInterfacegetCallManager ()=0
 
virtual ExternalCapabilitiesBuilderInterfacewithInternetConnectionMonitor (std::shared_ptr< avsCommon::sdkInterfaces::InternetConnectionMonitorInterface > internetConnectionMonitor)=0
 
virtual ExternalCapabilitiesBuilderInterfacewithAlexaInterfaceMessageSender (std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::AlexaInterfaceMessageSenderInterface > alexaMessageSender)=0
 
virtual ExternalCapabilitiesBuilderInterfacewithDialogUXStateAggregator (std::shared_ptr< avsCommon::avs::DialogUXStateAggregator > dialogUXStateAggregator)=0
 
virtual std::pair< std::list< Capability >, std::list< std::shared_ptr< avsCommon::utils::RequiresShutdown > > > buildCapabilities (std::shared_ptr< acsdkExternalMediaPlayer::ExternalMediaPlayer > externalMediaPlayer, std::shared_ptr< avsCommon::sdkInterfaces::AVSConnectionManagerInterface > connectionManager, std::shared_ptr< avsCommon::sdkInterfaces::MessageSenderInterface > messageSender, std::shared_ptr< avsCommon::sdkInterfaces::ExceptionEncounteredSenderInterface > exceptionSender, std::shared_ptr< certifiedSender::CertifiedSender > certifiedSender, std::shared_ptr< avsCommon::sdkInterfaces::FocusManagerInterface > audioFocusManager, std::shared_ptr< registrationManager::CustomerDataManagerInterface > dataManager, std::shared_ptr< capabilityAgents::system::ReportStateHandler > stateReportHandler, std::shared_ptr< capabilityAgents::aip::AudioInputProcessor > audioInputProcessor, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerManagerInterface > speakerManager, std::shared_ptr< avsCommon::sdkInterfaces::DirectiveSequencerInterface > directiveSequencer, std::shared_ptr< avsCommon::sdkInterfaces::UserInactivityMonitorInterface > userInactivityMonitor, std::shared_ptr< avsCommon::sdkInterfaces::ContextManagerInterface > contextManager, std::shared_ptr< avsCommon::sdkInterfaces::AVSGatewayManagerInterface > avsGatewayManager, std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface > ringtoneMediaPlayer, std::shared_ptr< avsCommon::sdkInterfaces::audio::AudioFactoryInterface > audioFactory, std::shared_ptr< avsCommon::sdkInterfaces::ChannelVolumeInterface > ringtoneChannelVolumeInterface, std::shared_ptr< avsCommon::sdkInterfaces::PowerResourceManagerInterface > powerResourceManager, std::shared_ptr< avsCommon::sdkInterfaces::ComponentReporterInterface > softwareComponentReporter, std::shared_ptr< avsCommon::sdkInterfaces::PlaybackRouterInterface > playbackRouter, std::shared_ptr< avsCommon::sdkInterfaces::endpoints::EndpointRegistrationManagerInterface > endpointRegistrationManager, std::shared_ptr< avsCommon::utils::metrics::MetricRecorderInterface > metricRecorder)=0
 

Detailed Description

This interface provides a facility to add external capabilities to default client.

Default client will provide its core components in the build call.

Note
Any object created during the buildCapabilities that keep a pointer to a core component should be added or managed by an object in the list of RequiresShutdown objects returned by buildCapabilities(). This will ensure that these objects are shutdown during DefaultClient shutdown and before any core component is shutdown.

Constructor & Destructor Documentation

◆ ~ExternalCapabilitiesBuilderInterface()

virtual alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface::~ExternalCapabilitiesBuilderInterface ( )
virtualdefault

Destructor.

Member Function Documentation

◆ buildCapabilities()

virtual std::pair<std::list<Capability>, std::list<std::shared_ptr<avsCommon::utils::RequiresShutdown> > > alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface::buildCapabilities ( std::shared_ptr< acsdkExternalMediaPlayer::ExternalMediaPlayer externalMediaPlayer,
std::shared_ptr< avsCommon::sdkInterfaces::AVSConnectionManagerInterface connectionManager,
std::shared_ptr< avsCommon::sdkInterfaces::MessageSenderInterface messageSender,
std::shared_ptr< avsCommon::sdkInterfaces::ExceptionEncounteredSenderInterface exceptionSender,
std::shared_ptr< certifiedSender::CertifiedSender certifiedSender,
std::shared_ptr< avsCommon::sdkInterfaces::FocusManagerInterface audioFocusManager,
std::shared_ptr< registrationManager::CustomerDataManagerInterface dataManager,
std::shared_ptr< capabilityAgents::system::ReportStateHandler stateReportHandler,
std::shared_ptr< capabilityAgents::aip::AudioInputProcessor audioInputProcessor,
std::shared_ptr< avsCommon::sdkInterfaces::SpeakerManagerInterface speakerManager,
std::shared_ptr< avsCommon::sdkInterfaces::DirectiveSequencerInterface directiveSequencer,
std::shared_ptr< avsCommon::sdkInterfaces::UserInactivityMonitorInterface userInactivityMonitor,
std::shared_ptr< avsCommon::sdkInterfaces::ContextManagerInterface contextManager,
std::shared_ptr< avsCommon::sdkInterfaces::AVSGatewayManagerInterface avsGatewayManager,
std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface ringtoneMediaPlayer,
std::shared_ptr< avsCommon::sdkInterfaces::audio::AudioFactoryInterface audioFactory,
std::shared_ptr< avsCommon::sdkInterfaces::ChannelVolumeInterface ringtoneChannelVolumeInterface,
std::shared_ptr< avsCommon::sdkInterfaces::PowerResourceManagerInterface powerResourceManager,
std::shared_ptr< avsCommon::sdkInterfaces::ComponentReporterInterface softwareComponentReporter,
std::shared_ptr< avsCommon::sdkInterfaces::PlaybackRouterInterface playbackRouter,
std::shared_ptr< avsCommon::sdkInterfaces::endpoints::EndpointRegistrationManagerInterface endpointRegistrationManager,
std::shared_ptr< avsCommon::utils::metrics::MetricRecorderInterface metricRecorder 
)
pure virtual

Build the capabilities with the given core components.

Parameters
externalMediaPlayerObject used to manage external media playback.
connectionManagerObject responsible for managing the SDK connection with AVS.
messageSenderObject that can be used to send events to AVS.
exceptionSenderObject that can be used to send exceptions to AVS.
certifiedSenderObject that can be used to send events to AVS that require stronger guarantee.
audioFocusManagerThe focus manager for audio channels.
dataManagerObject used to manage objects that store customer data.
stateReportHandlerObject used to report the device state and its settings.
audioInputProcessorObject used to recognize voice interactions.
speakerManagerObject used to manage all speaker instances that can be controlled by Alexa.
directiveSequencerObject used to sequence and handle a stream of AVSDirective instances.
userInactivityMonitorObject used to notify an implementation of the user activity.
contextManagerObject used to provide the context for various components.
avsGatewayManagerObject used to get the AVS gateway URL data.
ringtoneMediaPlayerThe media player to play Comms ringtones.
audioFactoryThe audioFactory is a component the provides unique audio streams.
ringtoneChannelVolumeInterfaceThe ChannelVolumeInterface used for ringtone channel volume attenuation. #ifdef ENABLE_COMMS_AUDIO_PROXY
commsMediaPlayerThe media player to play Comms calling audio.
commsSpeakerThe speaker to control volume of Comms calling audio.
sharedDataStreamThe stream to use which has the audio from microphone. #endif
powerResourceManagerObject to manage power resource.
softwareComponentReporterObject to report adapters' versions.
playbackRouterObject to route local playback control command.
endpointRegistrationManagerObject to manage endpoints.
metricRecorderObject to manage AVS SDK metric reporting.
Returns
A list with all capabilities as well as objects that require explicit shutdown. Shutdown will be performed in the reverse order of occurrence.

Implemented in alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder.

◆ getCallManager()

virtual std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::CallManagerInterface> alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface::getCallManager ( )
pure virtual

◆ withAlexaInterfaceMessageSender()

virtual ExternalCapabilitiesBuilderInterface& alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface::withAlexaInterfaceMessageSender ( std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::AlexaInterfaceMessageSenderInterface alexaMessageSender)
pure virtual

This method sets the Alexa Interface Message Sender to send Alexa Interface response events.

Parameters
alexaMessageSenderThe AlexaInterfaceMessageSenderInterface object.

Implemented in alexaClientSDK::sampleApp::ExternalCapabilitiesBuilder, and alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder.

◆ withDialogUXStateAggregator()

virtual ExternalCapabilitiesBuilderInterface& alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface::withDialogUXStateAggregator ( std::shared_ptr< avsCommon::avs::DialogUXStateAggregator dialogUXStateAggregator)
pure virtual

This method sets the DialogUXStateAggregator for CallManager.

Parameters
dialogUXStateAggregatorThe DialogUXStateAggregator object.

Implemented in alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder.

◆ withInternetConnectionMonitor()

virtual ExternalCapabilitiesBuilderInterface& alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface::withInternetConnectionMonitor ( std::shared_ptr< avsCommon::sdkInterfaces::InternetConnectionMonitorInterface internetConnectionMonitor)
pure virtual

This method sets the InternetConnectionMonitor for CallManager.

Parameters
internetConnectionMonitorThe InternetConnectionMonitor object.

Implemented in alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder.

◆ withSettingsStorage()

virtual ExternalCapabilitiesBuilderInterface& alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface::withSettingsStorage ( std::shared_ptr< settings::storage::DeviceSettingStorageInterface settingStorage)
pure virtual

This method sets the storage using for setting.

Warning
The settings storage is opened and closed by DefaultClient during creation and shutdown respectively. You can add your objects that use this storage inside the list of RequiresShutdown objects managed by DefaultClient to ensure the storage usage will not be done after it closure.

◆ withTemplateRunTime()

virtual ExternalCapabilitiesBuilderInterface& alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface::withTemplateRunTime ( std::shared_ptr< templateRuntimeInterfaces::TemplateRuntimeInterface templateRuntime)
pure virtual

This method sets the TemplateRuntime Capability Agent for visual interactions.

This method will only get called if GUI supports has been enabled.

Parameters
templateRuntimeThe TemplateRuntime object.

Implemented in alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder, and alexaClientSDK::sampleApp::ExternalCapabilitiesBuilder.


The documentation for this class was generated from the following file:

AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0