AlexaClientSDK  1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
ExternalCapabilitiesBuilderInterface.h
Go to the documentation of this file.
1 /*
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0/
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 #ifndef ALEXA_CLIENT_SDK_APPLICATIONUTILITIES_DEFAULTCLIENT_INCLUDE_DEFAULTCLIENT_EXTERNALCAPABILITIESBUILDERINTERFACE_H_
17 #define ALEXA_CLIENT_SDK_APPLICATIONUTILITIES_DEFAULTCLIENT_INCLUDE_DEFAULTCLIENT_EXTERNALCAPABILITIESBUILDERINTERFACE_H_
18 
19 #include <list>
20 #include <utility>
21 
50 
51 namespace alexaClientSDK {
52 namespace defaultClient {
63 public:
67  struct Capability {
71 
73  std::shared_ptr<avsCommon::sdkInterfaces::DirectiveHandlerInterface> directiveHandler;
74  };
75 
79  virtual ~ExternalCapabilitiesBuilderInterface() = default;
80 
90  std::shared_ptr<avsCommon::sdkInterfaces::FocusManagerInterface> visualFocusManager) = 0;
91 
100  std::shared_ptr<settings::storage::DeviceSettingStorageInterface> settingStorage) = 0;
101 
110  std::shared_ptr<capabilityAgents::templateRuntime::TemplateRuntime> templateRuntime) = 0;
111 
117  virtual std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::CallManagerInterface> getCallManager() = 0;
118 
125  std::shared_ptr<avsCommon::sdkInterfaces::InternetConnectionMonitorInterface> internetConnectionMonitor) = 0;
126 
133  std::shared_ptr<avsCommon::avs::DialogUXStateAggregator> dialogUXStateAggregator) = 0;
134 
167  virtual std::pair<std::list<Capability>, std::list<std::shared_ptr<avsCommon::utils::RequiresShutdown>>>
169  std::shared_ptr<acsdkExternalMediaPlayer::ExternalMediaPlayer> externalMediaPlayer,
170  std::shared_ptr<avsCommon::sdkInterfaces::AVSConnectionManagerInterface> connectionManager,
171  std::shared_ptr<avsCommon::sdkInterfaces::MessageSenderInterface> messageSender,
172  std::shared_ptr<avsCommon::sdkInterfaces::ExceptionEncounteredSenderInterface> exceptionSender,
173  std::shared_ptr<certifiedSender::CertifiedSender> certifiedSender,
174  std::shared_ptr<avsCommon::sdkInterfaces::FocusManagerInterface> audioFocusManager,
175  std::shared_ptr<registrationManager::CustomerDataManagerInterface> dataManager,
176  std::shared_ptr<capabilityAgents::system::ReportStateHandler> stateReportHandler,
177  std::shared_ptr<capabilityAgents::aip::AudioInputProcessor> audioInputProcessor,
178  std::shared_ptr<avsCommon::sdkInterfaces::SpeakerManagerInterface> speakerManager,
179  std::shared_ptr<avsCommon::sdkInterfaces::DirectiveSequencerInterface> directiveSequencer,
180  std::shared_ptr<avsCommon::sdkInterfaces::UserInactivityMonitorInterface> userInactivityMonitor,
181  std::shared_ptr<avsCommon::sdkInterfaces::ContextManagerInterface> contextManager,
182  std::shared_ptr<avsCommon::sdkInterfaces::AVSGatewayManagerInterface> avsGatewayManager,
183  std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> ringtoneMediaPlayer,
184  std::shared_ptr<avsCommon::sdkInterfaces::audio::AudioFactoryInterface> audioFactory,
185  std::shared_ptr<avsCommon::sdkInterfaces::ChannelVolumeInterface> ringtoneChannelVolumeInterface,
186 #ifdef ENABLE_COMMS_AUDIO_PROXY
187  std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> commsMediaPlayer,
188  std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> commsSpeaker,
189  std::shared_ptr<avsCommon::avs::AudioInputStream> sharedDataStream,
190 #endif
191  std::shared_ptr<avsCommon::sdkInterfaces::PowerResourceManagerInterface> powerResourceManager,
192  std::shared_ptr<avsCommon::sdkInterfaces::ComponentReporterInterface> softwareComponentReporter,
193  std::shared_ptr<avsCommon::sdkInterfaces::PlaybackRouterInterface> playbackRouter,
194  std::shared_ptr<avsCommon::sdkInterfaces::endpoints::EndpointRegistrationManagerInterface>
195  endpointRegistrationManager) = 0;
196 };
197 
198 } // namespace defaultClient
199 } // namespace alexaClientSDK
200 
201 #endif // ALEXA_CLIENT_SDK_APPLICATIONUTILITIES_DEFAULTCLIENT_INCLUDE_DEFAULTCLIENT_EXTERNALCAPABILITIESBUILDERINTERFACE_H_
virtual ExternalCapabilitiesBuilderInterface & withDialogUXStateAggregator(std::shared_ptr< avsCommon::avs::DialogUXStateAggregator > dialogUXStateAggregator)=0
virtual ExternalCapabilitiesBuilderInterface & withVisualFocusManager(std::shared_ptr< avsCommon::sdkInterfaces::FocusManagerInterface > visualFocusManager)=0
virtual ExternalCapabilitiesBuilderInterface & withInternetConnectionMonitor(std::shared_ptr< avsCommon::sdkInterfaces::InternetConnectionMonitorInterface > internetConnectionMonitor)=0
avsCommon::utils::Optional< avsCommon::avs::CapabilityConfiguration > configuration
Definition: ExternalCapabilitiesBuilderInterface.h:70
Definition: ExternalCapabilitiesBuilderInterface.h:67
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
std::shared_ptr< avsCommon::sdkInterfaces::DirectiveHandlerInterface > directiveHandler
An optional directive handler used to process any directive included in this capability.
Definition: ExternalCapabilitiesBuilderInterface.h:73
virtual ExternalCapabilitiesBuilderInterface & withSettingsStorage(std::shared_ptr< settings::storage::DeviceSettingStorageInterface > settingStorage)=0
Definition: ExternalCapabilitiesBuilderInterface.h:62
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)=0
virtual std::shared_ptr< alexaClientSDK::avsCommon::sdkInterfaces::CallManagerInterface > getCallManager()=0
virtual ExternalCapabilitiesBuilderInterface & withTemplateRunTime(std::shared_ptr< capabilityAgents::templateRuntime::TemplateRuntime > templateRuntime)=0

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