Commit Graph

4 Commits

Author SHA1 Message Date
Marco Visaya 7bea05a9c7 Version 1.7.0 of the avs-device-sdk
Changes in this update:

**Enhancements**
* `AuthDelegate` and `AuthServer.py` have been replaced by `CBLAUthDelegate`, which provides a more straightforward path to authorization.
* Added a new configuration property called [`cblAuthDelegate`](https://github.com/alexa/avs-device-sdk/blob/master/Integration/AlexaClientSDKConfig.json#L2). This object specifies parameters for `CBLAuthDelegate`.
* Added a new configuration property called [`miscDatabase`](https://github.com/alexa/avs-device-sdk/blob/master/Integration/AlexaClientSDKConfig.json#L34), which is a generic key/value database to be used by various components.
* Added a new configuration property called [`dcfDelegate`](https://github.com/alexa/avs-device-sdk/blob/master/Integration/AlexaClientSDKConfig.json#L17) This object specifies parameters for `DCFDelegate`. Within this object, values were added for the 'endpoint' and `overridenDcfPublishMessageBody`. 'endpoint' is the endpoint to connect to in order to send device capabilities. `overridenDcfPublishMessageBody`is the message that will get sent out to the Capabilities API. Note: values within the `dcfDelegate` object will only work in `DEBUG` builds.
* Added a new configuration property called [`deviceInfo`](https://github.com/alexa/avs-device-sdk/blob/master/Integration/AlexaClientSDKConfig.json#L9) which specifies device-identifying information for use by the Device Capability Framework (DCF), and for authorization (CBLAuthDelegate).
* Updated the Directive Sequencer to support wildcard directive handlers. This allows a handler for a given AVS interface to register at the namespace level, rather than specifying the names of all directives within that namespace.
* Updated the Raspberry Pi installation script to include `alsasink` in the configuration file.
* Added `audioSink` as a configuration option. This allows users to override the audio sink element used in `Gstreamer`.
* Added an interface for monitoring internet connection status: `InternetConnectionMonitorInterface.h`.
* The Alexa Communications Library (ACL) is no longer required to wait until authorization has succeeded before attempting to connect to AVS. Instead, `HTTP2Transport` handles waiting for authorization to complete.
* Added the Device Capabilities Framework (DCF) delegate. Device capabilities can now be sent for each capability interface using DCF publish messages.
* The sample app has been updated to send DCF publish messages, which will automatically occur when the sample app starts. Note: a DCF publish message must be successfully sent in order for communication with AVS to occur.
* The SDK now supports HTTP PUT messages.
* Added support for opt-arg style arguments and multiple configuration files. Now, the sample app can be invoked by either of these commands: `SampleApp <configfile> <debuglevel>` OR `SampleApp -C file1 -C file2 ... -L loglevel`.

**Bug Fixes**
* Issues [447](https://github.com/alexa/avs-device-sdk/issues/447) and [553](https://github.com/alexa/avs-device-sdk/issues/553) Fixed the `AttachmentRenderSource`'s handling of `BLOCKING` `AttachmentReaders`.
* Updated the `Logger` implementation to be more resilient to `nullptr` string inputs.
* Fixed a `TimeUtils` utility-related compile issue.
* Fixed a bug in which alerts failed to activate if the system was restarted without network connection.
* Fixed Android 64-bit build failure issue.

**Known Issues**
* The `ACL` may encounter issues if audio attachments are received but not consumed.
* `SpeechSynthesizerState` currently uses `GAINING_FOCUS` and `LOSING_FOCUS` as a workaround for handling intermediate state. These states may be removed in a future release.
* Some ERROR messages may be printed during start-up event if initialization proceeds normally and successfully.
* If an unrecoverable authorization error or an unrecoverable DCF error is encountered, the sample app may crash on shutdown.
* If a non-CBL `clientId` is included in the `deviceInfo` section of `AlexaClientSDKConfig.json`, the error will be reported as an unrecoverable authorization error, rather than a more specific error.
2018-04-18 15:17:28 -07:00
Ken Cecka 1b712a1e97 v1.3.0 released 12/08/2017:
**Enhancements**
* ContextManager now passes the namespace/name of the desired state to StateProv
iderInterface::provideState().  This is helpful when a single StateProvider obje
ct provides multiple states, and needs to know which one ContextManager is askin
g for.
* The mime parser was hardened against duplicate boundaries.
* Added functionality to add and remove AudioPlayer observers to the DefaultClie
nt.
* Unit tests for Alerts were added.
* Added en-IN, en-CA and ja-JP to the SampleApp locale selection menu.
* Added default alert and timer audio data to the SDK SampleApp.  There is no lo
nger a requirement to download these audio files and configure them in the json
configuration file.
* Added support in SDS Reader and AttachmentReader for seeking into the future.
 This allows a reader to move to an index which has not yet arrived in the SDS a
nd poll/block until it arrives.
* Added support for blocking Writers in the SharedDataStream class.
* Changed the default status code sent by MessageRequestObserverInterface::onSen
dCompleted() to SERVER_OTHER_ERROR, and mapped HTTP code 500 to SERVER_INTERNAL_
ERROR_V2.
* Added support for parsing stream duration out of playlists.
* Added a configuration option ("sampleApp":"displayCardsSupported") that allows
 the displaying of display cards to be enabled or disabled.
* Named Timers and Reminders have been updated to fall back to the on-device bac
kground audio sound when cloud urls cannot be accessed or rendered.

**Bug Fixes**
* Removed floating point dependencies from core SDK libraries.
* Fixed bug in SpeechSynthesizer where it's erroneously calling stop more than once.
* Fixed an issue in ContentFetcher where it could hang during destruction until an active GET request completed.
* Fixed a couple of parsing bugs in LibCurlHttpContentFetcher related to case-sensitivity and mime-type handling.
* Fixed a bug where MediaPlayerObserverInterface::onPlaybackResumed() wasn't being called after resuming from a pause with a pending play/resume.
* Fixed a bug in LibCurlContentFetcher where it could error out if data is written to the SDS faster than it is consumed.
* The GStreamer-based MediaPlayer reference implementation now uses the ACL HTTP configured client.
  * An API change has been made to MediaPlayerInterface::setSource(). This method now takes in an optional offset as well to allow for immediately streaming to the offset if possible.
  * Next and Previous buttons now work with Audible.
  * Pandora resume stuttering is addressed.
  * Pausing and resuming Amazon music no longer seeks back to the beginning of the song.
* libcurl CURLOPT_NOSIGNAL option is set to 1 (https://curl.haxx.se/libcurl/c/CURLOPT_NOSIGNAL.html) to avoid crashes  observed in SampleApp.
* Fixed the timing of the PlaybackReportIntervalEvent and PlaybackReportDelayEvent as specified in the directives.
* Fixed potential deadlocks in MediaPlayer during shutdown related to queued callbacks.
* Fixed a crash in MediaPlayer that could occur if the network is disconnected during playback.
* Fixed a bug where music could keep playing while Alexa is speaking.
* Fixed a bug which was causing problems with pause/resume and next/previous with Amazon Music.
* Fixed a bug where music could briefly start playing between speaks.
* Fixed a bug where HLS playlists would stop streaming after the initial playlist had been played to completion.
* Fixed a bug where Audible playback could not advance to the next chapter.
* Fixed some occurrences of SDK entering the IDLE state during the transition between Listening and Speaking states.
* Fixed a bug where PlaybackFinished events were not reporting the correct offset.
  * An API change has been made to MediaPlayerInterface::getOffset().  This method is now required to return the final offset when called after playback has stopped.
* Fixed a problem where AIP was erroneously resetting its state upon getting a cancelDirective() callback.

**Known Issues**
* Capability agent for Notifications is not included in this release.
* `ACL`'s asynchronous receipt of audio attachments may manage resources poorly in scenarios where attachments are received but not consumed.
* GUI cards don't show for Kindle.
* The new SpeechSynthesizerState state values GAINING_FOCUS and LOSING_FOCUS were added as part of a work-around.  The will likely be removed in subsequent releases.
* With the gstreamer-based MediaPlayer, after muting and unmuting, the next item starts playing rather than continuing with the current item.
2017-12-08 16:07:37 -08:00
Federico Rozenberg 81c81b431e Version 1.1.0 alexa-client-sdk
- Changes in this update:

	- Better GStreamer error reporting. MediaPlayer used to only report   `MEDIA_ERROR_UNKNOWN`, now reports more specific errors as defined in `ErrorType.h`.
	- Codebase has been formatted for easier reading.
	- `DirectiveRouter::removeDirectiveHandler()` signature changed and now returns a bool indicating if given handler should be successfully removed or not.
	- Cleanup of raw and shared pointers in the creation of `Transport` objects.
	- `HTTP2Stream`s now have IDs assigned as they are acquired as opposed to created, making associated logs easier to interpret.
	- `AlertsCapabilityAgent` has been refactored.
		- Alert management has been factored out into an `AlertScheduler` class.
	- Creation of Reminder (implements Alert) class.
	- Added new capability agent for `PlaybackController` with unit tests.
	- Added Settings interface with unit tests.
	- Return type of `getOffsetInMilliseconds()` changed from `int64_t` to `std::chronology::milliseconds`.
	- Added `AudioPlayer` unit tests.
	- Added teardown for all Integration tests except Alerts.
	- Implemented PlaylistParser.

- Bug fixes:

	- AIP getting stuck in `LISTENING` or `THINKING` and refusing user input on network outage.
	- SampleApp crashing if running for 5 minutes after network disconnect.
	- Issue where on repeated user barge-ins, `AudioPlayer` would not pause. Specifically, the third attempt to “Play iHeartRadio” would not result in currently-playing music pausing.
	- Utterances being ignored after particularly long TTS.
	- GStreamer errors cropping up on SampleApp exit as a result of accessing the pipeline before it’s been setup.
	- Crashing when playing one URL after another.
	- Buffer overrun in Alerts Renderer.
	- [SampleApp crashing when issuing "Alexa skip" command with iHeartRadio.](https://github.com/alexa/avs-device-sdk/issues/153)
	- [`HTTP2Transport` network thread triggering a join on itself.](https://github.com/alexa/avs-device-sdk/issues/127)
	- [`HTTP2Stream` request handling truncating exception messages.](https://github.com/alexa/avs-device-sdk/issues/67)
	- [`AudioPlayer` was attempting an incorrect state transition from `STOPPED` to `PLAYING` through a `playbackResumed`.](https://github.com/alexa/avs-device-sdk/issues/138)
2017-10-02 15:59:05 -07:00
Kenneth Chan c3a4c8640e Version 0.6 alexa-client-sdk
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.
2017-07-19 15:09:05 -07:00