Skip to content
This repository has been archived by the owner on Jan 15, 2024. It is now read-only.

Commit

Permalink
Version 2.0.2 alexa-smart-screen-sdk
Browse files Browse the repository at this point in the history
*** 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
chemudug-amzn committed Apr 15, 2020
1 parent ddead91 commit c2196be
Show file tree
Hide file tree
Showing 55 changed files with 3,223 additions and 2,852 deletions.
18 changes: 18 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,21 @@
### v2.0.2 released 04/14/2019:

#### 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.

### v2.0.1 released 11/26/2019:

#### Bug Fixes
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)

project(AlexaSmartScreenSDK VERSION 2.0.1 LANGUAGES CXX)
project(AlexaSmartScreenSDK VERSION 2.0.2 LANGUAGES CXX)
set(PROJECT_BRIEF "A cross-platform, modular SDK for multi modal interaction with the Alexa Voice Service")
configure_file (
"${PROJECT_SOURCE_DIR}/modules/Alexa/Utils/include/Utils/SmartScreenSDKVersion.h.in"
Expand Down
17 changes: 0 additions & 17 deletions CONTRIBUTING.md

This file was deleted.

15 changes: 0 additions & 15 deletions happy-npm-build

This file was deleted.

Expand Up @@ -144,7 +144,7 @@ class WebSocketServer
bool onValidate(connection_hdl connectionHdl);

/// Indicates whether the server was successfully initialised
bool m_initialised{false};
std::atomic_bool m_initialised{false};

/// The websocket server instance
server m_webSocketServer;
Expand Down
Expand Up @@ -69,6 +69,13 @@ class DeviceSettingsManagerBuilder
DeviceSettingsManagerBuilder& withDoNotDisturbSetting(
const std::shared_ptr<alexaClientSDK::capabilityAgents::doNotDisturb::DoNotDisturbCapabilityAgent>& dndCA);

/**
* Configures alarm volume ramp setting.
*
* @return This builder to allow nested calls.
*/
DeviceSettingsManagerBuilder& withAlarmVolumeRampSetting();

/**
* Configures wake word confirmation setting.
*
Expand Down
@@ -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_

0 comments on commit c2196be

Please sign in to comment.