16 #ifndef ALEXA_CLIENT_SDK_APPLICATIONUTILITIES_DEFAULTCLIENT_INCLUDE_DEFAULTCLIENT_DEFAULTCLIENTBUILDER_H_ 17 #define ALEXA_CLIENT_SDK_APPLICATIONUTILITIES_DEFAULTCLIENT_INCLUDE_DEFAULTCLIENT_DEFAULTCLIENTBUILDER_H_ 57 #include <acsdk/PhoneCallControllerInterfaces/Phone/PhoneCallerInterface.h> 58 #include <acsdk/PhoneCallController/PhoneCallController.h> 62 #include <acsdk/MeetingClientControllerInterfaces/Calendar/CalendarClientInterface.h> 63 #include <acsdk/MeetingClientControllerInterfaces/Meeting/MeetingClientInterface.h> 64 #include <acsdk/MeetingClientController/MeetingClientController.h> 73 namespace defaultClient {
155 static std::unique_ptr<DefaultClientBuilder>
create(
156 std::shared_ptr<avsCommon::utils::DeviceInfo> deviceInfo,
157 std::shared_ptr<registrationManager::CustomerDataManagerInterface> customerDataManager,
158 std::unordered_map<
std::string, std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface>>
159 externalMusicProviderMediaPlayers,
160 std::unordered_map<
std::string, std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface>>
161 externalMusicProviderSpeakers,
163 std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> speakMediaPlayer,
164 std::unique_ptr<avsCommon::utils::mediaPlayer::MediaPlayerFactoryInterface> audioMediaPlayerFactory,
165 std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> alertsMediaPlayer,
166 std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> notificationsMediaPlayer,
167 std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> bluetoothMediaPlayer,
168 std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> ringtoneMediaPlayer,
169 std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> systemSoundMediaPlayer,
170 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> speakSpeaker,
171 std::vector<std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface>> audioSpeakers,
172 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> alertsSpeaker,
173 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> notificationsSpeaker,
174 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> bluetoothSpeaker,
175 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> ringtoneSpeaker,
176 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> systemSoundSpeaker,
179 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface>> additionalSpeakers,
181 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> phoneSpeaker,
182 std::shared_ptr<phoneCallControllerInterfaces::phone::PhoneCallerInterface> phoneCaller,
185 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> meetingSpeaker,
186 std::shared_ptr<meetingClientControllerInterfaces::meeting::MeetingClientInterface> meetingClient,
187 std::shared_ptr<meetingClientControllerInterfaces::calendar::CalendarClientInterface> calendarClient,
189 #ifdef ENABLE_COMMS_AUDIO_PROXY
190 std::shared_ptr<avsCommon::utils::mediaPlayer::MediaPlayerInterface> commsMediaPlayer,
191 std::shared_ptr<avsCommon::sdkInterfaces::SpeakerInterface> commsSpeaker,
192 std::shared_ptr<avsCommon::avs::AudioInputStream> sharedDataStream,
194 std::shared_ptr<EqualizerRuntimeSetup> equalizerRuntimeSetup,
195 std::shared_ptr<avsCommon::sdkInterfaces::audio::AudioFactoryInterface> audioFactory,
196 std::shared_ptr<avsCommon::sdkInterfaces::AuthDelegateInterface> authDelegate,
197 std::shared_ptr<acsdkAlerts::storage::AlertStorageInterface> alertStorage,
198 std::shared_ptr<certifiedSender::MessageStorageInterface> messageStorage,
199 std::shared_ptr<acsdkNotificationsInterfaces::NotificationsStorageInterface> notificationsStorage,
200 std::shared_ptr<settings::storage::DeviceSettingStorageInterface> deviceSettingStorage,
201 std::shared_ptr<acsdkBluetoothInterfaces::BluetoothStorageInterface> bluetoothStorage,
202 std::shared_ptr<avsCommon::sdkInterfaces::storage::MiscStorageInterface> miscStorage,
203 std::unordered_set<std::shared_ptr<avsCommon::sdkInterfaces::DialogUXStateObserverInterface>>
204 alexaDialogStateObservers,
205 std::unordered_set<std::shared_ptr<avsCommon::sdkInterfaces::ConnectionStatusObserverInterface>>
207 std::shared_ptr<avsCommon::sdkInterfaces::InternetConnectionMonitorInterface> internetConnectionMonitor,
209 std::shared_ptr<avsCommon::sdkInterfaces::CapabilitiesDelegateInterface> capabilitiesDelegate,
210 std::shared_ptr<avsCommon::sdkInterfaces::ContextManagerInterface> contextManager,
211 std::shared_ptr<alexaClientSDK::acl::TransportFactoryInterface> transportFactory,
212 std::shared_ptr<avsCommon::sdkInterfaces::AVSGatewayManagerInterface> avsGatewayManager,
213 std::shared_ptr<avsCommon::sdkInterfaces::LocaleAssetsManagerInterface> localeAssetsManager,
214 std::unordered_set<std::shared_ptr<avsCommon::sdkInterfaces::bluetooth::BluetoothDeviceConnectionRuleInterface>>
215 enabledConnectionRules = std::unordered_set<
216 std::shared_ptr<avsCommon::sdkInterfaces::bluetooth::BluetoothDeviceConnectionRuleInterface>>(),
217 std::shared_ptr<avsCommon::sdkInterfaces::SystemTimeZoneInterface> systemTimezone =
nullptr,
220 bool sendSoftwareInfoOnConnected =
false,
221 std::shared_ptr<avsCommon::sdkInterfaces::SoftwareInfoSenderObserverInterface> softwareInfoSenderObserver =
223 std::unique_ptr<avsCommon::sdkInterfaces::bluetooth::BluetoothDeviceManagerInterface> bluetoothDeviceManager =
225 std::shared_ptr<avsCommon::utils::metrics::MetricRecorderInterface>
metricRecorder =
nullptr,
226 std::shared_ptr<avsCommon::sdkInterfaces::PowerResourceManagerInterface> powerResourceManager =
nullptr,
227 std::shared_ptr<avsCommon::sdkInterfaces::diagnostics::DiagnosticsInterface> diagnostics =
nullptr,
228 std::shared_ptr<ExternalCapabilitiesBuilderInterface> externalCapabilitiesBuilder =
nullptr,
229 std::shared_ptr<avsCommon::sdkInterfaces::ChannelVolumeFactoryInterface> channelVolumeFactory =
231 bool startAlertSchedulingOnInitialization =
true,
232 std::shared_ptr<alexaClientSDK::acl::MessageRouterFactoryInterface> messageRouterFactory =
233 std::make_shared<alexaClientSDK::acl::MessageRouterFactory>(),
234 std::shared_ptr<avsCommon::sdkInterfaces::ExpectSpeechTimeoutHandlerInterface> expectSpeechTimeoutHandler =
238 std::shared_ptr<alexaClientSDK::cryptoInterfaces::CryptoFactoryInterface> cryptoFactory =
nullptr);
245 std::shared_ptr<DefaultClient>
construct(
const std::shared_ptr<sdkClient::SDKClientRegistry>& sdkClientRegistry);
260 std::shared_ptr<alexaClientSDK::avsCommon::utils::DeviceInfo> m_deviceInfo;
264 std::shared_ptr<alexaClientSDK::registrationManager::CustomerDataManagerInterface> m_customerDataManager;
268 unordered_map<std::string, std::shared_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerInterface>>
269 m_externalMusicProviderMediaPlayers;
272 std::unordered_map<std::string, std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface>>
273 m_externalMusicProviderSpeakers;
280 std::shared_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerInterface> m_speakMediaPlayer;
283 std::unique_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerFactoryInterface>
284 m_audioMediaPlayerFactory;
287 std::shared_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerInterface> m_alertsMediaPlayer;
290 std::shared_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerInterface> m_notificationsMediaPlayer;
293 std::shared_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerInterface> m_bluetoothMediaPlayer;
296 std::shared_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerInterface> m_ringtoneMediaPlayer;
299 std::shared_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerInterface> m_systemSoundMediaPlayer;
302 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_speakSpeaker;
305 std::vector<std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface>> m_audioSpeakers;
308 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_alertsSpeaker;
311 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_notificationsSpeaker;
314 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_bluetoothSpeaker;
317 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_ringtoneSpeaker;
320 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_systemSoundSpeaker;
325 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface>>
326 m_additionalSpeakers;
329 std::shared_ptr<EqualizerRuntimeSetup> m_equalizerRuntimeSetup;
332 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::audio::AudioFactoryInterface> m_audioFactory;
335 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::AuthDelegateInterface> m_authDelegate;
338 std::shared_ptr<alexaClientSDK::acsdkAlerts::storage::AlertStorageInterface> m_alertStorage;
341 std::shared_ptr<alexaClientSDK::certifiedSender::MessageStorageInterface> m_messageStorage;
344 std::shared_ptr<alexaClientSDK::acsdkNotificationsInterfaces::NotificationsStorageInterface> m_notificationsStorage;
347 std::shared_ptr<alexaClientSDK::settings::storage::DeviceSettingStorageInterface> m_deviceSettingStorage;
350 std::shared_ptr<alexaClientSDK::acsdkBluetoothInterfaces::BluetoothStorageInterface> m_bluetoothStorage;
353 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::storage::MiscStorageInterface> m_miscStorage;
356 std::unordered_set<std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::DialogUXStateObserverInterface>>
357 m_alexaDialogStateObservers;
360 std::unordered_set<std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::ConnectionStatusObserverInterface>>
361 m_connectionObservers;
364 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::InternetConnectionMonitorInterface>
365 m_internetConnectionMonitor;
368 bool m_isGuiSupported;
371 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::CapabilitiesDelegateInterface> m_capabilitiesDelegate;
374 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::ContextManagerInterface> m_contextManager;
377 std::shared_ptr<alexaClientSDK::acl::TransportFactoryInterface> m_transportFactory;
380 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::AVSGatewayManagerInterface> m_avsGatewayManager;
383 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::LocaleAssetsManagerInterface> m_localeAssetsManager;
387 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::bluetooth::BluetoothDeviceConnectionRuleInterface>>
388 m_enabledConnectionRules;
391 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SystemTimeZoneInterface> m_systemTimezone;
397 bool m_sendSoftwareInfoOnConnected;
400 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SoftwareInfoSenderObserverInterface>
401 m_softwareInfoSenderObserver;
404 std::unique_ptr<alexaClientSDK::avsCommon::sdkInterfaces::bluetooth::BluetoothDeviceManagerInterface>
405 m_bluetoothDeviceManager;
408 std::shared_ptr<alexaClientSDK::avsCommon::utils::metrics::MetricRecorderInterface> m_metricRecorder;
411 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::PowerResourceManagerInterface> m_powerResourceManager;
414 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::diagnostics::DiagnosticsInterface> m_diagnostics;
417 std::shared_ptr<ExternalCapabilitiesBuilderInterface> m_externalCapabilitiesBuilder;
420 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::ChannelVolumeFactoryInterface> m_channelVolumeFactory;
424 bool m_startAlertSchedulingOnInitialization;
427 std::shared_ptr<alexaClientSDK::acl::MessageRouterFactoryInterface> m_messageRouterFactory;
431 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::ExpectSpeechTimeoutHandlerInterface>
432 m_expectSpeechTimeoutHandler;
439 std::shared_ptr<alexaClientSDK::cryptoInterfaces::CryptoFactoryInterface> m_cryptoFactory;
441 #ifdef ENABLE_COMMS_AUDIO_PROXY 442 std::shared_ptr<alexaClientSDK::avsCommon::utils::mediaPlayer::MediaPlayerInterface> m_commsMediaPlayer;
446 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_commsSpeaker;
449 std::shared_ptr<alexaClientSDK::avsCommon::avs::AudioInputStream> m_sharedDataStream;
453 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_phoneSpeaker;
457 std::shared_ptr<phoneCallControllerInterfaces::phone::PhoneCallerInterface> m_phoneCaller;
461 std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerInterface> m_meetingSpeaker;
465 std::shared_ptr<meetingClientControllerInterfaces::meeting::MeetingClientInterface> m_meetingClient;
468 std::shared_ptr<meetingClientControllerInterfaces::calendar::CalendarClientInterface> m_calendarClient;
473 #endif // ALEXA_CLIENT_SDK_APPLICATIONUTILITIES_DEFAULTCLIENT_INCLUDE_DEFAULTCLIENT_DEFAULTCLIENTBUILDER_H_
Definition: FeatureClientBuilderInterface.h:37
::std::string string
Definition: gtest-port.h:1097
std::shared_ptr< avsCommon::sdkInterfaces::ChannelVolumeFactoryInterface > createChannelVolumeFactory() noexcept
Create default implementation of ChannelVolumeFactoryInterface.
static const AudioProvider & null()
Definition: AudioProvider.h:171
Type
Definition: ChannelVolumeInterface.h:37
Definition: AudioProvider.h:31
static std::shared_ptr< avsCommon::utils::metrics::MetricRecorderInterface > metricRecorder
Metric recorder shared ptr.
Definition: BaseAPLCapabilityAgentTest.cpp:261
static const FirmwareVersion INVALID_FIRMWARE_VERSION
The invalid firmware version.
Definition: SoftwareInfoSenderObserverInterface.h:32
Definition: DefaultClientBuilder.h:77
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
static std::unique_ptr< DefaultClientBuilder > create(std::shared_ptr< avsCommon::utils::DeviceInfo > deviceInfo, std::shared_ptr< registrationManager::CustomerDataManagerInterface > customerDataManager, std::unordered_map< std::string, std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface >> externalMusicProviderMediaPlayers, std::unordered_map< std::string, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface >> externalMusicProviderSpeakers, acsdkExternalMediaPlayer::ExternalMediaPlayer::AdapterCreationMap adapterCreationMap, std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface > speakMediaPlayer, std::unique_ptr< avsCommon::utils::mediaPlayer::MediaPlayerFactoryInterface > audioMediaPlayerFactory, std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface > alertsMediaPlayer, std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface > notificationsMediaPlayer, std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface > bluetoothMediaPlayer, std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface > ringtoneMediaPlayer, std::shared_ptr< avsCommon::utils::mediaPlayer::MediaPlayerInterface > systemSoundMediaPlayer, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface > speakSpeaker, std::vector< std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface >> audioSpeakers, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface > alertsSpeaker, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface > notificationsSpeaker, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface > bluetoothSpeaker, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface > ringtoneSpeaker, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface > systemSoundSpeaker, std::multimap< avsCommon::sdkInterfaces::ChannelVolumeInterface::Type, std::shared_ptr< avsCommon::sdkInterfaces::SpeakerInterface >> additionalSpeakers, std::shared_ptr< EqualizerRuntimeSetup > equalizerRuntimeSetup, std::shared_ptr< avsCommon::sdkInterfaces::audio::AudioFactoryInterface > audioFactory, std::shared_ptr< avsCommon::sdkInterfaces::AuthDelegateInterface > authDelegate, std::shared_ptr< acsdkAlerts::storage::AlertStorageInterface > alertStorage, std::shared_ptr< certifiedSender::MessageStorageInterface > messageStorage, std::shared_ptr< acsdkNotificationsInterfaces::NotificationsStorageInterface > notificationsStorage, std::shared_ptr< settings::storage::DeviceSettingStorageInterface > deviceSettingStorage, std::shared_ptr< acsdkBluetoothInterfaces::BluetoothStorageInterface > bluetoothStorage, std::shared_ptr< avsCommon::sdkInterfaces::storage::MiscStorageInterface > miscStorage, std::unordered_set< std::shared_ptr< avsCommon::sdkInterfaces::DialogUXStateObserverInterface >> alexaDialogStateObservers, std::unordered_set< std::shared_ptr< avsCommon::sdkInterfaces::ConnectionStatusObserverInterface >> connectionObservers, std::shared_ptr< avsCommon::sdkInterfaces::InternetConnectionMonitorInterface > internetConnectionMonitor, bool isGuiSupported, std::shared_ptr< avsCommon::sdkInterfaces::CapabilitiesDelegateInterface > capabilitiesDelegate, std::shared_ptr< avsCommon::sdkInterfaces::ContextManagerInterface > contextManager, std::shared_ptr< alexaClientSDK::acl::TransportFactoryInterface > transportFactory, std::shared_ptr< avsCommon::sdkInterfaces::AVSGatewayManagerInterface > avsGatewayManager, std::shared_ptr< avsCommon::sdkInterfaces::LocaleAssetsManagerInterface > localeAssetsManager, std::unordered_set< std::shared_ptr< avsCommon::sdkInterfaces::bluetooth::BluetoothDeviceConnectionRuleInterface >> enabledConnectionRules=std::unordered_set< std::shared_ptr< avsCommon::sdkInterfaces::bluetooth::BluetoothDeviceConnectionRuleInterface >>(), std::shared_ptr< avsCommon::sdkInterfaces::SystemTimeZoneInterface > systemTimezone=nullptr, avsCommon::sdkInterfaces::softwareInfo::FirmwareVersion firmwareVersion=avsCommon::sdkInterfaces::softwareInfo::INVALID_FIRMWARE_VERSION, bool sendSoftwareInfoOnConnected=false, std::shared_ptr< avsCommon::sdkInterfaces::SoftwareInfoSenderObserverInterface > softwareInfoSenderObserver=nullptr, std::unique_ptr< avsCommon::sdkInterfaces::bluetooth::BluetoothDeviceManagerInterface > bluetoothDeviceManager=nullptr, std::shared_ptr< avsCommon::utils::metrics::MetricRecorderInterface > metricRecorder=nullptr, std::shared_ptr< avsCommon::sdkInterfaces::PowerResourceManagerInterface > powerResourceManager=nullptr, std::shared_ptr< avsCommon::sdkInterfaces::diagnostics::DiagnosticsInterface > diagnostics=nullptr, std::shared_ptr< ExternalCapabilitiesBuilderInterface > externalCapabilitiesBuilder=nullptr, std::shared_ptr< avsCommon::sdkInterfaces::ChannelVolumeFactoryInterface > channelVolumeFactory=speakerManager::createChannelVolumeFactory(), bool startAlertSchedulingOnInitialization=true, std::shared_ptr< alexaClientSDK::acl::MessageRouterFactoryInterface > messageRouterFactory=std::make_shared< alexaClientSDK::acl::MessageRouterFactory >(), std::shared_ptr< avsCommon::sdkInterfaces::ExpectSpeechTimeoutHandlerInterface > expectSpeechTimeoutHandler=nullptr, capabilityAgents::aip::AudioProvider firstInteractionAudioProvider=capabilityAgents::aip::AudioProvider::null(), std::shared_ptr< alexaClientSDK::cryptoInterfaces::CryptoFactoryInterface > cryptoFactory=nullptr)
int32_t FirmwareVersion
Type to use to communicate a firmware version.
Definition: SoftwareInfoSenderObserverInterface.h:29
std::shared_ptr< DefaultClient > construct(const std::shared_ptr< sdkClient::SDKClientRegistry > &sdkClientRegistry)
std::string name() override