AlexaClientSDK  3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
Public Member Functions | List of all members
alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder Class Reference

#include <ExternalCapabilitiesBuilder.h>

Inheritance diagram for alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder:
Inheritance graph
[legend]
Collaboration diagram for alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder:
Collaboration graph
[legend]

Public Member Functions

 ExternalCapabilitiesBuilder (std::shared_ptr< avsCommon::utils::DeviceInfo > deviceInfo)
 
ExternalCapabilitiesBuilderInterface methods.
ExternalCapabilitiesBuilderwithSettingsStorage (std::shared_ptr< settings::storage ::DeviceSettingStorageInterface > settingStorage) override
 
ExternalCapabilitiesBuilderwithTemplateRunTime (std::shared_ptr< templateRuntimeInterfaces::TemplateRuntimeInterface > templateRuntime) override
 
std::shared_ptr< avsCommon::sdkInterfaces::CallManagerInterfacegetCallManager () override
 
ExternalCapabilitiesBuilderwithInternetConnectionMonitor (std::shared_ptr< avsCommon::sdkInterfaces::InternetConnectionMonitorInterface > internetConnectionMonitor) override
 
ExternalCapabilitiesBuilderwithDialogUXStateAggregator (std::shared_ptr< avsCommon::avs::DialogUXStateAggregator > dialogUXStateAggregator) override
 
ExternalCapabilitiesBuilderInterface & withAlexaInterfaceMessageSender (std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::AlexaInterfaceMessageSenderInterface > alexaMessageSender) override
 
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) override
 
- Public Member Functions inherited from alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface
virtual ~ExternalCapabilitiesBuilderInterface ()=default
 
virtual ExternalCapabilitiesBuilderInterfacewithSettingsStorage (std::shared_ptr< settings::storage::DeviceSettingStorageInterface > settingStorage)=0
 

Detailed Description

This class 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

◆ ExternalCapabilitiesBuilder()

alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder::ExternalCapabilitiesBuilder ( std::shared_ptr< avsCommon::utils::DeviceInfo deviceInfo)

Constructor.

Parameters
deviceInfoDeviceInfo which reflects the device setup credentials.

Member Function Documentation

◆ buildCapabilities()

std::pair<std::list<Capability>, std::list<std::shared_ptr<avsCommon::utils::RequiresShutdown> > > alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder::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 
)
overridevirtual

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.

Implements alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface.

◆ getCallManager()

std::shared_ptr<avsCommon::sdkInterfaces::CallManagerInterface> alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder::getCallManager ( )
overridevirtual

Get the CallManager reference.

Returns
A reference of CallManager.

Implements alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface.

◆ withAlexaInterfaceMessageSender()

ExternalCapabilitiesBuilderInterface& alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder::withAlexaInterfaceMessageSender ( std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::AlexaInterfaceMessageSenderInterface alexaMessageSender)
overridevirtual

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

Parameters
alexaMessageSenderThe AlexaInterfaceMessageSenderInterface object.

Implements alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface.

◆ withDialogUXStateAggregator()

ExternalCapabilitiesBuilder& alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder::withDialogUXStateAggregator ( std::shared_ptr< avsCommon::avs::DialogUXStateAggregator dialogUXStateAggregator)
overridevirtual

This method sets the DialogUXStateAggregator for CallManager.

Parameters
dialogUXStateAggregatorThe DialogUXStateAggregator object.

Implements alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface.

◆ withInternetConnectionMonitor()

ExternalCapabilitiesBuilder& alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder::withInternetConnectionMonitor ( std::shared_ptr< avsCommon::sdkInterfaces::InternetConnectionMonitorInterface internetConnectionMonitor)
overridevirtual

This method sets the InternetConnectionMonitor for CallManager.

Parameters
internetConnectionMonitorThe InternetConnectionMonitor object.

Implements alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface.

◆ withSettingsStorage()

ExternalCapabilitiesBuilder& alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder::withSettingsStorage ( std::shared_ptr< settings::storage ::DeviceSettingStorageInterface >  settingStorage)
override

◆ withTemplateRunTime()

ExternalCapabilitiesBuilder& alexaClientSDK::sampleApplications::ipcServerSampleApp::ExternalCapabilitiesBuilder::withTemplateRunTime ( std::shared_ptr< templateRuntimeInterfaces::TemplateRuntimeInterface templateRuntime)
overridevirtual

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.

Implements alexaClientSDK::defaultClient::ExternalCapabilitiesBuilderInterface.


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