This repository has been archived by the owner on Jan 15, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Version 2.0.2 alexa-smart-screen-sdk
*** Bug fixes *** * Added support for Raspbian Buster. * Upgrade dependency on Device SDK 1.19 * Player info no longer waits for the TTS timeout to elapse before being displayed. * Fixed a bug with some objects not being properly cleaned-up during shutdown. * Timer sounds now stop correctly when dialog is interrupted. * Minor fixes in rendering (text truncations for non-English languages, emoji handling, hyphenation). * Fixed image scaling and shadows related bug. * Fixed AVG rendering bug. * Fixed a HLS Playing bug. * Improved APL imports processing latency. *** Known issues *** * For some videos with sound, there might be an issue associated with auto-playing such videos in both Chrome and Firefox. Permission changes in browsers are needed for auto-playing those videos. * The build option ENABLE_CAPTIONS does not enable captions. Enabling it will cause undefined behaviour during a build.
- Loading branch information
1 parent
ddead91
commit c2196be
Showing
55 changed files
with
3,223 additions
and
2,852 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
135 changes: 135 additions & 0 deletions
135
...lities/SmartScreenClient/include/SmartScreenClient/ExternalCapabilitiesBuilderInterface.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
/* | ||
* Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"). | ||
* You may not use this file except in compliance with the License. | ||
* A copy of the License is located at | ||
* | ||
* http://aws.amazon.com/apache2.0/ | ||
* | ||
* or in the "license" file accompanying this file. This file is distributed | ||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either | ||
* express or implied. See the License for the specific language governing | ||
* permissions and limitations under the License. | ||
*/ | ||
|
||
#ifndef ALEXA_SMART_SCREEN_SDK_APPLICATIONUTILITIES_SMARTSCREENCLIENT_INCLUDE_SMARTSCREENCLIENT_EXTERNALCAPABILITIESBUILDERINTERFACE_H_ | ||
#define ALEXA_SMART_SCREEN_SDK_APPLICATIONUTILITIES_SMARTSCREENCLIENT_INCLUDE_SMARTSCREENCLIENT_EXTERNALCAPABILITIESBUILDERINTERFACE_H_ | ||
|
||
#include <list> | ||
#include <utility> | ||
|
||
#include <AIP/AudioInputProcessor.h> | ||
#include <AVSCommon/AVS/CapabilityConfiguration.h> | ||
#include <AVSCommon/AVS/ExceptionEncounteredSender.h> | ||
#include <AVSCommon/SDKInterfaces/AVSConnectionManagerInterface.h> | ||
#include <AVSCommon/SDKInterfaces/DirectiveHandlerInterface.h> | ||
#include <AVSCommon/SDKInterfaces/MessageSenderInterface.h> | ||
#include <AVSCommon/SDKInterfaces/SpeakerManagerInterface.h> | ||
#include <AVSCommon/Utils/Optional.h> | ||
#include <AVSCommon/Utils/RequiresShutdown.h> | ||
#include <CertifiedSender/CertifiedSender.h> | ||
#include <ExternalMediaPlayer/ExternalMediaPlayer.h> | ||
#include <MRM/MRMCapabilityAgent.h> | ||
#include <RegistrationManager/CustomerDataManager.h> | ||
#include <Settings/Storage/DeviceSettingStorageInterface.h> | ||
#include <System/ReportStateHandler.h> | ||
|
||
namespace alexaSmartScreenSDK { | ||
namespace smartScreenClient { | ||
/** | ||
* 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 @c RequiresShutdown objects returned by buildCapabilities(). This will ensure | ||
* that these objects are shutdown during @c DefaultClient shutdown and before any core component is shutdown. | ||
*/ | ||
class ExternalCapabilitiesBuilderInterface { | ||
public: | ||
/** | ||
* Define a capability structure. | ||
*/ | ||
struct Capability { | ||
/// The optional capability configuration which will be included in the list of supported capabilities sent | ||
/// to AVS. | ||
alexaClientSDK::avsCommon::utils::Optional<alexaClientSDK::avsCommon::avs::CapabilityConfiguration> | ||
configuration; | ||
|
||
/// An optional directive handler used to process any directive included in this capability. | ||
std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::DirectiveHandlerInterface> directiveHandler; | ||
}; | ||
|
||
/** | ||
* Destructor. | ||
*/ | ||
virtual ~ExternalCapabilitiesBuilderInterface() = default; | ||
|
||
/** | ||
* This method sets the focus manager responsible for visual interactions. | ||
* | ||
* This method will only get called if GUI support has been enabled. | ||
* | ||
* @param visualFocusManager The focus manager object. | ||
* @return A reference to this builder to allow nested function calls. | ||
*/ | ||
virtual ExternalCapabilitiesBuilderInterface& withVisualFocusManager( | ||
std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::FocusManagerInterface> visualFocusManager) = 0; | ||
|
||
/** | ||
* This method sets the MRM capability agent. | ||
* | ||
* This method will only get called if MRM support has been enabled. | ||
* | ||
* @param mrmCapabilityAgent The MRM capability agent. | ||
* @return A reference to this builder to allow nested function calls. | ||
*/ | ||
virtual ExternalCapabilitiesBuilderInterface& withMRMCapabilityAgent( | ||
std::shared_ptr<alexaClientSDK::capabilityAgents::mrm::MRMCapabilityAgent> mrmCapabilityAgent) = 0; | ||
|
||
/** | ||
* 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. | ||
*/ | ||
virtual ExternalCapabilitiesBuilderInterface& withSettingsStorage( | ||
std::shared_ptr<alexaClientSDK::settings::storage::DeviceSettingStorageInterface> settingStorage) = 0; | ||
|
||
/** | ||
* Build the capabilities with the given core components. | ||
* | ||
* @param externalMediaPlayer Object used to manage external media playback. | ||
* @param connectionManager Object responsible for managing the SDK connection with AVS. | ||
* @param messageSender Object that can be used to send events to AVS. | ||
* @param exceptionSender Object that can be used to send exceptions to AVS. | ||
* @param certifiedSender Object that can be used to send events to AVS that require stronger guarantee. | ||
* @param dataManager Object used to manage objects that store customer data. | ||
* @param stateReportHandler Object used to report the device state and its settings. | ||
* @param audioInputProcessor Object used to recognize voice interactions. | ||
* @param speakerManager Object used to manage all speaker instances that can be controlled by Alexa. | ||
* @return A list with all capabilities as well as objects that require explicit shutdown. Shutdown will be | ||
* performed in the reverse order of occurrence. | ||
*/ | ||
virtual std::pair< | ||
std::list<Capability>, | ||
std::list<std::shared_ptr<alexaClientSDK::avsCommon::utils::RequiresShutdown>>> | ||
buildCapabilities( | ||
std::shared_ptr<alexaClientSDK::capabilityAgents::externalMediaPlayer::ExternalMediaPlayer> externalMediaPlayer, | ||
std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::AVSConnectionManagerInterface> connectionManager, | ||
std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::MessageSenderInterface> messageSender, | ||
std::shared_ptr<alexaClientSDK::avsCommon::avs::ExceptionEncounteredSender> exceptionSender, | ||
std::shared_ptr<alexaClientSDK::certifiedSender::CertifiedSender> certifiedSender, | ||
std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::FocusManagerInterface> audioFocusManager, | ||
std::shared_ptr<alexaClientSDK::registrationManager::CustomerDataManager> dataManager, | ||
std::shared_ptr<alexaClientSDK::capabilityAgents::system::ReportStateHandler> stateReportHandler, | ||
std::shared_ptr<alexaClientSDK::capabilityAgents::aip::AudioInputProcessor> audioInputProcessor, | ||
std::shared_ptr<alexaClientSDK::avsCommon::sdkInterfaces::SpeakerManagerInterface> speakerManager) = 0; | ||
}; | ||
|
||
} // namespace smartScreenClient | ||
} // namespace alexaSmartScreenSDK | ||
|
||
#endif // ALEXA_SMART_SCREEN_SDK_APPLICATIONUTILITIES_SMARTSCREENCLIENT_INCLUDE_SMARTSCREENCLIENT_EXTERNALCAPABILITIESBUILDERINTERFACE_H_ |
Oops, something went wrong.