Changes in this update:
**Enhancements**
* Added the `ExternalMediaPlayer` Capability Agent. This allows playback from music providers that control their own playback queue. Example: Spotify.
* Added support for AU and NZ to the `SampleApp`.
* Firmware version can now be sent to Alexa via the `SoftwareInfo` event. The firmware version is specified in the config file under the `sampleApp` object as an integer value named [`firmwareVersion`](https://github.com/alexa/avs-device-sdk/blob/master/Integration/AlexaClientSDKConfig.json#L52).
* The new `f` command was added to the `SampleApp` which allows the firmware version to be updated at run-time.
* Optional configuration changes have been introduced. Now a [default log level](https://github.com/alexa/avs-device-sdk/blob/master/Integration/AlexaClientSDKConfig.json#L93) can be set for `ACSDK_LOG_MODULE` components, globally or individually. This value is specified under a new root level configuration object called `logger`, and the value itself is named `logLevel`. This allows you to limit the degree of logging to that default value, such as `ERROR`or `INFO`.
**Bug Fixes**
* Fixed bug where `AudioPlayer` progress reports were not being sent, or were being sent incorrectly.
* [Issue 408](https://github.com/alexa/avs-device-sdk/issues/408) - Irrelevant code related to `UrlSource` was removed from the `GStreamer-based MediaPlayer` implementation.
* The `TZ` variable no longer needs to be set to `UTC` when building the `SampleApp`.
* Fixed a bug where `CurlEasyHandleWrapper` logged unwanted data on failure conditions.
* Fixed a bug to improve `SIGPIPE` handling.
* Fixed a bug where the filename and classname were mismatched. Changed `UrlToAttachmentConverter.h` to `UrlContentToAttachmentConverter.h`,and `UrlToAttachmentConverter.cpp` to `UrlContentToAttachmentConverter.cpp`
**Known Issues**
* The `ACL` may encounter issues if audio attachments are received but not consumed.
* Display Cards for Kindle don't render.
* If using the GStreamer-based `MediaPlayer` implementation, after muting and un-muting an audio item, the next item in the queue will begin playing rather than continuing playback of the originally muted audio item.
* `SpeechSynthesizerState` currently uses `GAINING_FOCUS` and `LOSING_FOCUS` as a workaround for handling intermediate state. These states may be removed in a future release.
* Music playback doesn't immediately stop when a user barges-in on iHeartRadio.
Changes in this update:
**Enhancements**
* Added the Notifications Capability Agent. This allows a client to receive notification indicators from Alexa.
* Added support for the `SoftwareInfo` event. This code is triggered in the `SampleApp` by providing a positive decimal integer as the "firmwareVersion" value in "sampleApp" object of the `AlexaClientSDKConfig.json`. The reported firmware version can be updated after starting the `SampleApp` by calling `SoftwareInfoSender::setFirmwareVersion()`. This code path can be exercised in the `SampleApp` with the new command: `f`.
* Added unit tests for Alerts.
* The GStreamer-based pipeline allows for the configuration of `MediaPlayer` output based on information provided in `Config`.
* Playlist streaming now uses a `BLOCKING` writer, which improves streaming efficiency.
**Bug Fixes**
* Fixed bug where `SpeechSynthesizer` would not stop playback when a state change timeout was encountered.
* Fixed the `SampleApplication` destructor to avoid segfaults if the object is not constructed correctly.
* Fixed bug where `AudioPlayer` would erroneously call `executeStop()` in `cancelDirective()`.
* [Issue 396](https://github.com/alexa/avs-device-sdk/issues/396) - Fixed bug for compilation error with GCC7 in `AVSCommon/SDKInterfaces/include/AVSCommon/SDKInterfaces/Audio/AlertsAudioFactoryInterface.h`
* [Issue 384](https://github.com/alexa/avs-device-sdk/issues/384) - Fixed bug that caused `AuthServer.py` to crash.
* Fixed bug where a long delay was encountered after pausing and resuming a large Audible chapter.
* Fixed bug that caused named timers and reminders to loop for an additional `loopCount` .
* Fixed memory corruption bug in `MessageInterpreter`.
* Fixed illegal memory accesses in `MediaPlayer` logging.
**Known Issues**
* The `ACL` may encounter issues if audio attachments are received but not consumed.
* Display Cards for Kindle don't render.
* If using the GStreamer-based `MediaPlayer` implementation, after muting and un-muting an audio item, the next item in the queue will begin playing rather than continuing playback of the originally muted audio item.
* `SpeechSynthesizerState` currently uses `GAINING_FOCUS` and `LOSING_FOCUS` as a workaround for handling intermediate state. These states may be removed in a future release.
* Music playback doesn't immediately stop when a user barges-in on iHeartRadio.
Changes in this update
- Added a fix to the sample app so that the StateSynchronization event is the first that gets sent to AVS.
- Added a POST_CONNECTED enum to ConnectionStatusObserver.
- StateSychronizer now automatically sends a StateSynchronization event when it receives a notification that ACL is CONNECTED.
- Added make install for installing the AVS Device SDK.
- Added an optional make networkIntegration for integration tests for slow network (only on Linux platforms).
- Added shutdown management which fully cleans up SDK objects during teardown.
- Fixed an issue with AudioPlayer barge-in which was preventing subsequent audio from playing.
- Changed Mediaplayer buffering to reduce stuttering.
- Known Issues:
- Connection loss during listening keeps the app in that state even after connection is regained. Pressing ‘s’ unsticks the state.
- Play/Pause media restarts it from the beginning.
- SpeechSynthesizer shows wrong UX state during a burst of Speaks.
- Quitting the sample app while AudioPlayer is playing something causes a segmentation fault.
- AudioPlayer sending PlaybackPaused during flash briefing.
- Long Delay playing live stations on iHeartRadio.
- Teardown warnings at the end of integration tests.
Changes in this update
- Added `AudioPlayer` capability agent.
- Supports iHeartRadio.
- `StateSynchronizer` has been updated to better enforce that `System.SynchronizeState`is the first Event sent on a connection to AVS.
- Additional tests have been added to `ACL`.
- The `Sample App` has been updated with several small fixes and improvements.
- `ADSL` was updated such that all directives are now blocked while the handling of previous `SpeechSynthesizer.Speak`
directives complete. Because any directive may now be blocked, the `preHandleDirective() / handleDirective()` path
is now used for handling all directives.
- Fixes for the following GitHub issues:
- https://github.com/alexa/alexa-client-sdk/issues/44.
- A bug causing `ACL` to not send a ping to AVS every 5 minutes, leading to periodic server disconnects, was fixed.
- Subtle race condition issues were addressed in the `Executor` class, resolving some intermittent crashes.
Changes in this update
- Added a sample app that leverages the SDK.
- Added an implementation of the `Alerts` capability agent.
- Added the `DefaultClient` class.
- Added the following classes to support directives and events in the
`StateSynchronizer`, `EndpointHandler`, and `ExceptionEncounteredSender`.
- Added unit tests for `ACL`.
- Updated `MediaPlayer` to play local files given an `std::istream`.
- Changed build configuration from `Debug` to `Release`.
- Removed `DeprecatedLogger` class.
Changes in this update:
- Added the SpeechSynthesizer, an implementation of the SpeechRecognizer capability agent.
- Implemented a reference MediaPlayer based on [GStreamer](https://gstreamer.freedesktop.org/) for audio playback.
- Added the MediaPlayerInterface that allows you to implement your own media player.
- Updated ACL to support asynchronous receipt of audio attachments from AVS.
Bug Fixes:
-Some intermittent unit test failures were fixed.
Known Issues:
-ACL's asynchronous receipt of audio attachments may manage resources poorly in scenarios where attachments are
received but not consumed.
- When an AttachmentReader does not deliver data for prolonged periods MediaPlayer may not resume playing the
delayed audio.
Changes in this update:
- Added the CapabilityAgent base class that is used to build capability agent
implementations.
- Added the ContextManager class that allows multiple Capability Agents to
store and access state. These events include context, which is used to
communicate the state of each capability agent to AVS:
- Recognize
- PlayCommandIssued
- PauseCommandIssued
- NextCommandIssued
- PreviousCommandIssued
- SynchronizeState
- ExceptionEncountered
- Implemented the SharedDataStream (SDS) to asynchronously communicate data
between a local reader and writer.
- Added AudioInputProcessor (AIP), an implementation of a SpeechRecognizer
capability agent.
- Added the WakeWord Detector (WWD), which recognizes keywords in audio streams.
v0.3 implements a wrapper for KITT.ai.
- Added a new implementation of AttachmentManager and associated classes for use
with SDS.
- Updated the ACL to support asynchronously sending audio to AVS.