Commit Graph

44 Commits

Author SHA1 Message Date
erikhopf-amzn 528fc40868 Issue template 2017-12-12 09:26:18 -08:00
erikhopf-amzn 0ec0d1ad28 We are not accepting pull requests or community contributed bug fixes. To ask a question or report an issue, please review our Contribution Guide https://github.com/alexa/avs-device-sdk/blob/master/CONTRIBUTING.md. 2017-12-11 11:25:25 -08: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
Rajiv Jain 21b926592e
Update issue_template.md 2017-11-17 09:09:32 -08:00
Andrey Mikheev a2b84e329c Version 1.2.1 alexa-client-sdk
Changes in this update
* **Enhancements**..
  * Added comments to `AlexaClientSDKConfig.json`. These descriptions provide additional guidance for what is expected for each field...
  * Enabled pause and resume controls for Pandora...

* **Bug Fixes**..
  * Bug fix for [issue #329](https://github.com/alexa/avs-device-sdk/issues/329) - `HTTP2Transport` instances no longer leak when `SERVER_SIDE
  * Bug fix for [issue #189](https://github.com/alexa/avs-device-sdk/issues/189) - Fixed a race condition in the `Timer` class that sometimes
  * Bug fix for a race condition that caused `SpeechSynthesizer` to ignore subsequent `Speak` directives...
  * Bug fix for corrupted mime attachments.
2017-11-16 18:49:28 -08:00
Andken 2cc16d8cc4 Version 1.2.0 alexa-client-sdk
Changes in this update
* **Enhancements**
  * Updated MediaPlayer to solve stability issues
  * All capability agents were refined to work with the updated MediaPlayer
  * Added the TemplateRuntime capability agent
  * Added the SpeakerManager capability agent
  * Added a configuration option ("sampleApp":"endpoint") that allows the endpoint that SampleApp connects to to be specified without changing code or rebuilding
  * Added very verbose capture of libcurl debug information
  * Added an observer interface to observer audio state changes from AudioPlayer
  * Added support for StreamMetadataExtracted Event. Stream tags found in the stream are represented in JSON and sent to AVS
  * Added to the SampleApp a simple GuiRenderer as an observer to the TemplateRuntime Capability Agent
  * Moved shared libcurl functionality to AVSCommon/Utils
  * Added a CMake option to exclude tests from the "make all" build. Use "cmake <absolute-path-to-source>
  -DACSDK_EXCLUDE_TEST_FROM_ALL=ON" to enable it. When this option is enabled "make unit" and "make integration" still could be used to build and run the tests

* **Bug fixes**:
  * Previously scheduled alerts now play following a restart
  * General stability fixes
  * Bug fix for CertifiedSender blocking forever if the network goes down while it's trying to send a message to AVS
  * Fixes for known issue of Alerts integration tests fail: AlertsTest.UserLongUnrelatedBargeInOnActiveTimer and AlertsTest.handleOneTimerWithVocalStop
  * Attempting to end a tap-to-talk interaction with the tap-to-talk button wouldn't work
  * SharedDataStream could encounter a race condition due to a combination of a blocking Reader and a Writer closing before writing any data
  * Bug-fix for the ordering of notifications within alerts scheduling. This fixes the issue where a local-stop on an alert would also stop a subsequent alert if it were to begin without delay

* **Known Issues**

* Capability agent for Notifications is not included in this release
* Inconsistent playback behavior when resuming content ("Alexa, pause." / "Alexa, resume."). Specifically, handling playback offsets, which causes the content to play from the start. This behavior is also occasionally seen with "Next" /
"Previous".
* `ACL`'s asynchronous receipt of audio attachments may manage resources poorly in scenarios where attachments are received but not consumed.
2017-10-31 07:36:26 -07:00
erikhopf-amzn dbf4374cd1 CONTRIBUTING.md added to the repository with information on reporting bugs and seeking help from the AVS developer community. 2017-10-19 14:32:58 -07:00
Rajiv Jain d4d1b157a8 updated chnagelog to remove reference to supported MSPs 2017-10-15 18:45:31 -07:00
Rajiv Jain b9c70e4ffb Updated Readme to remove reference to supported MSPs 2017-10-15 18:44:48 -07:00
Federico Rozenberg cd09a0c206 Fixed inconsistency between CHANGELOG.md and README.md 2017-10-10 14:07:39 -07:00
FletchNelson b6be178aa5 Update README.md 2017-10-05 09:16:47 -07:00
FletchNelson 36ba1e7a16 Update README.md 2017-10-05 09:05:32 -07:00
Erik 382f565fb4 Raspberry Pi QSG now provides Stretch instructions 2017-10-03 12:29:17 -07:00
Federico Rozenberg 7d35e68de1 Updated version number in top-level CMakeLists.txt for 1.1 2017-10-03 10:33:08 -07: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
Janak Jishnu 4def446a92 Version 1.0.3 alexa-client-sdk
Changes in this update
    - Implemented `setOffSet` in `MediaPlayer`.
    - Updated `LoggerUtils.cpp` to address
      (https://github.com/alexa/avs-device-sdk/issues/77).

    - Bug fix to address incorrect stop behavior caused when Audio Focus
      is set to `NONE` and released. This addresses
      (https://github.com/alexa/avs-device-sdk/issues/129).
    - Bug fix for intermittent failure in `handleMultipleConsecutiveSpeaks`.
    - Bug fix for `jsonArrayExist` incorrectly parsing JSON when trying
      to locate array children.
    - Bug fix for ADSL test failures with `sendDirectiveWithoutADialogRequestId`.
    - Bug fix for `SpeechSynthesizer` showing the wrong UX state when a
      burst of `Speak` directives are received.
    - Bug fix for recursive loop in `AudioPlayer.Stop`.
2017-09-19 15:08:49 -07:00
BennyAvramson 6ec9cc785c Version 1.0.2 alexa-client-sdk
Changes in this update
 - Removed code from AIP which propagates ExpectSpeech initiator strings to subsequent Recognize events. This code will be re-introduced when AVS starts sending initiator strings.
2017-08-24 13:26:36 -07:00
Erik cb4509a6d3 Update README.md
Updated product description.
2017-08-17 09:15:49 -07:00
Erik 90c068ff1b Update README.md
Added link to SDK API documentation.
2017-08-17 08:30:10 -07:00
avramson a62220d544 Version 1.0.1 alexa-client-sdk
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.
2017-08-16 17:13:40 -07:00
Mradula Nayak bcf60fb195 Fixed version number for 1.0.0 release 2017-08-09 09:55:00 -07:00
Erik 4ae9296a4f Update README.md 2017-08-07 17:20:46 -07:00
Erik 20c4fccfcc Update README.md 2017-08-07 17:18:36 -07:00
Mradula Nayak d9a0cb7fe4 Version 1.0 alexa-client-sdk
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.
2017-08-07 17:09:09 -07:00
Sanjay Devireddy 11768753bd Some integration tests are failing because the audio files used in testing are not being recognized properly. This patch updates the audio files. 2017-07-20 20:00:26 -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
Mradula Nayak 724797b264 Version 0.5 alexa-client-sdk
Changes in this update
- Added a getConfiguration() method to DirectiveHandlerInterface to register Capability Agents with Directive Sequencer.
- Fix race condition with reading attachments before a writer exists.
- Use of new Logging abstraction layer in modules - ADSL,AFML,ContextManager,AuthDelegate,AIP,KWD,Mediaplayer.
- Added ACL stream processing with Pause and redrive.
- Removed the dependency of ACL Library on Authdelegate.
- Added and interface to allow ACL to Add/Remove ConnectionStatusObserverInterface.
- Fixed compile errors in KittAi, DirectiveHandler and compiler warnings in AIP test.
- Corrected formatting on the files.
- Fixes for the following Github issues
   - https://github.com/alexa/alexa-client-sdk/issues/21
   - https://github.com/alexa/alexa-client-sdk/issues/25
2017-06-23 16:26:34 -07:00
Jamie Meyers d056c92910 Update README.md to fix broken links.
In addition to fixing broken links, duplicated words have been removed and trailing whitespace stripped.
2017-06-13 17:29:27 -07:00
Keith Huang c84d60c224 Version 0.4.1 alexa-client-sdk
Changes in this update
-Implemented Sensory wake word detector functionality
-Removed the need for a std::recursive_mutex in MessageRouter
-Added AIP unit test
-Added handleDirectiveImmediately functionality to SpeechSynthesizer
-Added memory profiles for:
AIP
SpeechSynthesizer
ContextManager
AVSUtils
AVSCommon
-Bug fix for MultipartParser.h compiler warning
-Suppression of sensitive log data even in debug builds. Use cmake parameter -DACSDK_EMIT_SENSITIVE_LOGS=ON to allow logging of sensitive information in DEBUG builds
-Fix crash in ACL when attempting to use more than 10 streams
-Updated MediaPlayer to use autoaudiosink instead of requiring pulseaudio
-Updated MediaPlayer build to suppport local builds of GStreamer
-Fixes for the following Github issues:
https://github.com/alexa/alexa-client-sdk/issues/5
https://github.com/alexa/alexa-client-sdk/issues/8
https://github.com/alexa/alexa-client-sdk/issues/9
https://github.com/alexa/alexa-client-sdk/issues/10
https://github.com/alexa/alexa-client-sdk/issues/17
https://github.com/alexa/alexa-client-sdk/issues/24
2017-06-09 16:25:42 -07:00
Sanjay Devireddy 8ada36db63 Updated 0.4 README.md 2017-06-02 16:42:07 -07:00
Erik 8873567cda Bug fixes 2017-06-01 15:54:06 -07:00
Nikhila Krishnan 86228c703a Version 0.4 alexa-client-sdk
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.
2017-05-26 16:19:00 -07:00
Erik 900920219d README.md
Updated alexa.umdl for KITT.ai.
2017-05-18 10:39:40 -07:00
Erik f8d9c680fa README.md
Updated link to alexa.umdl for KITT.ai.
2017-05-18 10:38:26 -07:00
Ken Cecka b85198b1d4 Version 0.3 of alexa-client-sdk
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.
2017-05-17 22:02:48 -07:00
Scott Heath 6217dae47a Version 0.2.1 of alexa-client-sdk
This update:
- Tightens up the use of libcural by ACL and AuthDelegate.
- Improves the interface of ADSL.
2017-05-05 10:36:44 -07:00
Sanjay Devireddy d849f83194 Some machines are having trouble compiling our SDK, particularly libAVSUtils.so. The issue seems to be that the linker is encountering an error finding a reference to “pthread_create”.
AVSUtils/src/Logger/ThreadIdAsString.cpp, has a static thread_local variable and includes <thread>, and since this file is used indirectly from the ExampleLogger, this issue is showing up as an issue in ExampleLogger.

Currently, ACL and AuthDelegate both find the Threads package and link against in their src/CMakeLists.txt file, so we don't see such issues when creating those libraries. However, AVSUtils does not do this. The fix for this particular issue (https://github.com/alexa/alexa-client-sdk/issues/3) is to find the Threads package and link against it in the AVSUtils library as well, which this commit does. This commit also pulls in the Threads package and links against it in other areas that include <thread> so that we don’t run into this issue down the road by mistake.
2017-04-12 16:20:53 -07:00
Erik 04446f0f61 Update README.md 2017-03-27 14:29:44 -07:00
Erik 23f612c844 Update README.md 2017-03-09 16:11:14 -08:00
Erik 8aee1593ab Update README.md 2017-03-09 16:10:17 -08:00
Hao Hu b0f63965a6 Version 0.2 - Alexa Interaction Manager - Comprised of three components, the Alexa Communications Library (ACL), the Alexa Directive Sequencer Library (ADSL), and Activity Focus Manager Library (AFML), it handles communications with AVS and message routing to capability agents. 2017-03-09 16:01:46 -08:00
Erik deeb5dc169 Update README.md 2017-03-08 23:45:51 -08:00
Sanjay Devireddy aad0fd37f8 Version 0.1 - Alexa Communications Library - This component serves as the main communications channel between the client and Alexa Voice Service, providing an interface with which to send and receive messages. 2017-02-10 15:39:10 -08:00
James Siri 9d64d567f9 Initial commit 2017-02-09 10:57:27 -08:00