From 241f24589acddabba881b914a0e7ca601e7d94b8 Mon Sep 17 00:00:00 2001 From: MuniSakkuru Date: Fri, 9 Oct 2020 00:41:53 +0000 Subject: [PATCH] Version 3.0.0 Alexa Auto SDK MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles. **v3.0.0** * v3.0.0 released on 2020-10-09 **Enhancements** * Added Alexa Auto Client Service (AACS), which enables OEMs of Android-based devices to simplify the process of integrating the Auto SDK. For more information about AACS, see the AACS. * Added support for removing local media sources at runtime, such as a USB drive or a Bluetooth device. Previously, if a user removed a USB drive and then requested to play music from the USB drive, the Auto SDK would attempt to play and not return an appropriate error message. This feature is enabled with an existing field in the `LocalMediaSource` platform interface state. For information about the platform interface state, see the `alexa` module. **Resolved Issues** * On QNX, when a portion of music on Spotify is skipped, either by the user saying, "Skip forward," or by the user skipping to a different song, the volume is no longer reset to the default level. * A user barging in when music is playing no longer hears an Alexa response to the barge-in request. Previously, this issue happened if the System Audio extension was used. **Known Issues** * General * If the "locales" field of the "deviceSettings" node of the Alexa module configuration JSON is not specified, the Engine automatically declares support for the following locale combinations: ["en-US", "es-US"], ["es-US", "en-US"], ["en-IN", "hi-IN"], ["hi-IN", "en-IN"], ["fr-CA", "en-CA"], ["en-CA", "fr-CA"]. The Engine does not declare support for locale combinations if the "locales" field is assigned an empty value. * Car Control * For car control, there is a limit of two Device Serial Numbers (DSN) per account or Customer ID (CID). Limit the number of devices for testing with a single account accordingly. If you use the Android sample app, be sure to configure a specific DSN. * It can take up to 20 seconds from the time of user login to the time Alexa is available to accept utterances. The cloud uses this time to ingest the car control endpoint configurations sent by Auto SDK after login. * If you configure the Auto SDK Engine and connect to Alexa using a set of endpoint configurations, you cannot delete any endpoint in a set in the cloud. For example, after you configure set A with endpoints 1, 2, and 3, if you change your car control configuration during development to set B with endpoints 2, 3, and 4, endpoint 1 from set A remains in the cloud and might interfere with resolving the correct endpoint ID for your utterances. However, any endpoint configurations with matching IDs override previous configurations. For example, the configuration of endpoint 2 in set B replaces endpoint 2 in set A. During development, limit configuration changes to create only supersets of previous endpoint configurations. Work with your Solutions Architect or Partner Manager to produce the correct configuration on the first try. * Car control utterances that are variations of supported utterances but do not follow the supported utterance patterns return errors. Examples include “please turn on the light in the car” instead of the supported “turn on the light“, and ”put on the defroster“ or “defrost the windshield” instead of the supported ”turn on the defroster”. * The air conditioner endpoint supports only Power Controller and Mode Controller capabilities, not Range Controller for numeric settings. * Communications * A user request to send an SMS to an Alexa contact results in an Alexa-to-Alexa message instead. However ‘send message’ instead ‘send SMS’ to a contact works. * When using LVC in online mode, users can redial a call when the phone connection state is OFF. * DTMF utterances that include the letters "A", "B", "C", or "D" (for example "press A" or "dial 3*#B") are ignored. * Calling numbers such as 1-800-xxx-xxxx by using utterances such as “Alexa call one eight double oh...” may return unexpected results. Similarly, when you call numbers by using utterances that include "triple," "hundred," and "thousand," or press special characters such as # or * by saying "Alexa press *#", you may experience unexpected results. We recommend that your client application ignore special characters, dots, and non-numeric characters when requesting Alexa to call or press digits. * A user playing any skill with extended multi-turn dialogs (such as Jeopardy or Skyrim) cannot use voice to accept or reject incoming Alexa-to-Alexa calls. * Entertainment * A user playing notifications while music is playing hears the music for a split second between the end of one notification and the start of the next. * The word, "line-in," in an utterance is sometimes misinterpreted as "line" or other words. For example, if the user says, "Switch to line-in," the misinterpretation of "line-in" might cause an incorrect response. * When an external player authorization is in progress at the exact moment of shutdown, a very rare race condition might occur, causing the Engine to crash. * Authentication * The CBL module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the refresh is attempted, it could take up to a minute to refresh the token when the internet connection is restored. * If you log out and log in, the client-side Do Not Disturb (DND) state may not be synchronized with the Alexa cloud. * AACS * For some platform interface APIs in the Core module, when an application fails to handle a directive, there is no way to report the failure to the Engine. This is because AASB assumes that the application always handles messages correctly. When AASB incorrectly reports how the application handles the message, the Engine state might become inconsistent with the application state. For example, suppose the Engine sends a directive to the application to set the audio volume but the application fails to make the change. AASB does not report the failure to the Engine. As a result, the Engine's and the application's settings become out of sync. The following list shows the affected APIs: * `AudioInput`: * `startAudioInput()` * `AudioOutput`: * `setPosition(int64_t position)` * `volumeChanged(float volume)` * `mutedStateChanged(MutedState state)` * In the commonutils library, the JSON parser (`RenderPlayerInfo.kt`) for the `renderPlayerInfo` message of `templateRuntime` can only parse the `payload` field of the AASB `RenderPlayerInfo` message payload. The `payload` field of `RenderPlayerInfo` is the inner payload of the nested payload structure. When using `TemplateRuntime.parseRenderInfo(String json)`, provide it with the embedded JSON as a string of the string value whose key is `payload` in the `RenderPlayerInfo` message’s payload instead of the overall AASB payload. **Additional Changes** Starting with Auto SDK v3.0, we no longer support the Automotive Grade Linux (AGL) Alexa Voice agent in the Auto SDK. If you intend to use the AGL Alexa Voice Agent, continue using Auto SDK v2.3.0, which is the last version that provides AGL support. [Read the SDK Docs](https://alexa.github.io/alexa-auto-sdk/) --- CHANGELOG.md | 65 +- CMakeLists.txt | 1 - GETSTARTED.md | 50 + MIGRATION.md | 141 +- NOTICE | 1 - OVERVIEW.md | 83 - README.md | 116 +- SEQUENCE_DIAGRAMS.md | 2 +- assets/aac-seq-ttt.plantuml | 73 + assets/aac-seq-ttt.png | Bin 109455 -> 60400 bytes assets/aac-seq-wwe.plantuml | 98 + assets/aac-seq-wwe.png | Bin 101233 -> 78705 bytes builder/README.md | 357 +- .../conf/machine/aglarm64.conf | 21 - .../conf/machine/include/agl.inc | 4 - .../recipes-core/images/aac-sdk-build.bb | 1 - ...o-changes-for-v1.19.1-AVS-Device-SDK.patch | 39 +- builder/scripts/run-aacs-android.sh | 184 + builder/scripts/run-builder.sh | 46 +- builder/scripts/run-docker.sh | 3 +- builder/scripts/version | 4 +- docs/android/annotated.html | 90 +- ...n_1_1aace_1_1alexa_1_1_alerts-members.html | 4 +- ...1_1amazon_1_1aace_1_1alexa_1_1_alerts.html | 4 +- ...ace_1_1alexa_1_1_alexa_client-members.html | 4 +- ...zon_1_1aace_1_1alexa_1_1_alexa_client.html | 4 +- ...ce_1_1alexa_1_1_alexa_speaker-members.html | 4 +- ...on_1_1aace_1_1alexa_1_1_alexa_speaker.html | 4 +- ...ace_1_1alexa_1_1_audio_player-members.html | 4 +- ...zon_1_1aace_1_1alexa_1_1_audio_player.html | 6 +- ...ce_1_1alexa_1_1_auth_provider-members.html | 4 +- ...on_1_1aace_1_1alexa_1_1_auth_provider.html | 4 +- ...e_1_1alexa_1_1_do_not_disturb-members.html | 4 +- ...n_1_1aace_1_1alexa_1_1_do_not_disturb.html | 4 +- ...lexa_1_1_equalizer_controller-members.html | 4 +- ...ace_1_1alexa_1_1_equalizer_controller.html | 4 +- ...xa_1_1_external_media_adapter-members.html | 4 +- ...e_1_1alexa_1_1_external_media_adapter.html | 49 +- ...1alexa_1_1_local_media_source-members.html | 4 +- ...1aace_1_1alexa_1_1_local_media_source.html | 27 +- ...ce_1_1alexa_1_1_notifications-members.html | 4 +- ...on_1_1aace_1_1alexa_1_1_notifications.html | 4 +- ...alexa_1_1_playback_controller-members.html | 4 +- ...aace_1_1alexa_1_1_playback_controller.html | 6 +- ..._1alexa_1_1_speech_recognizer-members.html | 15 +- ..._1aace_1_1alexa_1_1_speech_recognizer.html | 67 +- ...1alexa_1_1_speech_synthesizer-members.html | 4 +- ...1aace_1_1alexa_1_1_speech_synthesizer.html | 4 +- ...1_1alexa_1_1_template_runtime-members.html | 8 +- ...1_1aace_1_1alexa_1_1_template_runtime.html | 69 +- ...onfig_1_1_alexa_configuration-members.html | 4 +- ...exa_1_1config_1_1_alexa_configuration.html | 8 +- ...azon_1_1aace_1_1apl_1_1_a_p_l-members.html | 4 +- ...om_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html | 4 +- ...onfig_1_1_a_p_l_configuration-members.html | 4 +- ...apl_1_1config_1_1_a_p_l_configuration.html | 4 +- ...udio_1_1_audio_input_provider-members.html | 4 +- ...ace_1_1audio_1_1_audio_input_provider.html | 4 +- ...ace_1_1audio_1_1_audio_output-members.html | 4 +- ...zon_1_1aace_1_1audio_1_1_audio_output.html | 4 +- ...dio_1_1_audio_output_provider-members.html | 4 +- ...ce_1_1audio_1_1_audio_output_provider.html | 4 +- ..._1car_control_1_1_car_control-members.html | 4 +- ..._1aace_1_1car_control_1_1_car_control.html | 4 +- ...1_1_car_control_configuration-members.html | 11 +- ...control_1_1_car_control_configuration.html | 54 +- ...trol_configuration_1_1_action-members.html | 4 +- ..._car_control_configuration_1_1_action.html | 4 +- ..._1_car_control_configuration_1_1_zone.html | 87 - ...azon_1_1aace_1_1cbl_1_1_c_b_l-members.html | 4 +- ...om_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html | 4 +- ...onfig_1_1_c_b_l_configuration-members.html | 4 +- ...cbl_1_1config_1_1_c_b_l_configuration.html | 4 +- ...uploader_1_1_contact_uploader-members.html | 91 - ...1contactuploader_1_1_contact_uploader.html | 267 - ...on_1_1aace_1_1core_1_1_engine-members.html | 8 +- ..._1_1amazon_1_1aace_1_1core_1_1_engine.html | 73 +- ..._1core_1_1_platform_interface-members.html | 4 +- ..._1aace_1_1core_1_1_platform_interface.html | 4 +- ...nfig_1_1_engine_configuration-members.html | 4 +- ...re_1_1config_1_1_engine_configuration.html | 4 +- ...aace_1_1location_1_1_location-members.html | 4 +- ...azon_1_1aace_1_1location_1_1_location.html | 4 +- ...ocation_1_1_location_provider-members.html | 4 +- ...ace_1_1location_1_1_location_provider.html | 4 +- ..._1_1aace_1_1logger_1_1_logger-members.html | 4 +- ..._1amazon_1_1aace_1_1logger_1_1_logger.html | 4 +- ...nfig_1_1_logger_configuration-members.html | 4 +- ...er_1_1config_1_1_logger_configuration.html | 4 +- ..._1_1navigation_1_1_navigation-members.html | 4 +- ..._1_1aace_1_1navigation_1_1_navigation.html | 4 +- ...1_1_navigation_configuration-members.html} | 11 +- ..._1config_1_1_navigation_configuration.html | 127 + ...ork_1_1_network_info_provider-members.html | 4 +- ..._1_1network_1_1_network_info_provider.html | 4 +- ...rol_1_1_phone_call_controller-members.html | 4 +- ...honecontrol_1_1_phone_call_controller.html | 4 +- ..._manager_1_1_property_manager-members.html | 4 +- ...property_manager_1_1_property_manager.html | 4 +- ...fig_1_1_storage_configuration-members.html | 4 +- ...e_1_1config_1_1_storage_configuration.html | 4 +- ...fig_1_1_vehicle_configuration-members.html | 4 +- ...e_1_1config_1_1_vehicle_configuration.html | 4 +- ...android_1_1_example_unit_test-members.html | 4 +- ..._1_1maccandroid_1_1_example_unit_test.html | 4 +- ...id_1_1_m_a_c_c_android_client-members.html | 4 +- ...accandroid_1_1_m_a_c_c_android_client.html | 4 +- ...odel_1_1_player_playback_info-members.html | 4 +- ...oid_1_1model_1_1_player_playback_info.html | 4 +- docs/android/classes.html | 19 +- docs/android/deprecated.html | 18 +- ...ss_book_1_1_address_book_type-members.html | 4 +- ..._1_address_book_1_1_address_book_type.html | 4 +- ...xa_1_1_alerts_1_1_alert_state-members.html | 4 +- ...e_1_1alexa_1_1_alerts_1_1_alert_state.html | 4 +- ...1_alexa_client_1_1_auth_error-members.html | 4 +- ...alexa_1_1_alexa_client_1_1_auth_error.html | 4 +- ...1_alexa_client_1_1_auth_state-members.html | 4 +- ...alexa_1_1_alexa_client_1_1_auth_state.html | 4 +- ...1_1_connection_changed_reason-members.html | 4 +- ..._client_1_1_connection_changed_reason.html | 4 +- ..._client_1_1_connection_status-members.html | 4 +- ..._1_alexa_client_1_1_connection_status.html | 4 +- ...alexa_client_1_1_dialog_state-members.html | 4 +- ...exa_1_1_alexa_client_1_1_dialog_state.html | 4 +- ...lexa_speaker_1_1_speaker_type-members.html | 4 +- ...xa_1_1_alexa_speaker_1_1_speaker_type.html | 4 +- ...io_player_1_1_player_activity-members.html | 4 +- ..._1_1_audio_player_1_1_player_activity.html | 4 +- ..._auth_provider_1_1_auth_error-members.html | 4 +- ...lexa_1_1_auth_provider_1_1_auth_error.html | 4 +- ..._auth_provider_1_1_auth_state-members.html | 4 +- ...lexa_1_1_auth_provider_1_1_auth_state.html | 4 +- ...controller_1_1_equalizer_band-members.html | 4 +- ...ualizer_controller_1_1_equalizer_band.html | 4 +- ...l_media_adapter_1_1_favorites-members.html | 4 +- ..._external_media_adapter_1_1_favorites.html | 4 +- ..._media_adapter_1_1_media_type-members.html | 4 +- ...external_media_adapter_1_1_media_type.html | 4 +- ..._media_adapter_1_1_navigation-members.html | 4 +- ...external_media_adapter_1_1_navigation.html | 4 +- ...adapter_1_1_play_control_type-members.html | 4 +- ...l_media_adapter_1_1_play_control_type.html | 4 +- ..._supported_playback_operation-members.html | 4 +- ...pter_1_1_supported_playback_operation.html | 4 +- ...a_source_1_1_content_selector-members.html | 4 +- ...cal_media_source_1_1_content_selector.html | 4 +- ...al_media_source_1_1_favorites-members.html | 4 +- ..._1_1_local_media_source_1_1_favorites.html | 4 +- ...l_media_source_1_1_media_type-members.html | 4 +- ...1_1_local_media_source_1_1_media_type.html | 4 +- ..._source_1_1_play_control_type-members.html | 4 +- ...al_media_source_1_1_play_control_type.html | 4 +- ...local_media_source_1_1_source-members.html | 4 +- ...exa_1_1_local_media_source_1_1_source.html | 4 +- ..._supported_playback_operation-members.html | 4 +- ...urce_1_1_supported_playback_operation.html | 4 +- ...fications_1_1_indicator_state-members.html | 4 +- ...1_1_notifications_1_1_indicator_state.html | 4 +- ...ontroller_1_1_playback_button-members.html | 4 +- ...ayback_controller_1_1_playback_button.html | 4 +- ...ontroller_1_1_playback_toggle-members.html | 4 +- ...ayback_controller_1_1_playback_toggle.html | 4 +- ...eech_recognizer_1_1_initiator-members.html | 4 +- ...a_1_1_speech_recognizer_1_1_initiator.html | 4 +- ...plate_runtime_1_1_focus_state-members.html | 4 +- ..._1_1_template_runtime_1_1_focus_state.html | 4 +- ...e_runtime_1_1_player_activity-members.html | 4 +- ..._template_runtime_1_1_player_activity.html | 4 +- ..._1_1_a_p_l_1_1_activity_event-members.html | 4 +- ...e_1_1apl_1_1_a_p_l_1_1_activity_event.html | 4 +- ...1_1_audio_format_1_1_encoding-members.html | 4 +- ..._1audio_1_1_audio_format_1_1_encoding.html | 4 +- ...provider_1_1_audio_input_type-members.html | 4 +- ...o_input_provider_1_1_audio_input_type.html | 4 +- ..._audio_output_1_1_media_error-members.html | 4 +- ...udio_1_1_audio_output_1_1_media_error.html | 4 +- ..._audio_output_1_1_media_state-members.html | 4 +- ...udio_1_1_audio_output_1_1_media_state.html | 4 +- ..._audio_output_1_1_muted_state-members.html | 4 +- ...udio_1_1_audio_output_1_1_muted_state.html | 4 +- ...rovider_1_1_audio_output_type-members.html | 4 +- ...output_provider_1_1_audio_output_type.html | 4 +- ...1_1_audio_stream_1_1_encoding-members.html | 4 +- ..._1audio_1_1_audio_stream_1_1_encoding.html | 4 +- ...cbl_1_1_c_b_l_1_1_c_b_l_state-members.html | 4 +- ...aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html | 4 +- ..._1_c_b_l_state_changed_reason-members.html | 4 +- ..._c_b_l_1_1_c_b_l_state_changed_reason.html | 4 +- ...der_1_1_contact_upload_status-members.html | 94 - ...ct_uploader_1_1_contact_upload_status.html | 245 - ..._1logger_1_1_logger_1_1_level-members.html | 4 +- ..._1aace_1_1logger_1_1_logger_1_1_level.html | 4 +- ...o_provider_1_1_network_status-members.html | 4 +- ...work_info_provider_1_1_network_status.html | 4 +- ...all_controller_1_1_call_error-members.html | 4 +- ..._phone_call_controller_1_1_call_error.html | 4 +- ...all_controller_1_1_call_state-members.html | 4 +- ..._phone_call_controller_1_1_call_state.html | 4 +- ...device_configuration_property-members.html | 4 +- ...calling_device_configuration_property.html | 4 +- ...ntroller_1_1_connection_state-members.html | 4 +- ..._call_controller_1_1_connection_state.html | 4 +- ..._controller_1_1_d_t_m_f_error-members.html | 4 +- ...one_call_controller_1_1_d_t_m_f_error.html | 4 +- ...ty_manager_1_1_property_state-members.html | 4 +- ...1_property_manager_1_1_property_state.html | 4 +- ...ion_1_1_vehicle_property_type-members.html | 4 +- ...nfiguration_1_1_vehicle_property_type.html | 4 +- docs/android/functions.html | 78 +- docs/android/functions_func.html | 47 +- docs/android/functions_vars.html | 29 +- docs/android/hierarchy.html | 96 +- docs/android/index.html | 4 +- docs/android/pages.html | 4 +- docs/android/search/all_0.js | 4 - docs/android/search/all_11.js | 7 +- docs/android/search/all_15.html | 26 - docs/android/search/all_15.js | 4 - docs/android/search/all_2.js | 5 +- docs/android/search/all_3.js | 1 - docs/android/search/all_4.js | 3 +- docs/android/search/all_5.js | 2 +- docs/android/search/all_6.js | 2 +- docs/android/search/all_8.js | 3 +- docs/android/search/all_b.js | 1 + docs/android/search/all_d.js | 2 +- docs/android/search/all_e.js | 8 +- docs/android/search/all_f.js | 4 +- docs/android/search/classes_1.js | 2 - docs/android/search/classes_3.js | 2 +- docs/android/search/classes_4.js | 2 +- docs/android/search/classes_8.js | 1 + docs/android/search/classes_d.html | 26 - docs/android/search/classes_d.js | 4 - docs/android/search/functions_0.js | 4 - docs/android/search/functions_2.js | 3 +- docs/android/search/functions_3.js | 1 - docs/android/search/functions_4.js | 1 - docs/android/search/functions_5.js | 2 +- docs/android/search/functions_7.js | 3 +- docs/android/search/functions_d.js | 5 +- docs/android/search/functions_e.js | 2 +- docs/android/search/searchdata.js | 4 +- docs/android/search/variables_11.js | 7 +- docs/android/search/variables_e.js | 3 - docs/cpp/_a_p_l_8h_source.html | 4 +- docs/cpp/_a_p_l_configuration_8h_source.html | 4 +- .../_a_p_l_engine_interface_8h_source.html | 4 +- docs/cpp/_address_book_8h_source.html | 4 +- ...dress_book_engine_interface_8h_source.html | 4 +- docs/cpp/_alerts_8h_source.html | 4 +- docs/cpp/_alexa_client_8h_source.html | 8 +- docs/cpp/_alexa_configuration_8h_source.html | 8 +- .../_alexa_engine_interfaces_8h_source.html | 48 +- docs/cpp/_alexa_properties_8h_source.html | 6 +- docs/cpp/_alexa_speaker_8h_source.html | 4 +- .../_audio_engine_interfaces_8h_source.html | 4 +- docs/cpp/_audio_format_8h_source.html | 4 +- docs/cpp/_audio_input_8h_source.html | 4 +- docs/cpp/_audio_input_provider_8h_source.html | 4 +- docs/cpp/_audio_output_8h_source.html | 4 +- .../cpp/_audio_output_provider_8h_source.html | 4 +- docs/cpp/_audio_player_8h_source.html | 4 +- docs/cpp/_audio_stream_8h_source.html | 4 +- docs/cpp/_auth_provider_8h_source.html | 8 +- docs/cpp/_c_b_l_8h_source.html | 4 +- docs/cpp/_c_b_l_configuration_8h_source.html | 4 +- .../_c_b_l_engine_interface_8h_source.html | 4 +- docs/cpp/_car_control_8h_source.html | 4 +- docs/cpp/_car_control_assets_8h_source.html | 6 +- .../_car_control_configuration_8h_source.html | 8 +- docs/cpp/_contact_uploader_8h_source.html | 91 - ...t_uploader_engine_interface_8h_source.html | 83 - docs/cpp/_core_properties_8h_source.html | 4 +- docs/cpp/_do_not_disturb_8h_source.html | 4 +- docs/cpp/_engine_8h_source.html | 8 +- docs/cpp/_engine_configuration_8h_source.html | 4 +- docs/cpp/_equalizer_controller_8h_source.html | 8 +- .../_external_media_adapter_8h_source.html | 83 +- docs/cpp/_focus_state_8h_source.html | 4 +- docs/cpp/_global_preset_8h_source.html | 4 +- docs/cpp/_local_media_source_8h_source.html | 89 +- docs/cpp/_location_8h_source.html | 4 +- docs/cpp/_location_provider_8h_source.html | 4 +- docs/cpp/_logger_8h_source.html | 4 +- docs/cpp/_logger_configuration_8h_source.html | 4 +- .../_logger_engine_interfaces_8h_source.html | 4 +- docs/cpp/_metrics_uploader_8h_source.html | 4 +- docs/cpp/_navigation_8h_source.html | 4 +- .../_navigation_configuration_8h_source.html | 85 + ...avigation_engine_interfaces_8h_source.html | 6 +- .../_network_engine_interfaces_8h_source.html | 4 +- .../cpp/_network_info_provider_8h_source.html | 4 +- docs/cpp/_network_properties_8h_source.html | 4 +- docs/cpp/_notifications_8h_source.html | 4 +- .../cpp/_phone_call_controller_8h_source.html | 4 +- ...ontroller_engine_interfaces_8h_source.html | 4 +- docs/cpp/_platform_interface_8h_source.html | 4 +- docs/cpp/_playback_controller_8h_source.html | 8 +- docs/cpp/_player_activity_8h_source.html | 4 +- docs/cpp/_property_manager_8h_source.html | 4 +- ...ty_manager_engine_interface_8h_source.html | 4 +- docs/cpp/_speech_recognizer_8h_source.html | 19 +- docs/cpp/_speech_synthesizer_8h_source.html | 4 +- .../cpp/_storage_configuration_8h_source.html | 4 +- docs/cpp/_template_runtime_8h_source.html | 12 +- .../cpp/_vehicle_configuration_8h_source.html | 8 +- docs/cpp/_vehicle_properties_8h_source.html | 4 +- docs/cpp/annotated.html | 76 +- ..._address_book_entries_factory-members.html | 4 +- ...ok_1_1_i_address_book_entries_factory.html | 4 +- ...classaace_1_1alexa_1_1_alerts-members.html | 4 +- docs/cpp/classaace_1_1alexa_1_1_alerts.html | 4 +- ...a_1_1_alerts_engine_interface-members.html | 4 +- ..._1_1alexa_1_1_alerts_engine_interface.html | 4 +- ...ace_1_1alexa_1_1_alexa_client-members.html | 4 +- .../classaace_1_1alexa_1_1_alexa_client.html | 4 +- ...alexa_client_engine_interface-members.html | 4 +- ...exa_1_1_alexa_client_engine_interface.html | 4 +- ...ce_1_1alexa_1_1_alexa_speaker-members.html | 4 +- .../classaace_1_1alexa_1_1_alexa_speaker.html | 4 +- ...lexa_speaker_engine_interface-members.html | 4 +- ...xa_1_1_alexa_speaker_engine_interface.html | 4 +- ...ace_1_1alexa_1_1_audio_player-members.html | 4 +- .../classaace_1_1alexa_1_1_audio_player.html | 6 +- ...audio_player_engine_interface-members.html | 4 +- ...exa_1_1_audio_player_engine_interface.html | 4 +- ...ce_1_1alexa_1_1_auth_provider-members.html | 4 +- .../classaace_1_1alexa_1_1_auth_provider.html | 4 +- ...uth_provider_engine_interface-members.html | 4 +- ...xa_1_1_auth_provider_engine_interface.html | 4 +- ...e_1_1alexa_1_1_do_not_disturb-members.html | 4 +- ...classaace_1_1alexa_1_1_do_not_disturb.html | 4 +- ..._not_disturb_engine_interface-members.html | 4 +- ...a_1_1_do_not_disturb_engine_interface.html | 4 +- ...lexa_1_1_equalizer_controller-members.html | 4 +- ...ace_1_1alexa_1_1_equalizer_controller.html | 4 +- ...r_controller_engine_interface-members.html | 4 +- ...equalizer_controller_engine_interface.html | 4 +- ...er_1_1_authorized_player_info-members.html | 4 +- ...ia_adapter_1_1_authorized_player_info.html | 4 +- ..._external_media_adapter_state-members.html | 6 +- ...pter_1_1_external_media_adapter_state.html | 12 +- ...ia_adapter_1_1_playback_state-members.html | 21 +- ...rnal_media_adapter_1_1_playback_state.html | 62 +- ...dia_adapter_1_1_session_state-members.html | 6 +- ...ernal_media_adapter_1_1_session_state.html | 40 +- ...edia_adapter_engine_interface-members.html | 4 +- ...ternal_media_adapter_engine_interface.html | 4 +- ...ce_1_1_discovered_player_info-members.html | 4 +- ..._interface_1_1_discovered_player_info.html | 4 +- ...1alexa_1_1_local_media_source-members.html | 4 +- ...saace_1_1alexa_1_1_local_media_source.html | 21 +- ..._1_1_local_media_source_state-members.html | 4 +- ...a_source_1_1_local_media_source_state.html | 4 +- ...dia_source_1_1_playback_state-members.html | 19 +- ...local_media_source_1_1_playback_state.html | 54 +- ...edia_source_1_1_session_state-members.html | 4 +- ..._local_media_source_1_1_session_state.html | 24 +- ...media_source_engine_interface-members.html | 4 +- ...1_local_media_source_engine_interface.html | 4 +- ...ce_1_1alexa_1_1_notifications-members.html | 4 +- .../classaace_1_1alexa_1_1_notifications.html | 4 +- ...alexa_1_1_playback_controller-members.html | 4 +- ...aace_1_1alexa_1_1_playback_controller.html | 6 +- ...k_controller_engine_interface-members.html | 4 +- ..._playback_controller_engine_interface.html | 4 +- ..._1alexa_1_1_speech_recognizer-members.html | 15 +- ...ssaace_1_1alexa_1_1_speech_recognizer.html | 80 +- ...h_recognizer_engine_interface-members.html | 4 +- ..._1_speech_recognizer_engine_interface.html | 4 +- ...1alexa_1_1_speech_synthesizer-members.html | 4 +- ...saace_1_1alexa_1_1_speech_synthesizer.html | 4 +- ...1_1alexa_1_1_template_runtime-members.html | 10 +- ...assaace_1_1alexa_1_1_template_runtime.html | 105 +- ...late_runtime_engine_interface-members.html | 4 +- ...1_1_template_runtime_engine_interface.html | 4 +- ...onfig_1_1_alexa_configuration-members.html | 4 +- ...exa_1_1config_1_1_alexa_configuration.html | 4 +- .../classaace_1_1apl_1_1_a_p_l-members.html | 4 +- docs/cpp/classaace_1_1apl_1_1_a_p_l.html | 4 +- ...onfig_1_1_a_p_l_configuration-members.html | 4 +- ...apl_1_1config_1_1_a_p_l_configuration.html | 4 +- ...ace_1_1audio_1_1_audio_output-members.html | 4 +- .../classaace_1_1audio_1_1_audio_output.html | 4 +- ...dio_1_1_audio_stream_property-members.html | 4 +- ...ce_1_1audio_1_1_audio_stream_property.html | 4 +- ..._1car_control_1_1_car_control-members.html | 4 +- ...ssaace_1_1car_control_1_1_car_control.html | 4 +- ...1_1_car_control_configuration-members.html | 13 +- ...1config_1_1_car_control_configuration.html | 60 +- .../classaace_1_1cbl_1_1_c_b_l-members.html | 4 +- docs/cpp/classaace_1_1cbl_1_1_c_b_l.html | 4 +- ...onfig_1_1_c_b_l_configuration-members.html | 4 +- ...cbl_1_1config_1_1_c_b_l_configuration.html | 4 +- ...uploader_1_1_contact_uploader-members.html | 92 - ...contact_uploader_1_1_contact_uploader.html | 291 - .../classaace_1_1core_1_1_engine-members.html | 10 +- docs/cpp/classaace_1_1core_1_1_engine.html | 89 +- ..._1core_1_1_platform_interface-members.html | 4 +- ...ssaace_1_1core_1_1_platform_interface.html | 4 +- ...config_1_1_configuration_file-members.html | 4 +- ...core_1_1config_1_1_configuration_file.html | 4 +- ...nfig_1_1_engine_configuration-members.html | 4 +- ...re_1_1config_1_1_engine_configuration.html | 4 +- ...nfig_1_1_stream_configuration-members.html | 4 +- ...re_1_1config_1_1_stream_configuration.html | 4 +- ...aace_1_1location_1_1_location-members.html | 4 +- .../classaace_1_1location_1_1_location.html | 4 +- ...ocation_1_1_location_provider-members.html | 4 +- ...ace_1_1location_1_1_location_provider.html | 4 +- ...lassaace_1_1logger_1_1_logger-members.html | 4 +- docs/cpp/classaace_1_1logger_1_1_logger.html | 4 +- ...r_1_1_logger_engine_interface-members.html | 4 +- ...1_1logger_1_1_logger_engine_interface.html | 4 +- ...nfig_1_1_logger_configuration-members.html | 4 +- ...er_1_1config_1_1_logger_configuration.html | 4 +- ...1metrics_1_1_metrics_uploader-members.html | 4 +- ...saace_1_1metrics_1_1_metrics_uploader.html | 4 +- ...etrics_uploader_1_1_datapoint-members.html | 4 +- ...cs_1_1_metrics_uploader_1_1_datapoint.html | 4 +- ..._1_1navigation_1_1_navigation-members.html | 4 +- ...lassaace_1_1navigation_1_1_navigation.html | 4 +- ...1_1_navigation_configuration-members.html} | 19 +- ..._1config_1_1_navigation_configuration.html | 127 + ...ork_1_1_network_info_provider-members.html | 4 +- ..._1_1network_1_1_network_info_provider.html | 4 +- ...nfo_provider_engine_interface-members.html | 4 +- ...etwork_info_provider_engine_interface.html | 4 +- ...ler_1_1_phone_call_controller-members.html | 4 +- ..._controller_1_1_phone_call_controller.html | 4 +- ...l_controller_engine_interface-members.html | 4 +- ...hone_call_controller_engine_interface.html | 4 +- ..._manager_1_1_property_manager-members.html | 4 +- ...property_manager_1_1_property_manager.html | 4 +- ...fig_1_1_storage_configuration-members.html | 4 +- ...e_1_1config_1_1_storage_configuration.html | 4 +- ...fig_1_1_vehicle_configuration-members.html | 4 +- ...e_1_1config_1_1_vehicle_configuration.html | 6 +- docs/cpp/classes.html | 8 +- docs/cpp/deprecated.html | 14 +- docs/cpp/functions.html | 64 +- docs/cpp/functions_enum.html | 4 +- docs/cpp/functions_func.html | 55 +- docs/cpp/functions_type.html | 7 +- docs/cpp/functions_vars.html | 8 +- docs/cpp/hierarchy.html | 76 +- docs/cpp/index.html | 4 +- docs/cpp/namespaceaace.html | 4 +- docs/cpp/namespaceaace_1_1alexa.html | 4 +- ...ce_1_1car_control_1_1config_1_1action.html | 4 +- docs/cpp/namespacemembers.html | 4 +- docs/cpp/namespacemembers_enum.html | 4 +- docs/cpp/namespacemembers_func.html | 4 +- docs/cpp/pages.html | 4 +- docs/cpp/search/all_0.js | 7 +- docs/cpp/search/all_2.js | 5 +- docs/cpp/search/all_3.js | 1 - docs/cpp/search/all_4.js | 3 +- docs/cpp/search/all_6.js | 2 +- docs/cpp/search/all_8.js | 3 +- docs/cpp/search/all_b.js | 1 + docs/cpp/search/all_d.js | 4 +- docs/cpp/search/all_e.js | 5 +- docs/cpp/search/all_f.js | 5 +- docs/cpp/search/classes_1.js | 3 +- docs/cpp/search/classes_7.js | 1 + docs/cpp/search/classes_8.js | 2 +- docs/cpp/search/functions_0.js | 4 - docs/cpp/search/functions_2.js | 3 +- docs/cpp/search/functions_3.js | 1 - docs/cpp/search/functions_4.js | 3 +- docs/cpp/search/functions_5.js | 2 +- docs/cpp/search/functions_7.js | 3 +- docs/cpp/search/functions_c.js | 2 +- docs/cpp/search/functions_d.js | 5 +- docs/cpp/search/functions_e.js | 4 +- docs/cpp/search/namespaces_0.js | 3 +- docs/cpp/search/typedefs_1.js | 3 +- docs/cpp/search/variables_a.js | 1 - extensions/aasb/.gitignore | 3 + extensions/aasb/CMakeLists.txt | 18 + extensions/aasb/README.md | 328 + extensions/aasb/assets/AASBNewArch.png | Bin 0 -> 55519 bytes extensions/aasb/assets/AASBOldArch.png | Bin 0 -> 36815 bytes .../aasb/docs/AASB/StartServiceMessage.html | 1109 + .../aasb/docs/AASB/StopServiceMessage.html | 1109 + .../APL/ClearAllExecuteCommandsMessage.html | 1128 + .../aasb/docs/APL/ClearCardMessage.html | 1128 + .../aasb/docs/APL/ClearDocumentMessage.html | 1128 + .../aasb/docs/APL/ExecuteCommandsMessage.html | 1148 + .../APL/ExecuteCommandsResultMessage.html | 1159 + .../docs/APL/GetVisualContextMessage.html | 1128 + .../APL/GetVisualContextMessageReply.html | 1149 + .../APL/InterruptCommandSequenceMessage.html | 1128 + .../docs/APL/ProcessActivityEventMessage.html | 1155 + .../aasb/docs/APL/RenderDocumentMessage.html | 1159 + .../docs/APL/RenderDocumentResultMessage.html | 1159 + .../aasb/docs/APL/SendUserEventMessage.html | 1137 + .../docs/APL/SetAPLMaxVersionMessage.html | 1137 + .../APL/SetDocumentIdleTimeoutMessage.html | 1137 + .../AddressBook/AddAddressBookMessage.html | 1495 ++ .../AddAddressBookMessageReply.html | 1149 + .../AddressBook/RemoveAddressBookMessage.html | 1137 + .../RemoveAddressBookMessageReply.html | 1149 + .../aasb/docs/Alerts/AlertCreatedMessage.html | 1148 + .../aasb/docs/Alerts/AlertDeletedMessage.html | 1137 + .../docs/Alerts/AlertStateChangedMessage.html | 1172 + .../aasb/docs/Alerts/LocalStopMessage.html | 1128 + .../docs/Alerts/RemoveAllAlertsMessage.html | 1130 + .../AlexaClient/AuthStateChangedMessage.html | 1170 + .../ConnectionStatusChangedMessage.html | 1172 + .../DialogStateChangedMessage.html | 1144 + .../StopForegroundActivityMessage.html | 1128 + .../LocalAdjustVolumeMessage.html | 1156 + .../AlexaSpeaker/LocalSetMuteMessage.html | 1155 + .../AlexaSpeaker/LocalSetVolumeMessage.html | 1155 + .../SpeakerSettingsChangedMessage.html | 1175 + .../AudioInput/StartAudioInputMessage.html | 1164 + .../AudioInput/StopAudioInputMessage.html | 1137 + .../docs/AudioOutput/GetDurationMessage.html | 1148 + .../AudioOutput/GetDurationMessageReply.html | 1149 + .../GetNumBytesBufferedMessage.html | 1148 + .../GetNumBytesBufferedMessageReply.html | 1149 + .../docs/AudioOutput/GetPositionMessage.html | 1148 + .../AudioOutput/GetPositionMessageReply.html | 1149 + .../docs/AudioOutput/MediaErrorMessage.html | 1166 + .../AudioOutput/MediaStateChangedMessage.html | 1164 + .../AudioOutput/MutedStateChangedMessage.html | 1152 + .../aasb/docs/AudioOutput/PauseMessage.html | 1148 + .../aasb/docs/AudioOutput/PlayMessage.html | 1148 + .../AudioOutput/PrepareStreamMessage.html | 1242 + .../docs/AudioOutput/PrepareURLMessage.html | 1197 + .../aasb/docs/AudioOutput/ResumeMessage.html | 1148 + .../docs/AudioOutput/SetPositionMessage.html | 1159 + .../aasb/docs/AudioOutput/StopMessage.html | 1148 + .../AudioOutput/VolumeChangedMessage.html | 1148 + .../AudioPlayer/GetPlayerDurationMessage.html | 1128 + .../GetPlayerDurationMessageReply.html | 1149 + .../AudioPlayer/GetPlayerPositionMessage.html | 1128 + .../GetPlayerPositionMessageReply.html | 1149 + .../PlayerActivityChangedMessage.html | 1145 + .../AuthProvider/AuthStateChangedMessage.html | 1170 + .../AuthProvider/GetAuthStateMessage.html | 1128 + .../GetAuthStateMessageReply.html | 1155 + .../AuthProvider/GetAuthTokenMessage.html | 1129 + .../GetAuthTokenMessageReply.html | 1149 + .../aasb/docs/CBL/CBLStateChangedMessage.html | 1186 + extensions/aasb/docs/CBL/CancelMessage.html | 1128 + .../docs/CBL/ClearRefreshTokenMessage.html | 1128 + .../aasb/docs/CBL/GetRefreshTokenMessage.html | 1128 + .../docs/CBL/GetRefreshTokenMessageReply.html | 1149 + extensions/aasb/docs/CBL/ResetMessage.html | 1128 + .../aasb/docs/CBL/SetRefreshTokenMessage.html | 1137 + .../aasb/docs/CBL/SetUserProfileMessage.html | 1148 + extensions/aasb/docs/CBL/StartMessage.html | 1128 + .../AdjustModeControllerValueMessage.html | 1166 + ...AdjustModeControllerValueMessageReply.html | 1149 + .../AdjustRangeControllerValueMessage.html | 1166 + ...djustRangeControllerValueMessageReply.html | 1149 + .../SetModeControllerValueMessage.html | 1166 + .../SetModeControllerValueMessageReply.html | 1149 + .../SetPowerControllerValueMessage.html | 1155 + .../SetPowerControllerValueMessageReply.html | 1149 + .../SetRangeControllerValueMessage.html | 1166 + .../SetRangeControllerValueMessageReply.html | 1149 + .../SetToggleControllerValueMessage.html | 1166 + .../SetToggleControllerValueMessageReply.html | 1149 + .../DoNotDisturbChangedMessage.html | 1137 + .../DoNotDisturb/SetDoNotDisturbMessage.html | 1137 + .../GetBandLevelsMessage.html | 1129 + .../GetBandLevelsMessageReply.html | 1184 + .../LocalAdjustBandLevelsMessage.html | 1174 + .../LocalResetBandsMessage.html | 1137 + .../LocalSetBandLevelsMessage.html | 1173 + .../SetBandLevelsMessage.html | 1172 + .../AdjustSeekMessage.html | 1148 + .../AuthorizeMessage.html | 1168 + .../ExternalMediaAdapter/GetStateMessage.html | 1573 ++ .../LoginCompleteMessage.html | 1137 + .../ExternalMediaAdapter/LoginMessage.html | 1181 + .../LogoutCompleteMessage.html | 1137 + .../ExternalMediaAdapter/LogoutMessage.html | 1137 + .../MutedStateChangedMessage.html | 1143 + .../PlayControlMessage.html | 1165 + .../ExternalMediaAdapter/PlayMessage.html | 1197 + .../PlayerErrorMessage.html | 1181 + .../PlayerEventMessage.html | 1148 + .../RemoveDiscoveredPlayerMessage.html | 1137 + .../ReportDiscoveredPlayersMessage.html | 1216 + .../RequestTokenMessage.html | 1137 + .../ExternalMediaAdapter/SeekMessage.html | 1148 + .../ExternalMediaAdapter/SetFocusMessage.html | 1137 + .../VolumeChangedMessage.html | 1138 + .../GlobalPreset/SetGlobalPresetMessage.html | 1137 + extensions/aasb/docs/Introduction.html | 1008 + .../LocalMediaSource/AdjustSeekMessage.html | 1159 + .../LocalMediaSource/GetSourceMessage.html | 1128 + .../LocalMediaSource/GetStateMessage.html | 1148 + .../GetStateMessageReply.html | 1574 ++ .../MutedStateChangedMessage.html | 1160 + .../LocalMediaSource/PlayControlMessage.html | 1176 + .../docs/LocalMediaSource/PlayMessage.html | 1175 + .../LocalMediaSource/PlayerErrorMessage.html | 1192 + .../LocalMediaSource/PlayerEventMessage.html | 1159 + .../docs/LocalMediaSource/SeekMessage.html | 1159 + .../LocalMediaSource/SetFocusMessage.html | 1148 + .../VolumeChangedMessage.html | 1160 + .../LocationProvider/GetCountryMessage.html | 1128 + .../GetCountryMessageReply.html | 1149 + .../LocationProvider/GetLocationMessage.html | 1128 + .../GetLocationMessageReply.html | 1174 + .../Messaging/ConversationsReportMessage.html | 1148 + .../Messaging/SendMessageFailedMessage.html | 1164 + .../docs/Messaging/SendMessageMessage.html | 1159 + .../SendMessageSucceededMessage.html | 1137 + .../UpdateMessagesStatusFailedMessage.html | 1164 + .../UpdateMessagesStatusMessage.html | 1159 + .../UpdateMessagesStatusSucceededMessage.html | 1137 + .../UpdateMessagingEndpointStateMessage.html | 1171 + .../Messaging/UploadConversationsMessage.html | 1137 + .../Navigation/AnnounceManeuverMessage.html | 1137 + .../AnnounceRoadRegulationMessage.html | 1141 + .../Navigation/CancelNavigationMessage.html | 1128 + .../Navigation/ControlDisplayMessage.html | 1155 + .../Navigation/GetNavigationStateMessage.html | 1128 + .../GetNavigationStateMessageReply.html | 1149 + .../NavigateToPreviousWaypointMessage.html | 1128 + .../Navigation/NavigationErrorMessage.html | 1197 + .../Navigation/NavigationEventMessage.html | 1168 + .../ShowAlternativeRoutesMessage.html | 1142 + ...ShowAlternativeRoutesSucceededMessage.html | 1137 + .../ShowPreviousWaypointsMessage.html | 1128 + .../Navigation/StartNavigationMessage.html | 1137 + .../GetNetworkStatusMessage.html | 1128 + .../GetNetworkStatusMessageReply.html | 1156 + .../GetWifiSignalStrengthMessage.html | 1128 + .../GetWifiSignalStrengthMessageReply.html | 1149 + .../NetworkStatusChangedMessage.html | 1155 + .../OnNotificationReceivedMessage.html | 1128 + .../Notifications/SetIndicatorMessage.html | 1142 + .../PhoneCallController/AnswerMessage.html | 1137 + .../CallFailedMessage.html | 1166 + .../CallStateChangedMessage.html | 1167 + .../CallerIdReceivedMessage.html | 1148 + .../ConnectionStateChangedMessage.html | 1141 + .../CreateCallIdMessage.html | 1128 + .../CreateCallIdMessageReply.html | 1149 + .../DeviceConfigurationUpdatedMessage.html | 1137 + .../docs/PhoneCallController/DialMessage.html | 1137 + .../PhoneCallController/RedialMessage.html | 1137 + .../SendDTMFFailedMessage.html | 1163 + .../PhoneCallController/SendDTMFMessage.html | 1137 + .../SendDTMFSucceededMessage.html | 1137 + .../docs/PhoneCallController/StopMessage.html | 1137 + .../ButtonPressedMessage.html | 1147 + .../TogglePressedMessage.html | 1157 + .../PropertyManager/GetPropertyMessage.html | 1137 + .../GetPropertyMessageReply.html | 1160 + .../PropertyChangedMessage.html | 1148 + .../PropertyStateChangedMessage.html | 1163 + .../PropertyManager/SetPropertyMessage.html | 1148 + .../docs/Publish Message General Form.html | 1165 + .../aasb/docs/Reply Message General Form.html | 1177 + .../EndOfSpeechDetectedMessage.html | 1129 + .../SpeechRecognizer/StartCaptureMessage.html | 1179 + .../SpeechRecognizer/StopCaptureMessage.html | 1129 + .../WakewordDetectedMessage.html | 1137 + .../ClearPlayerInfoMessage.html | 1128 + .../TemplateRuntime/ClearTemplateMessage.html | 1128 + .../DisplayCardClearedMessage.html | 1128 + .../RenderPlayerInfoMessage.html | 1183 + .../RenderTemplateMessage.html | 1153 + extensions/aasb/meta-aac-aasb/conf/layer.conf | 1 + .../modules/aasb-address-book}/CMakeLists.txt | 26 +- .../aac-aasb-address-book.bb | 7 + .../aasb-address-book/engine/CMakeLists.txt | 60 + .../AASB/Engine/AddressBook/AASBAddressBook.h | 58 + .../AASBAddressBookEngineService.h | 44 + .../AddressBook/AddAddressBookMessage.h | 154 + .../AddressBook/AddAddressBookMessageReply.h | 144 + .../AddressBook/AddressBook/AddressBook.h | 79 + .../AddressBook/AddressBook/AddressBookType.h | 81 + .../AddressBook/AddressBook/ContactName.h | 75 + .../AddressBook/AddressBook/NavigationName.h | 69 + .../AddressBook/AddressBook/PhoneData.h | 72 + .../AddressBook/AddressBook/PostalAddress.h | 102 + .../AddressBook/RemoveAddressBookMessage.h | 141 + .../RemoveAddressBookMessageReply.h | 144 + .../engine/src/AASBAddressBook.cpp | 183 + .../src/AASBAddressBookEngineService.cpp | 60 + .../aasb/modules/aasb-alexa/CMakeLists.txt | 47 + .../aasb/modules/aasb-alexa/aac-aasb-alexa.bb | 7 + .../modules/aasb-alexa/engine/CMakeLists.txt | 193 + .../include/AASB/Engine/Alexa/AASBAlerts.h | 51 + .../AASB/Engine/Alexa/AASBAlexaClient.h | 49 + .../Engine/Alexa/AASBAlexaEngineService.h | 70 + .../AASB/Engine/Alexa/AASBAlexaSpeaker.h | 47 + .../AASB/Engine/Alexa/AASBAudioPlayer.h | 49 + .../AASB/Engine/Alexa/AASBAuthProvider.h | 53 + .../AASB/Engine/Alexa/AASBDoNotDisturb.h | 49 + .../Engine/Alexa/AASBEqualizerController.h | 50 + .../Engine/Alexa/AASBExternalMediaAdapter.h | 69 + .../AASB/Engine/Alexa/AASBGlobalPreset.h | 47 + .../AASB/Engine/Alexa/AASBLocalMediaSource.h | 55 + .../AASB/Engine/Alexa/AASBNotifications.h | 50 + .../Engine/Alexa/AASBPlaybackController.h | 43 + .../AASB/Engine/Alexa/AASBSpeechRecognizer.h | 50 + .../AASB/Engine/Alexa/AASBSpeechSynthesizer.h | 30 +- .../AASB/Engine/Alexa/AASBTemplateRuntime.h | 55 + .../Alexa/Alerts/AlertCreatedMessage.h | 144 + .../Alexa/Alerts/AlertDeletedMessage.h | 141 + .../AASB/Message/Alexa/Alerts/AlertState.h | 117 + .../Alexa/Alerts/AlertStateChangedMessage.h | 150 + .../Message/Alexa/Alerts/LocalStopMessage.h | 136 + .../Alexa/Alerts/RemoveAllAlertsMessage.h | 136 + .../Message/Alexa/AlexaClient/AuthError.h | 129 + .../Message/Alexa/AlexaClient/AuthState.h | 89 + .../AlexaClient/AuthStateChangedMessage.h | 149 + .../AlexaClient/ConnectionChangedReason.h | 141 + .../Alexa/AlexaClient/ConnectionStatus.h | 85 + .../ConnectionStatusChangedMessage.h | 149 + .../Message/Alexa/AlexaClient/DialogState.h | 93 + .../AlexaClient/DialogStateChangedMessage.h | 144 + .../StopForegroundActivityMessage.h | 136 + .../AlexaSpeaker/LocalAdjustVolumeMessage.h | 147 + .../Alexa/AlexaSpeaker/LocalSetMuteMessage.h | 147 + .../AlexaSpeaker/LocalSetVolumeMessage.h | 147 + .../SpeakerSettingsChangedMessage.h | 153 + .../Message/Alexa/AlexaSpeaker/SpeakerType.h | 81 + .../AudioPlayer/GetPlayerDurationMessage.h | 136 + .../GetPlayerDurationMessageReply.h | 144 + .../AudioPlayer/GetPlayerPositionMessage.h | 136 + .../GetPlayerPositionMessageReply.h | 144 + .../Alexa/AudioPlayer/PlayerActivity.h | 97 + .../PlayerActivityChangedMessage.h | 144 + .../AuthProvider/AuthStateChangedMessage.h | 149 + .../Alexa/AuthProvider/GetAuthStateMessage.h | 136 + .../AuthProvider/GetAuthStateMessageReply.h | 147 + .../Alexa/AuthProvider/GetAuthTokenMessage.h | 136 + .../AuthProvider/GetAuthTokenMessageReply.h | 144 + .../DoNotDisturb/DoNotDisturbChangedMessage.h | 141 + .../DoNotDisturb/SetDoNotDisturbMessage.h | 141 + .../Alexa/EqualizerController/EqualizerBand.h | 85 + .../EqualizerController/EqualizerBandLevel.h | 70 + .../GetBandLevelsMessage.h | 136 + .../GetBandLevelsMessageReply.h | 147 + .../LocalAdjustBandLevelsMessage.h | 144 + .../LocalResetBandsMessage.h | 144 + .../LocalSetBandLevelsMessage.h | 144 + .../SetBandLevelsMessage.h | 144 + .../ExternalMediaAdapter/AdjustSeekMessage.h | 144 + .../ExternalMediaAdapter/AuthorizeMessage.h | 144 + .../AuthorizedPlayerInfo.h | 67 + .../DiscoveredPlayerInfo.h | 77 + .../ExternalMediaAdapterState.h | 69 + .../Alexa/ExternalMediaAdapter/Favorites.h | 85 + .../ExternalMediaAdapter/GetStateMessage.h | 147 + .../LoginCompleteMessage.h | 141 + .../Alexa/ExternalMediaAdapter/LoginMessage.h | 153 + .../LogoutCompleteMessage.h | 141 + .../ExternalMediaAdapter/LogoutMessage.h | 141 + .../Alexa/ExternalMediaAdapter/MediaType.h | 97 + .../Alexa/ExternalMediaAdapter/MutedState.h | 81 + .../MutedStateChangedMessage.h | 144 + .../Alexa/ExternalMediaAdapter/Navigation.h | 85 + .../ExternalMediaAdapter/PlayControlMessage.h | 147 + .../ExternalMediaAdapter/PlayControlType.h | 133 + .../Alexa/ExternalMediaAdapter/PlayMessage.h | 159 + .../PlaybackStateExternal.h | 140 + .../ExternalMediaAdapter/PlayerErrorMessage.h | 153 + .../ExternalMediaAdapter/PlayerEventMessage.h | 144 + .../RemoveDiscoveredPlayerMessage.h | 141 + .../ReportDiscoveredPlayersMessage.h | 144 + .../RequestTokenMessage.h | 141 + .../Alexa/ExternalMediaAdapter/SeekMessage.h | 144 + .../SessionStateExternal.h | 91 + .../ExternalMediaAdapter/SetFocusMessage.h | 141 + .../SupportedPlaybackOperation.h | 141 + .../ExternalMediaAdapter/ValidationData.h | 64 + .../ExternalMediaAdapter/ValidationMethod.h | 85 + .../VolumeChangedMessage.h | 141 + .../GlobalPreset/SetGlobalPresetMessage.h | 141 + .../LocalMediaSource/AdjustSeekMessage.h | 147 + .../Alexa/LocalMediaSource/ContentSelector.h | 87 + .../Alexa/LocalMediaSource/GetSourceMessage.h | 136 + .../Alexa/LocalMediaSource/GetStateMessage.h | 144 + .../LocalMediaSource/GetStateMessageReply.h | 145 + .../LocalMediaSource/LocalMediaSourceState.h | 71 + .../MutedStateChangedMessage.h | 149 + .../LocalMediaSource/PlayControlMessage.h | 149 + .../Alexa/LocalMediaSource/PlayMessage.h | 152 + .../Alexa/LocalMediaSource/PlaybackState.h | 142 + .../LocalMediaSource/PlayerErrorMessage.h | 156 + .../LocalMediaSource/PlayerEventMessage.h | 147 + .../Alexa/LocalMediaSource/SeekMessage.h | 147 + .../Alexa/LocalMediaSource/SessionState.h | 96 + .../Alexa/LocalMediaSource/SetFocusMessage.h | 144 + .../Message/Alexa/LocalMediaSource/Source.h | 111 + .../LocalMediaSource/VolumeChangedMessage.h | 147 + .../Alexa/Notifications/IndicatorState.h | 85 + .../OnNotificationReceivedMessage.h | 136 + .../Alexa/Notifications/SetIndicatorMessage.h | 144 + .../PlaybackController/ButtonPressedMessage.h | 144 + .../Alexa/PlaybackController/PlaybackButton.h | 97 + .../Alexa/PlaybackController/PlaybackToggle.h | 93 + .../PlaybackController/TogglePressedMessage.h | 147 + .../EndOfSpeechDetectedMessage.h | 136 + .../Alexa/SpeechRecognizer/Initiator.h | 85 + .../SpeechRecognizer/StartCaptureMessage.h | 153 + .../SpeechRecognizer/StopCaptureMessage.h | 136 + .../WakewordDetectedMessage.h | 141 + .../TemplateRuntime/ClearPlayerInfoMessage.h | 136 + .../TemplateRuntime/ClearTemplateMessage.h | 136 + .../DisplayCardClearedMessage.h | 136 + .../Alexa/TemplateRuntime/FocusState.h | 85 + .../TemplateRuntime/RenderPlayerInfoMessage.h | 155 + .../TemplateRuntime/RenderTemplateMessage.h | 147 + .../aasb-alexa/engine/src/AASBAlerts.cpp | 156 + .../aasb-alexa/engine/src/AASBAlexaClient.cpp | 132 + .../engine/src/AASBAlexaEngineService.cpp | 319 + .../engine/src/AASBAlexaSpeaker.cpp | 138 + .../aasb-alexa/engine/src/AASBAudioPlayer.cpp | 131 + .../engine/src/AASBAuthProvider.cpp | 137 + .../engine/src/AASBDoNotDisturb.cpp | 97 + .../engine/src/AASBEqualizerController.cpp | 196 + .../engine/src/AASBExternalMediaAdapter.cpp | 598 + .../engine/src/AASBGlobalPreset.cpp | 78 + .../engine/src/AASBLocalMediaSource.cpp | 284 + .../engine/src/AASBNotifications.cpp | 94 + .../engine/src/AASBPlaybackController.cpp | 99 + .../engine/src/AASBSpeechRecognizer.cpp | 139 + .../engine/src/AASBSpeechSynthesizer.cpp | 38 + .../engine/src/AASBTemplateRuntime.cpp | 154 + .../aasb/modules/aasb-apl/CMakeLists.txt | 46 + .../aasb/modules/aasb-apl/aac-aasb-apl.bb | 7 + .../modules/aasb-apl/engine/CMakeLists.txt | 65 + .../engine/include/AASB/Engine/APL/AASBAPL.h | 52 + .../AASB/Engine/APL/AASBAPLEngineService.h | 47 + .../AASB/Message/Apl/APL/ActivityEvent.h | 93 + .../Apl/APL/ClearAllExecuteCommandsMessage.h | 136 + .../AASB/Message/Apl/APL/ClearCardMessage.h | 136 + .../Message/Apl/APL/ClearDocumentMessage.h | 136 + .../Message/Apl/APL/ExecuteCommandsMessage.h | 144 + .../Apl/APL/ExecuteCommandsResultMessage.h | 147 + .../Message/Apl/APL/GetVisualContextMessage.h | 136 + .../Apl/APL/GetVisualContextMessageReply.h | 144 + .../Apl/APL/InterruptCommandSequenceMessage.h | 136 + .../Apl/APL/ProcessActivityEventMessage.h | 147 + .../Message/Apl/APL/RenderDocumentMessage.h | 147 + .../Apl/APL/RenderDocumentResultMessage.h | 147 + .../Message/Apl/APL/SendUserEventMessage.h | 141 + .../Message/Apl/APL/SetAPLMaxVersionMessage.h | 141 + .../Apl/APL/SetDocumentIdleTimeoutMessage.h | 141 + .../modules/aasb-apl/engine/src/AASBAPL.cpp | 309 + .../engine/src/AASBAPLEngineService.cpp | 60 + .../modules/aasb-car-control/CMakeLists.txt | 46 + .../aasb-car-control/aac-aasb-car-control.bb | 7 + .../aasb-car-control/engine/CMakeLists.txt | 58 + .../AASB/Engine/CarControl/AASBCarControl.h | 81 + .../CarControl/AASBCarControlEngineService.h | 47 + .../AdjustControllerValueMessageReply.h | 144 + .../AdjustModeControllerValueMessage.h | 156 + .../AdjustRangeControllerValueMessage.h | 156 + .../SetControllerValueMessageReply.h | 144 + .../SetModeControllerValueMessage.h | 156 + .../SetPowerControllerValueMessage.h | 153 + .../SetRangeControllerValueMessage.h | 156 + .../SetToggleControllerValueMessage.h | 156 + .../engine/src/AASBCarControl.cpp | 411 + .../src/AASBCarControlEngineService.cpp | 60 + .../aasb/modules/aasb-cbl/CMakeLists.txt | 47 + .../aasb/modules/aasb-cbl/aac-aasb-cbl.bb | 7 + .../modules/aasb-cbl/engine/CMakeLists.txt | 61 + .../engine/include/AASB/Engine/CBL/AASBCBL.h | 59 + .../AASB/Engine/CBL/AASBCBLEngineService.h | 44 + .../include/AASB/Message/Cbl/CBL/CBLState.h | 97 + .../Message/Cbl/CBL/CBLStateChangedMessage.h | 155 + .../Message/Cbl/CBL/CBLStateChangedReason.h | 97 + .../AASB/Message/Cbl/CBL/CancelMessage.h | 136 + .../Cbl/CBL/ClearRefreshTokenMessage.h | 136 + .../Message/Cbl/CBL/GetRefreshTokenMessage.h | 136 + .../Cbl/CBL/GetRefreshTokenMessageReply.h | 144 + .../AASB/Message/Cbl/CBL/ResetMessage.h | 136 + .../Message/Cbl/CBL/SetRefreshTokenMessage.h | 141 + .../Message/Cbl/CBL/SetUserProfileMessage.h | 144 + .../AASB/Message/Cbl/CBL/StartMessage.h | 136 + .../modules/aasb-cbl/engine/src/AASBCBL.cpp | 208 + .../engine/src/AASBCBLEngineService.cpp | 60 + .../aasb/modules/aasb-core/CMakeLists.txt | 45 + .../aasb/modules/aasb-core/aac-aasb-core.bb | 7 + .../modules/aasb-core/engine/CMakeLists.txt | 127 + .../Engine/Audio/AASBAudioEngineService.h | 49 + .../AASB/Engine/Audio/AASBAudioInput.h | 94 + .../Engine/Audio/AASBAudioInputProvider.h | 59 + .../AASB/Engine/Audio/AASBAudioOutput.h | 97 + .../Engine/Audio/AASBAudioOutputProvider.h | 56 + .../Location/AASBLocationEngineService.h | 47 + .../Engine/Location/AASBLocationProvider.h | 53 + .../Engine/Network/AASBNetworkEngineService.h | 47 + .../Engine/Network/AASBNetworkInfoProvider.h | 50 + .../PropertyManager/AASBPropertyManager.h | 53 + .../AASBPropertyManagerEngineService.h | 46 + .../Audio/AudioInput/AudioInputAudioType.h | 85 + .../Audio/AudioInput/StartAudioInputMessage.h | 150 + .../Audio/AudioInput/StopAudioInputMessage.h | 141 + .../Audio/AudioOutput/AudioOutputAudioType.h | 101 + .../Audio/AudioOutput/AudioOutputSourceType.h | 81 + .../Audio/AudioOutput/AudioStreamEncoding.h | 89 + .../Audio/AudioOutput/AudioStreamProperty.h | 67 + .../Audio/AudioOutput/GetDurationMessage.h | 144 + .../AudioOutput/GetDurationMessageReply.h | 144 + .../AudioOutput/GetNumBytesBufferedMessage.h | 144 + .../GetNumBytesBufferedMessageReply.h | 144 + .../Audio/AudioOutput/GetPositionMessage.h | 144 + .../AudioOutput/GetPositionMessageReply.h | 144 + .../Message/Audio/AudioOutput/MediaError.h | 93 + .../Audio/AudioOutput/MediaErrorMessage.h | 150 + .../Message/Audio/AudioOutput/MediaState.h | 85 + .../AudioOutput/MediaStateChangedMessage.h | 150 + .../Message/Audio/AudioOutput/MutedState.h | 81 + .../AudioOutput/MutedStateChangedMessage.h | 147 + .../Message/Audio/AudioOutput/PauseMessage.h | 144 + .../Message/Audio/AudioOutput/PlayMessage.h | 144 + .../Audio/AudioOutput/PrepareStreamMessage.h | 173 + .../Audio/AudioOutput/PrepareURLMessage.h | 165 + .../Message/Audio/AudioOutput/ResumeMessage.h | 144 + .../Audio/AudioOutput/SetPositionMessage.h | 147 + .../Message/Audio/AudioOutput/StopMessage.h | 144 + .../Audio/AudioOutput/VolumeChangedMessage.h | 144 + .../LocationProvider/GetCountryMessage.h | 136 + .../LocationProvider/GetCountryMessageReply.h | 144 + .../LocationProvider/GetLocationMessage.h | 136 + .../GetLocationMessageReply.h | 147 + .../Location/LocationProvider/Location.h | 67 + .../GetNetworkStatusMessage.h | 136 + .../GetNetworkStatusMessageReply.h | 147 + .../GetWifiSignalStrengthMessage.h | 136 + .../GetWifiSignalStrengthMessageReply.h | 144 + .../NetworkInfoProvider/NetworkStatus.h | 93 + .../NetworkStatusChangedMessage.h | 147 + .../PropertyManager/GetPropertyMessage.h | 141 + .../PropertyManager/GetPropertyMessageReply.h | 147 + .../PropertyManager/PropertyChangedMessage.h | 144 + .../PropertyManager/PropertyState.h | 81 + .../PropertyStateChangedMessage.h | 150 + .../PropertyManager/SetPropertyMessage.h | 144 + .../src/Audio/AASBAudioEngineService.cpp | 73 + .../engine/src/Audio/AASBAudioInput.cpp | 162 + .../src/Audio/AASBAudioInputProvider.cpp | 82 + .../engine/src/Audio/AASBAudioOutput.cpp | 458 + .../src/Audio/AASBAudioOutputProvider.cpp | 83 + .../Location/AASBLocationEngineService.cpp | 60 + .../src/Location/AASBLocationProvider.cpp | 117 + .../src/Network/AASBNetworkEngineService.cpp | 60 + .../src/Network/AASBNetworkInfoProvider.cpp | 141 + .../PropertyManager/AASBPropertyManager.cpp | 154 + .../AASBPropertyManagerEngineService.cpp | 61 + .../modules/aasb-messaging/CMakeLists.txt | 46 + .../aasb-messaging/aac-aasb-messaging.bb | 7 + .../aasb-messaging/engine/CMakeLists.txt | 62 + .../AASB/Engine/Messaging/AASBMessaging.h | 59 + .../Messaging/AASBMessagingEngineService.h | 44 + .../Messaging/Messaging/ConnectionState.h | 81 + .../Messaging/ConversationsReportMessage.h | 144 + .../Message/Messaging/Messaging/ErrorCode.h | 85 + .../Messaging/Messaging/PermissionState.h | 81 + .../Messaging/SendMessageFailedMessage.h | 150 + .../Messaging/Messaging/SendMessageMessage.h | 147 + .../Messaging/SendMessageSucceededMessage.h | 141 + .../UpdateMessagesStatusFailedMessage.h | 150 + .../Messaging/UpdateMessagesStatusMessage.h | 147 + .../UpdateMessagesStatusSucceededMessage.h | 141 + .../UpdateMessagingEndpointStateMessage.h | 152 + .../Messaging/UploadConversationsMessage.h | 141 + .../engine/src/AASBMessaging.cpp | 233 + .../engine/src/AASBMessagingEngineService.cpp | 60 + .../modules/aasb-navigation/CMakeLists.txt | 47 + .../aasb-navigation/aac-aasb-navigation.bb | 7 + .../aasb-navigation/engine/CMakeLists.txt | 69 + .../AASB/Engine/Navigation/AASBNavigation.h | 62 + .../Navigation/AASBNavigationEngineService.h | 47 + .../Navigation/AlternateRouteType.h | 87 + .../Navigation/AnnounceManeuverMessage.h | 141 + .../AnnounceRoadRegulationMessage.h | 144 + .../Navigation/CancelNavigationMessage.h | 136 + .../Navigation/Navigation/ControlDisplay.h | 139 + .../Navigation/ControlDisplayMessage.h | 144 + .../Message/Navigation/Navigation/ErrorCode.h | 95 + .../Message/Navigation/Navigation/ErrorType.h | 191 + .../Message/Navigation/Navigation/EventName.h | 191 + .../Navigation/GetNavigationStateMessage.h | 136 + .../GetNavigationStateMessageReply.h | 144 + .../NavigateToPreviousWaypointMessage.h | 136 + .../Navigation/NavigationErrorMessage.h | 152 + .../Navigation/NavigationEventMessage.h | 144 + .../Navigation/Navigation/RoadRegulation.h | 83 + .../Navigation/ShowAlternativeRoutesMessage.h | 144 + .../ShowAlternativeRoutesSucceededMessage.h | 141 + .../Navigation/ShowPreviousWaypointsMessage.h | 136 + .../Navigation/StartNavigationMessage.h | 141 + .../engine/src/AASBNavigation.cpp | 302 + .../src/AASBNavigationEngineService.cpp | 60 + .../modules/aasb-phone-control/CMakeLists.txt | 47 + .../aac-aasb-phone-control.bb | 7 + .../aasb-phone-control/engine/CMakeLists.txt | 70 + .../AASBPhoneCallController.h | 60 + .../AASBPhoneCallControllerEngineService.h | 44 + .../PhoneCallController/AnswerMessage.h | 141 + .../PhoneCallController/CallError.h | 93 + .../PhoneCallController/CallFailedMessage.h | 150 + .../PhoneCallController/CallState.h | 97 + .../CallStateChangedMessage.h | 150 + .../CallerIdReceivedMessage.h | 144 + .../CallingDeviceConfigurationProperty.h | 77 + .../PhoneCallController/ConnectionState.h | 81 + .../ConnectionStateChangedMessage.h | 144 + .../PhoneCallController/CreateCallIdMessage.h | 136 + .../CreateCallIdMessageReply.h | 144 + .../PhoneCallController/DTMFError.h | 81 + .../DeviceConfigurationUpdatedMessage.h | 141 + .../PhoneCallController/DialMessage.h | 141 + .../PhoneCallController/RedialMessage.h | 141 + .../SendDTMFFailedMessage.h | 150 + .../PhoneCallController/SendDTMFMessage.h | 141 + .../SendDTMFSucceededMessage.h | 141 + .../PhoneCallController/StopMessage.h | 141 + .../engine/src/AASBPhoneCallController.cpp | 371 + .../AASBPhoneCallControllerEngineService.cpp | 61 + extensions/aasb/modules/aasb/CMakeLists.txt | 33 + .../aasb/modules/aasb/aac-module-aasb.bb | 7 + .../aasb/modules/aasb/engine/CMakeLists.txt | 58 + .../include/AACE/Engine/AASB/AASBEngineImpl.h | 66 + .../AACE/Engine/AASB/AASBEngineService.h | 89 + .../Engine/AASB/AASBHandlerEngineService.h | 75 + .../AACE/Engine/AASB/AASBServiceInterface.h | 46 + .../engine/include/AACE/Engine/AASB/Message.h | 100 + .../include/AACE/Engine/AASB/MessageBroker.h | 94 + .../AACE/Engine/AASB/MessageBrokerInterface.h | 53 + .../include/AACE/Engine/AASB/PublishMessage.h | 73 + .../include/AACE/Engine/AASB/StreamManager.h | 58 + .../AACE/Engine/AASB/StreamManagerInterface.h | 41 + .../AASB/Message/AASB/StartServiceMessage.h | 126 + .../AASB/Message/AASB/StopServiceMessage.h | 126 + .../aasb/engine/src/AASBEngineImpl.cpp | 116 + .../aasb/engine/src/AASBEngineService.cpp | 198 + .../engine/src/AASBHandlerEngineService.cpp | 132 + .../aasb/engine/src/AASBServiceInterface.cpp | 21 +- .../aasb/modules/aasb/engine/src/Message.cpp | 131 + .../modules/aasb/engine/src/MessageBroker.cpp | 298 + .../aasb/engine/src/PublishMessage.cpp | 111 + .../modules/aasb/engine/src/StreamManager.cpp | 82 + .../aasb/modules/aasb/platform/CMakeLists.txt | 48 + .../aasb/platform/include/AACE/AASB/AASB.h | 78 + .../include/AACE/AASB/AASBEngineInterfaces.h | 25 +- .../platform/include/AACE/AASB/AASBStream.h | 87 + .../aasb/modules/aasb/platform/src/AASB.cpp | 42 + .../modules/aasb/platform/src/AASBStream.cpp | 16 +- extensions/aasb/platforms/android/.gitignore | 78 + .../modules/aasb-address-book/CMakeLists.txt | 54 + .../modules/aasb-address-book/build.gradle | 67 + .../src/main/AndroidManifest.xml | 2 +- .../assets/meta-aac/aasb-address-book.json | 5 + .../aasb-address-book/src/main/cpp/dummy.cpp | 1 + .../android/modules/aasb-alexa/CMakeLists.txt | 53 + .../android/modules/aasb-alexa/build.gradle | 67 + .../aasb-alexa/src/main/AndroidManifest.xml | 4 + .../src/main/assets/meta-aac/aasb-alexa.json | 5 + .../modules/aasb-alexa/src/main/cpp/dummy.cpp | 1 + .../android/modules/aasb-apl/CMakeLists.txt | 53 + .../android/modules/aasb-apl/build.gradle | 67 + .../aasb-apl/src/main/AndroidManifest.xml | 4 + .../src/main/assets/meta-aac/aasb-apl.json | 5 + .../modules/aasb-apl/src/main/cpp/dummy.cpp | 1 + .../modules/aasb-car-control/CMakeLists.txt | 54 + .../modules/aasb-car-control/build.gradle | 67 + .../src/main/AndroidManifest.xml | 4 + .../assets/meta-aac/aasb-car-control.json | 5 + .../aasb-car-control/src/main/cpp/dummy.cpp | 1 + .../android/modules/aasb-cbl/CMakeLists.txt | 53 + .../android/modules/aasb-cbl/build.gradle | 67 + .../aasb-cbl/src/main/AndroidManifest.xml | 4 + .../src/main/assets/meta-aac/aasb-cbl.json | 5 + .../modules/aasb-cbl/src/main/cpp/dummy.cpp | 1 + .../android/modules/aasb-core/CMakeLists.txt | 51 + .../android/modules/aasb-core/build.gradle | 67 + .../aasb-core/src/main/AndroidManifest.xml | 4 + .../src/main/assets/meta-aac/aasb-core.json | 5 + .../modules/aasb-core/src/main/cpp/dummy.cpp | 1 + .../modules/aasb-messaging/CMakeLists.txt | 54 + .../modules/aasb-messaging/build.gradle | 67 + .../src/main/AndroidManifest.xml | 4 + .../main/assets/meta-aac/aasb-messaging.json | 5 + .../aasb-messaging/src/main/cpp/dummy.cpp | 1 + .../modules/aasb-navigation/CMakeLists.txt | 54 + .../modules/aasb-navigation/build.gradle | 67 + .../src/main/AndroidManifest.xml | 4 + .../main/assets/meta-aac/aasb-navigation.json | 5 + .../aasb-navigation/src/main/cpp/dummy.cpp | 1 + .../modules/aasb-phone-control/CMakeLists.txt | 54 + .../modules/aasb-phone-control/build.gradle | 67 + .../src/main/AndroidManifest.xml | 4 + .../assets/meta-aac/aasb-phone-control.json | 5 + .../aasb-phone-control/src/main/cpp/dummy.cpp | 1 + .../android/modules/aasb/CMakeLists.txt | 54 + .../android/modules/aasb}/build.gradle | 5 +- .../modules/aasb/src/main/AndroidManifest.xml | 4 + .../src/main/assets/meta-aac/aace-aasb.json | 5 + .../cpp/include/AACE/JNI/AASB/AASBBinder.h | 57 + .../include/AACE/JNI/AASB/AASBStreamBinder.h | 67 + .../aasb/src/main/cpp/src/AASBBinder.cpp | 111 + .../src/main/cpp/src/AASBStreamBinder.cpp | 115 + .../main/java/com/amazon/aace/aasb/AASB.java | 50 + .../java/com/amazon/aace/aasb/AASBStream.java | 136 + .../experimental/system-audio/README.md | 4 + .../modules/audio/engine/CMakeLists.txt | 3 + .../AACE/Engine/SystemAudio/AudioOutputImpl.h | 24 +- .../audio/engine/src/AudioOutputImpl.cpp | 323 +- .../audio/lib/aal/src/gstreamer/core.c | 53 +- .../modules/audio/lib/aal/src/qsa/core.c | 50 +- .../modules/audio/lib/aal/src/qsa/player.c | 13 +- .../platforms/android/.gitignore | 78 + .../modules/loopback-detector/CMakeLists.txt | 50 + .../modules/loopback-detector/build.gradle | 66 + .../src/main/AndroidManifest.xml | 4 + .../meta-aac/aace-loopback-detector.json | 5 + .../LoopbackDetectorConfigurationBinder.cpp | 1 + modules/address-book/README.md | 2 - modules/alexa/README.md | 291 +- modules/alexa/cmake/FindAVS.cmake | 2 + modules/alexa/engine/CMakeLists.txt | 1 + .../AACE/Engine/Alexa/AlexaEngineService.h | 1 - .../Engine/Alexa/AudioChannelEngineImpl.h | 8 +- .../AACE/Engine/Alexa/AudioDuckingConfig.h | 277 + .../AACE/Engine/Alexa/ExternalMediaPlayer.h | 5 +- .../Alexa/ExternalMediaPlayerInterface.h | 16 +- .../Engine/Alexa/SpeechRecognizerEngineImpl.h | 5 +- .../AACE/Engine/Alexa/SystemSoundPlayer.h | 1 - modules/alexa/engine/src/AlertsEngineImpl.cpp | 3 +- .../alexa/engine/src/AlexaEngineService.cpp | 107 +- .../engine/src/AudioChannelEngineImpl.cpp | 90 +- .../engine/src/AudioPlayerEngineImpl.cpp | 3 +- .../alexa/engine/src/ExternalMediaPlayer.cpp | 5 +- .../engine/src/LocalMediaSourceEngineImpl.cpp | 7 + .../engine/src/NotificationsEngineImpl.cpp | 3 +- .../engine/src/SpeechRecognizerEngineImpl.cpp | 2 +- .../src/SpeechSynthesizerEngineImpl.cpp | 3 +- .../alexa/engine/src/SystemSoundPlayer.cpp | 2 +- .../include/AACE/Test/AVS/MockMessageRouter.h | 2 +- .../AACE/Test/Alexa/MockSpeechRecognizer.h | 3 +- .../AACE/Test/Alexa/MockTemplateRuntime.h | 10 +- .../src/TemplateRuntimeEngineImplTest.cpp | 14 +- .../AACE/Alexa/AlexaEngineInterfaces.h | 2 - .../include/AACE/Alexa/AlexaProperties.h | 18 - .../include/AACE/Alexa/ExternalMediaAdapter.h | 108 +- .../include/AACE/Alexa/LocalMediaSource.h | 84 +- .../include/AACE/Alexa/SpeechRecognizer.h | 53 +- .../include/AACE/Alexa/TemplateRuntime.h | 34 +- .../platform/src/ExternalMediaAdapter.cpp | 45 + .../alexa/platform/src/LocalMediaSource.cpp | 2 +- .../alexa/platform/src/SpeechRecognizer.cpp | 27 +- .../alexa/platform/src/TemplateRuntime.cpp | 22 - modules/car-control/assets/assets-1P.json | 387 +- .../AACE/Engine/CarControl/AssetsDefault.h | 385 +- .../CarControl/CarControlConfigurationImpl.h | 33 - .../src/CarControlConfigurationImpl.cpp | 62 +- .../engine/src/CarControlEngineService.cpp | 125 +- .../engine/src/ToggleController.cpp | 5 - .../AACE/CarControl/CarControlAssets.h | 4 - .../AACE/CarControl/CarControlConfiguration.h | 54 - modules/contact-uploader/README.md | 60 - .../aac-module-contact-uploader.bb | 7 - .../contact-uploader/engine/CMakeLists.txt | 57 - .../ContactUploaderEngineImpl.h | 204 - .../ContactUploaderEngineService.h | 61 - .../ContactUploaderRESTAgent.h | 125 - .../ContactUploaderEngineImpl.cpp | 672 - .../ContactUploaderEngineService.cpp | 86 - .../ContactUploaderRESTAgent.cpp | 748 - .../engine/test/CMakeLists.txt | 24 - .../test/ContactUploaderEngineImplTest.cpp | 116 - .../contact-uploader/platform/CMakeLists.txt | 39 - .../AACE/ContactUploader/ContactUploader.h | 155 - .../ContactUploaderEngineInterface.h | 143 - .../src/ContactUploader/ContactUploader.cpp | 64 - modules/core/README.md | 6 +- .../include/AACE/Engine/Core/EngineImpl.h | 2 - .../include/AACE/Engine/Core/EngineService.h | 5 +- .../engine/src/Audio/AudioEngineService.cpp | 2 +- .../engine/src/Audio/AudioInputEngineImpl.cpp | 1 + modules/core/engine/src/EngineImpl.cpp | 99 +- modules/core/engine/src/EngineService.cpp | 10 +- .../core/engine/test/src/EngineImplTest.cpp | 12 - .../core/platform/include/AACE/Core/Engine.h | 32 - .../AACE/Vehicle/VehicleConfiguration.h | 1 + modules/navigation/README.md | 24 + modules/navigation/engine/CMakeLists.txt | 1 + .../src/NavigationConfigurationImpl.cpp | 47 + .../engine/src/NavigationEngineService.cpp | 9 +- modules/navigation/platform/CMakeLists.txt | 4 +- .../AACE/Navigation/NavigationConfiguration.h | 57 + .../Navigation/NavigationEngineInterfaces.h | 2 - ...PhoneCallControllerCapabilityAgentTest.cpp | 12 +- .../PhoneCallControllerEngineImplTest.cpp | 12 +- .../agl/alexa-voiceagent-service/.gitignore | 3 - ...fb-helpers-app-controller-submodules.patch | 630 - .../alexa-voiceagent-service/CMakeLists.txt | 19 - .../agl/alexa-voiceagent-service/License.txt | 202 - .../agl/alexa-voiceagent-service/README.md | 147 - .../assets/architecture.png | Bin 60122 -> 0 bytes .../conf.d/CMakeLists.txt | 18 - .../conf.d/cmake/00-debian-osconfig.cmake | 1 - .../conf.d/cmake/00-default-osconfig.cmake | 1 - .../conf.d/cmake/config.cmake | 260 - .../conf.d/project/CMakeLists.txt | 18 - .../conf.d/project/etc/CMakeLists.txt | 30 - .../etc/alexa-alexa-voiceagent-api.json | 82 - .../conf.d/wgt/config.xml.in | 29 - .../alexa-voiceagent-service/htdocs/AFB.js | 217 - .../htdocs/binding.css | 99 - .../htdocs/binding.js | 145 - .../htdocs/index.html | 43 - .../libs/CMakeLists.txt | 137 - .../src/CMakeLists.txt | 42 - .../src/alexa-voiceagent-apidef.json | 109 - .../src/alexa-voiceagent-binding.c | 125 - .../src/plugins/AlexaConsts.cpp | 32 - .../src/plugins/AlexaConsts.h | 37 - .../src/plugins/AlexaVoiceagentApi.cpp | 598 - .../src/plugins/AlexaVoiceagentApi.h | 59 - .../src/plugins/CMakeLists.txt | 132 - .../src/plugins/aac-services/.clang-format | 102 - .../src/plugins/aac-services/CMakeLists.txt | 257 - .../src/plugins/aac-services/README.md | 4 - .../alexa/include/AlertsHandler.h | 65 - .../alexa/include/AlexaClientHandler.h | 67 - .../alexa/include/AudioPlayerHandler.h | 53 - .../alexa/include/AuthProviderHandler.h | 62 - .../alexa/include/LocalMediaSourceHandler.h | 102 - .../include/LocalMediaSourceHandlerManager.h | 106 - .../alexa/include/LocationProviderHandler.h | 107 - .../alexa/include/NavigationHandler.h | 86 - .../include/PhoneCallControllerHandler.h | 137 - .../alexa/include/PlaybackControllerHandler.h | 85 - .../alexa/include/SpeechRecognizerHandler.h | 69 - .../alexa/include/SpeechSynthesizerHandler.h | 48 - .../alexa/include/TemplateRuntimeHandler.h | 53 - .../aac-platform/alexa/src/AlertsHandler.cpp | 64 - .../alexa/src/AlexaClientHandler.cpp | 201 - .../alexa/src/AudioPlayerHandler.cpp | 72 - .../alexa/src/AuthProviderHandler.cpp | 97 - .../alexa/src/LocalMediaSourceHandler.cpp | 742 - .../src/LocalMediaSourceHandlerManager.cpp | 196 - .../alexa/src/LocationProviderHandler.cpp | 176 - .../alexa/src/NavigationHandler.cpp | 134 - .../alexa/src/PhoneCallControllerHandler.cpp | 339 - .../alexa/src/PlaybackControllerHandler.cpp | 128 - .../alexa/src/SpeechRecognizerHandler.cpp | 68 - .../alexa/src/TemplateRuntimeHandler.cpp | 83 - .../aac-platform/cbl/include/CBLHandler.h | 80 - .../aasb/aac-platform/cbl/src/CBLHandler.cpp | 217 - .../aac-platform/core/include/LoggerHandler.h | 47 - .../core/include/NetworkInfoProviderHandler.h | 54 - .../aac-platform/core/src/LoggerHandler.cpp | 62 - .../core/src/NetworkInfoProviderHandler.cpp | 50 - .../gloria/include/CardRendererHandler.h | 52 - .../gloria/include/ListRendererHandler.h | 78 - .../gloria/src/CardRendererHandler.cpp | 76 - .../gloria/src/ListRendererHandler.cpp | 155 - .../car-control/include/CarControlHandler.h | 107 - .../car-control/src/CarControlHandler.cpp | 450 - .../aasb/bridge/include/AASBControllerImpl.h | 273 - .../include/PlatformSpecificLoggingMacros.h | 49 - .../aasb/bridge/include/ResponseDispatcher.h | 62 - .../aasb/bridge/include/SyncOverAsync.h | 60 - .../bridge/include/nlohmann/.clang-format | 2 - .../aasb/bridge/include/nlohmann/json.hpp | 20842 ---------------- .../aasb/bridge/public/include/aasb/Consts.h | 332 - .../include/aasb/interfaces/IAASBController.h | 133 - .../IAlexaCapabilityDirectiveListener.h | 47 - .../aasb/interfaces/IConfigurationProvider.h | 620 - .../aasb/bridge/src/AASBConsts.cpp | 315 - .../aasb/bridge/src/AASBControllerFactory.cpp | 29 - .../aasb/bridge/src/AASBControllerImpl.cpp | 1021 - .../aasb/bridge/src/ResponseDispatcher.cpp | 40 - .../aasb/bridge/src/SyncOverAsync.cpp | 69 - .../bridge/src/test/AASBControllerTest.cpp | 191 - .../aasb/bridge/src/test/MockEngine.h | 50 - .../aac-services/aasb/test/TestMain.cpp | 20 - .../plugins/aac-services/cmake/gtest.cmake | 47 - .../src/plugins/aac-services/tools/pre-commit | 140 - .../AlexaCapabilityDirectiveRouterImpl.cpp | 403 - .../AlexaCapabilityDirectiveRouterImpl.h | 220 - .../config/AASBConfigProviderImpl.cpp | 725 - .../config/AASBConfigProviderImpl.h | 162 - .../src/plugins/afb/AFBApiImpl.cpp | 116 - .../src/plugins/afb/AFBApiImpl.h | 64 - .../src/plugins/afb/AFBRequestImpl.cpp | 33 - .../src/plugins/afb/AFBRequestImpl.h | 49 - .../src/plugins/afb/include/AFBEventImpl.h | 77 - .../src/plugins/afb/src/AFBEventImpl.cpp | 86 - .../src/plugins/agreement.sh | 43 - .../src/plugins/audio/Audio.cpp | 51 - .../src/plugins/audio/Audio.h | 54 - .../src/plugins/cmake/gtest.cmake | 58 - .../src/plugins/data/CMakeLists.txt | 12 - .../config/AlexaAutoCoreEngineConfig.json | 64 - .../car-control/CarControlDispatcher.cpp | 153 - .../car-control/CarControlDispatcher.h | 93 - .../LocalMediaSourceDispatcher.cpp | 143 - .../LocalMediaSourceDispatcher.h | 106 - .../LocationProviderDispatcher.cpp | 77 - .../LocationProviderDispatcher.h | 77 - .../navigation/NavigationDispatcher.cpp | 96 - .../navigation/NavigationDispatcher.h | 79 - .../phonecall/PhoneCallDispatcher.cpp | 167 - .../phonecall/PhoneCallDispatcher.h | 121 - .../playback/PlaybackDispatcher.cpp | 95 - .../dispatchers/playback/PlaybackDispatcher.h | 94 - .../src/plugins/interfaces/afb/IAFBApi.h | 113 - .../capability/ICapabilityMessageDispatcher.h | 42 - .../interfaces/utilities/logging/ILogger.h | 41 - .../src/plugins/utilities/logging/Logger.cpp | 56 - .../src/plugins/utilities/logging/Logger.h | 51 - .../alexa-voiceagent-service/tools/pre-commit | 140 - .../alexa-auto-client-service/README.md | 433 + .../android-service/.gitignore | 9 + .../android-service/README.md | 362 + .../android-service/build.gradle | 29 + .../android-service/gradle.properties | 14 + .../modules/aacs-extra/.gitignore | 1 + .../modules/aacs-extra/build.gradle | 32 + .../modules/aacs-extra/consumer-rules.pro | 0 .../modules/aacs-extra/proguard-rules.pro | 21 + .../aacs-extra/src/main/AndroidManifest.xml | 5 + .../aacs_extra/AACSContext.java | 13 + .../AACSModuleFactoryInterface.java | 11 + .../android-service/service/.gitignore | 56 + .../android-service/service/build.gradle | 101 + .../assets/file-util-res/aacs_config.json | 226 + .../assets/file-util-res/auto_sdk_config.json | 45 + .../TestAlexaAutoClientService.java | 151 + .../instrumentedtest/TestFileUtil.java | 353 + .../instrumentedtest/TestUtil.java | 76 + .../service/src/main/AndroidManifest.xml | 44 + .../aidl/com/amazon/alexalve/ILVCClient.aidl | 107 + .../aidl/com/amazon/alexalve/ILVCService.aidl | 64 + .../service/src/main/assets/certs/09789157.0 | 24 + .../service/src/main/assets/certs/3513523f.0 | 22 + .../service/src/main/assets/certs/6d41d539.0 | 31 + .../service/src/main/assets/certs/85cf5865.0 | 27 + .../service/src/main/assets/certs/8cb5ee0f.0 | 12 + .../service/src/main/assets/certs/b204d74a.0 | 28 + .../service/src/main/assets/certs/ce5e74ef.0 | 20 + .../service/src/main/assets/certs/de6d66f3.0 | 13 + .../service/src/main/assets/certs/f387163d.0 | 24 + .../alexaautoclientservice/AASBHandler.java | 219 + .../AlexaAutoClientService.java | 674 + .../ComponentRegistry.java | 239 + .../ConfigMessageReceivedCallback.java | 54 + .../LVCInteractionProvider.java | 173 + .../constants/AudioSourceConstants.java | 9 + .../constants/LVCServiceConstants.java | 25 + .../mediaPlayer/AACSMediaPlayer.java | 49 + .../mediaPlayer/AudioFocusAttributes.java | 68 + .../mediaPlayer/EventReceiver.java | 8 + .../mediaPlayer/exo/ExoPlayerHandler.java | 508 + .../mediaPlayer/exo/MediaSourceFactory.java | 188 + .../mediaPlayer/exo/PlaylistParser.java | 109 + .../raw/RawAudioOutputHandler.java | 272 + .../AlexaClientMessageHandler.java | 68 + .../alexaClient/AuthStateObserver.java | 5 + .../audioInput/AudioInputMessageHandler.java | 401 + .../AudioOutputMessageHandler.java | 258 + .../externalMediaPlayer/MACCPlayer.java | 385 + .../LocationProviderHandler.java | 192 + .../NetworkInfoProviderHandler.java | 106 + .../receiver/LVCReceiver.java | 61 + .../receiver/StartOnBootReceiver.java | 48 + .../alexaautoclientservice/util/AASBUtil.java | 85 + .../alexaautoclientservice/util/FileUtil.java | 625 + .../util/MediaPlayerUtil.java | 53 + .../res/drawable/alexa_notification_icon.png | Bin 0 -> 3635 bytes .../service/src/main/res/values/strings.xml | 5 + .../unittest/TestAASBHandler.java | 39 + .../android-service/settings.gradle | 1 + .../assets/AACSArchDetailed.png | Bin 0 -> 128039 bytes .../assets/AACSInit.puml | 44 + .../assets/AACSInitFlow.png | Bin 0 -> 85590 bytes .../assets/AACSWakeword.png | Bin 0 -> 226421 bytes .../assets/AACSWakeword.puml | 28 + .../assets/AACS_CBLLogin.png | Bin 0 -> 40862 bytes .../assets/AACS_CBLLogin.puml | 26 + .../assets/config.json | 233 + .../commonutils/.gitignore | 18 + .../commonutils/README.md | 14 + .../commonutils/aacscommonutils/.gitignore | 1 + .../commonutils/aacscommonutils/build.gradle | 45 + .../aacscommonutils/consumer-rules.pro | 0 .../aacscommonutils/proguard-rules.pro | 21 + .../src/main/AndroidManifest.xml | 2 + .../alexa/auto/aacs/common/AACSMessage.java | 32 + .../auto/aacs/common/AACSMessageBuilder.java | 190 + .../auto/aacs/common/AACSMessageSender.java | 104 + .../auto/aacs/common/AACSReplyMessage.java | 27 + .../common/DialogStateChangedMessages.java | 33 + .../aacs/common/PlaybackControlMessages.java | 85 + .../auto/aacs/common/RenderPlayerInfo.kt | 59 + .../aacs/common/SpeechRecognizerMessages.java | 78 + .../aacs/common/TemplateRuntimeMessages.java | 36 + .../aacs/common/AACSMessageBuilderTest.java | 92 + .../aacs/common/AACSMessageSenderTest.java | 146 + .../DialogStateChangedMessagesTest.java | 20 + .../common/PlaybackControlMessagesTest.java | 67 + .../common/SpeechRecognizerMessagesTest.java | 50 + .../common/TemplateRuntimeMessagesTest.java | 22 + .../aacs/common/TestResourceFileReader.java | 25 + .../aacs/TemplateRuntimePlayerRenderInfo.json | 72 + .../commonutils/build.gradle | 30 + .../commonutils/gradle.properties | 20 + .../commonutils/settings.gradle | 2 + .../constants/.gitignore | 18 + .../constants/aacsconstants/.gitignore | 1 + .../constants/aacsconstants/build.gradle | 32 + .../aacsconstants/consumer-rules.pro | 0 .../aacsconstants/proguard-rules.pro | 21 + .../ExampleInstrumentedTest.java | 27 + .../src/main/AndroidManifest.xml | 2 + .../amazon/aacsconstants/AACSConstants.java | 30 + .../amazon/aacsconstants/AASBConstants.java | 154 + .../java/com/amazon/aacsconstants/Action.java | 259 + .../amazon/aacsconstants/MediaConstants.java | 40 + .../aacsconstants/NavigationConstants.java | 105 + .../aacsconstants/PlaybackConstants.java | 38 + .../TemplateRuntimeConstants.java | 25 + .../java/com/amazon/aacsconstants/Topic.java | 47 + .../amazon/aacsconstants/ExampleUnitTest.java | 17 + .../constants/build.gradle | 27 + .../constants/gradle.properties | 20 + .../constants/settings.gradle | 2 + .../alexa-auto-client-service/ipc/.gitignore | 17 + .../alexa-auto-client-service/ipc/README.md | 213 + .../ipc/aacsipc/.gitignore | 1 + .../ipc/aacsipc/build.gradle | 44 + .../ipc/aacsipc/proguard-rules.pro | 21 + .../aacsipc/ExampleInstrumentedTest.java | 27 + .../ipc/aacsipc/src/main/AndroidManifest.xml | 4 + .../java/com/amazon/aacsipc/AACSReceiver.java | 404 + .../java/com/amazon/aacsipc/AACSSender.java | 501 + .../java/com/amazon/aacsipc/IPCConstants.java | 62 + .../java/com/amazon/aacsipc/SenderMap.java | 137 + .../com/amazon/aacsipc/TargetComponent.java | 64 + .../java/com/amazon/aacsipc/DummyService.java | 15 + .../com/amazon/aacsipc/TestAACSReceiver.java | 164 + .../com/amazon/aacsipc/TestAACSSender.java | 526 + .../java/com/amazon/aacsipc/TestUtils.java | 21 + .../ipc/build.gradle | 26 + .../ipc/gradle.properties | 21 + .../ipc/settings.gradle | 2 + .../android/modules/addressbook/build.gradle | 2 +- platforms/android/modules/alexa/README.md | 311 +- platforms/android/modules/alexa/build.gradle | 2 +- .../AACE/JNI/Alexa/AlexaConfigurationBinder.h | 4 +- .../AACE/JNI/Alexa/SpeechRecognizerBinder.h | 4 +- .../src/Alexa/AlexaConfigurationBinder.cpp | 8 +- .../cpp/src/Alexa/SpeechRecognizerBinder.cpp | 51 +- .../amazon/aace/alexa/AlexaProperties.java | 19 - .../aace/alexa/ExternalMediaAdapter.java | 32 +- .../amazon/aace/alexa/LocalMediaSource.java | 17 +- .../amazon/aace/alexa/SpeechRecognizer.java | 49 +- .../amazon/aace/alexa/TemplateRuntime.java | 38 +- platforms/android/modules/apl/build.gradle | 2 +- .../android/modules/car-control/build.gradle | 2 +- .../CarControlConfigurationBinder.cpp | 17 - .../aace/carControl/CarControlAssets.java | 4 - .../carControl/CarControlConfiguration.java | 56 - platforms/android/modules/cbl/build.gradle | 2 +- .../modules/contactuploader/CMakeLists.txt | 53 - .../android/modules/contactuploader/README.md | 58 - .../assets/meta-aac/aace-contactuploader.json | 5 - .../ContactUploader/ContactUploaderBinder.h | 90 - .../ContactUploader/ContactUploaderBinder.cpp | 155 - .../aace/contactuploader/ContactUploader.java | 215 - platforms/android/modules/core/README.md | 6 +- platforms/android/modules/core/build.gradle | 2 +- .../core/src/main/cpp/src/EngineBinder.cpp | 30 - .../java/com/amazon/aace/core/Engine.java | 38 - .../aace/core/config/StreamConfiguration.java | 2 +- .../android/modules/maccandroid/build.gradle | 2 +- .../amazon/maccandroid/MACCAndroidClient.java | 8 + .../android/modules/messaging/build.gradle | 2 +- .../android/modules/navigation/CMakeLists.txt | 1 + .../android/modules/navigation/README.md | 32 +- .../android/modules/navigation/build.gradle | 2 +- .../NavigationConfigurationBinder.cpp | 43 + .../config/NavigationConfiguration.java | 51 + .../android/modules/phonecontrol/build.gradle | 2 +- samples/android/README.md | 53 +- samples/android/app/build.gradle | 5 +- .../com/amazon/sampleapp/MainActivity.java | 68 +- .../impl/Audio/AudioOutputHandler.java | 16 +- .../CarControl/CarControlDataProvider.java | 229 +- .../impl/ExternalMediaPlayer/MACCPlayer.java | 90 +- .../LocalMediaSource/AMLocalMediaSource.java | 8 +- .../BluetoothLocalMediaSource.java | 9 +- .../LocalMediaSource/CDLocalMediaSource.java | 8 +- .../LocalMediaSource/DABLocalMediaSource.java | 8 +- .../LocalMediaSource/FMLocalMediaSource.java | 8 +- .../LineInLocalMediaSource.java | 8 +- .../LocalMediaSourceHandler.java | 16 +- .../SatelliteLocalMediaSource.java | 8 +- .../SiriusXMLocalMediaSource.java | 8 +- .../LocalMediaSource/USBLocalMediaSource.java | 8 +- .../sampleapp/impl/Logger/LoggerHandler.java | 44 +- .../NetworkInfoProviderHandler.java | 9 +- .../SpeechRecognizerHandler.java | 12 +- .../android/modules/sample-apl/build.gradle | 2 +- .../android/modules/sample-core/build.gradle | 4 +- .../core/LoggerControllerInterface.java | 6 + .../sampleapp/core/SampleAppContext.java | 5 + samples/android/settings.gradle | 3 +- samples/cpp/README.md | 76 +- .../SampleApp/Alexa/SpeechRecognizerHandler.h | 10 +- .../src/Alexa/SpeechRecognizerHandler.cpp | 7 +- samples/cpp/SampleApp/src/Application.cpp | 13 +- .../src/CarControl/CarControlDataProvider.cpp | 174 +- samples/cpp/assets/MENU.md | 2 +- 1528 files changed, 281002 insertions(+), 46538 deletions(-) create mode 100644 GETSTARTED.md delete mode 100644 OVERVIEW.md create mode 100644 assets/aac-seq-ttt.plantuml create mode 100644 assets/aac-seq-wwe.plantuml delete mode 100644 builder/meta-aac-builder/conf/machine/aglarm64.conf delete mode 100644 builder/meta-aac-builder/conf/machine/include/agl.inc create mode 100755 builder/scripts/run-aacs-android.sh delete mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone.html delete mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader-members.html delete mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html rename docs/android/{classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone-members.html => classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration-members.html} (72%) create mode 100644 docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration.html delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status-members.html delete mode 100644 docs/android/enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html delete mode 100644 docs/android/search/all_15.html delete mode 100644 docs/android/search/all_15.js delete mode 100644 docs/android/search/classes_d.html delete mode 100644 docs/android/search/classes_d.js delete mode 100644 docs/cpp/_contact_uploader_8h_source.html delete mode 100644 docs/cpp/_contact_uploader_engine_interface_8h_source.html create mode 100644 docs/cpp/_navigation_configuration_8h_source.html delete mode 100644 docs/cpp/classaace_1_1contact_uploader_1_1_contact_uploader-members.html delete mode 100644 docs/cpp/classaace_1_1contact_uploader_1_1_contact_uploader.html rename docs/cpp/{namespaceaace_1_1car_control_1_1config_1_1zone.html => classaace_1_1navigation_1_1config_1_1_navigation_configuration-members.html} (70%) create mode 100644 docs/cpp/classaace_1_1navigation_1_1config_1_1_navigation_configuration.html create mode 100644 extensions/aasb/.gitignore create mode 100644 extensions/aasb/CMakeLists.txt create mode 100644 extensions/aasb/README.md create mode 100644 extensions/aasb/assets/AASBNewArch.png create mode 100644 extensions/aasb/assets/AASBOldArch.png create mode 100644 extensions/aasb/docs/AASB/StartServiceMessage.html create mode 100644 extensions/aasb/docs/AASB/StopServiceMessage.html create mode 100644 extensions/aasb/docs/APL/ClearAllExecuteCommandsMessage.html create mode 100644 extensions/aasb/docs/APL/ClearCardMessage.html create mode 100644 extensions/aasb/docs/APL/ClearDocumentMessage.html create mode 100644 extensions/aasb/docs/APL/ExecuteCommandsMessage.html create mode 100644 extensions/aasb/docs/APL/ExecuteCommandsResultMessage.html create mode 100644 extensions/aasb/docs/APL/GetVisualContextMessage.html create mode 100644 extensions/aasb/docs/APL/GetVisualContextMessageReply.html create mode 100644 extensions/aasb/docs/APL/InterruptCommandSequenceMessage.html create mode 100644 extensions/aasb/docs/APL/ProcessActivityEventMessage.html create mode 100644 extensions/aasb/docs/APL/RenderDocumentMessage.html create mode 100644 extensions/aasb/docs/APL/RenderDocumentResultMessage.html create mode 100644 extensions/aasb/docs/APL/SendUserEventMessage.html create mode 100644 extensions/aasb/docs/APL/SetAPLMaxVersionMessage.html create mode 100644 extensions/aasb/docs/APL/SetDocumentIdleTimeoutMessage.html create mode 100644 extensions/aasb/docs/AddressBook/AddAddressBookMessage.html create mode 100644 extensions/aasb/docs/AddressBook/AddAddressBookMessageReply.html create mode 100644 extensions/aasb/docs/AddressBook/RemoveAddressBookMessage.html create mode 100644 extensions/aasb/docs/AddressBook/RemoveAddressBookMessageReply.html create mode 100644 extensions/aasb/docs/Alerts/AlertCreatedMessage.html create mode 100644 extensions/aasb/docs/Alerts/AlertDeletedMessage.html create mode 100644 extensions/aasb/docs/Alerts/AlertStateChangedMessage.html create mode 100644 extensions/aasb/docs/Alerts/LocalStopMessage.html create mode 100644 extensions/aasb/docs/Alerts/RemoveAllAlertsMessage.html create mode 100644 extensions/aasb/docs/AlexaClient/AuthStateChangedMessage.html create mode 100644 extensions/aasb/docs/AlexaClient/ConnectionStatusChangedMessage.html create mode 100644 extensions/aasb/docs/AlexaClient/DialogStateChangedMessage.html create mode 100644 extensions/aasb/docs/AlexaClient/StopForegroundActivityMessage.html create mode 100644 extensions/aasb/docs/AlexaSpeaker/LocalAdjustVolumeMessage.html create mode 100644 extensions/aasb/docs/AlexaSpeaker/LocalSetMuteMessage.html create mode 100644 extensions/aasb/docs/AlexaSpeaker/LocalSetVolumeMessage.html create mode 100644 extensions/aasb/docs/AlexaSpeaker/SpeakerSettingsChangedMessage.html create mode 100644 extensions/aasb/docs/AudioInput/StartAudioInputMessage.html create mode 100644 extensions/aasb/docs/AudioInput/StopAudioInputMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/GetDurationMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/GetDurationMessageReply.html create mode 100644 extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessageReply.html create mode 100644 extensions/aasb/docs/AudioOutput/GetPositionMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/GetPositionMessageReply.html create mode 100644 extensions/aasb/docs/AudioOutput/MediaErrorMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/MediaStateChangedMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/MutedStateChangedMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/PauseMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/PlayMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/PrepareStreamMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/PrepareURLMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/ResumeMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/SetPositionMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/StopMessage.html create mode 100644 extensions/aasb/docs/AudioOutput/VolumeChangedMessage.html create mode 100644 extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessage.html create mode 100644 extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessageReply.html create mode 100644 extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessage.html create mode 100644 extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessageReply.html create mode 100644 extensions/aasb/docs/AudioPlayer/PlayerActivityChangedMessage.html create mode 100644 extensions/aasb/docs/AuthProvider/AuthStateChangedMessage.html create mode 100644 extensions/aasb/docs/AuthProvider/GetAuthStateMessage.html create mode 100644 extensions/aasb/docs/AuthProvider/GetAuthStateMessageReply.html create mode 100644 extensions/aasb/docs/AuthProvider/GetAuthTokenMessage.html create mode 100644 extensions/aasb/docs/AuthProvider/GetAuthTokenMessageReply.html create mode 100644 extensions/aasb/docs/CBL/CBLStateChangedMessage.html create mode 100644 extensions/aasb/docs/CBL/CancelMessage.html create mode 100644 extensions/aasb/docs/CBL/ClearRefreshTokenMessage.html create mode 100644 extensions/aasb/docs/CBL/GetRefreshTokenMessage.html create mode 100644 extensions/aasb/docs/CBL/GetRefreshTokenMessageReply.html create mode 100644 extensions/aasb/docs/CBL/ResetMessage.html create mode 100644 extensions/aasb/docs/CBL/SetRefreshTokenMessage.html create mode 100644 extensions/aasb/docs/CBL/SetUserProfileMessage.html create mode 100644 extensions/aasb/docs/CBL/StartMessage.html create mode 100644 extensions/aasb/docs/CarControl/AdjustModeControllerValueMessage.html create mode 100644 extensions/aasb/docs/CarControl/AdjustModeControllerValueMessageReply.html create mode 100644 extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessage.html create mode 100644 extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessageReply.html create mode 100644 extensions/aasb/docs/CarControl/SetModeControllerValueMessage.html create mode 100644 extensions/aasb/docs/CarControl/SetModeControllerValueMessageReply.html create mode 100644 extensions/aasb/docs/CarControl/SetPowerControllerValueMessage.html create mode 100644 extensions/aasb/docs/CarControl/SetPowerControllerValueMessageReply.html create mode 100644 extensions/aasb/docs/CarControl/SetRangeControllerValueMessage.html create mode 100644 extensions/aasb/docs/CarControl/SetRangeControllerValueMessageReply.html create mode 100644 extensions/aasb/docs/CarControl/SetToggleControllerValueMessage.html create mode 100644 extensions/aasb/docs/CarControl/SetToggleControllerValueMessageReply.html create mode 100644 extensions/aasb/docs/DoNotDisturb/DoNotDisturbChangedMessage.html create mode 100644 extensions/aasb/docs/DoNotDisturb/SetDoNotDisturbMessage.html create mode 100644 extensions/aasb/docs/EqualizerController/GetBandLevelsMessage.html create mode 100644 extensions/aasb/docs/EqualizerController/GetBandLevelsMessageReply.html create mode 100644 extensions/aasb/docs/EqualizerController/LocalAdjustBandLevelsMessage.html create mode 100644 extensions/aasb/docs/EqualizerController/LocalResetBandsMessage.html create mode 100644 extensions/aasb/docs/EqualizerController/LocalSetBandLevelsMessage.html create mode 100644 extensions/aasb/docs/EqualizerController/SetBandLevelsMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/AdjustSeekMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/AuthorizeMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/GetStateMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/LoginCompleteMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/LoginMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/LogoutCompleteMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/LogoutMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/MutedStateChangedMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/PlayControlMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/PlayMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/PlayerErrorMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/PlayerEventMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/RequestTokenMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/SeekMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/SetFocusMessage.html create mode 100644 extensions/aasb/docs/ExternalMediaAdapter/VolumeChangedMessage.html create mode 100644 extensions/aasb/docs/GlobalPreset/SetGlobalPresetMessage.html create mode 100644 extensions/aasb/docs/Introduction.html create mode 100644 extensions/aasb/docs/LocalMediaSource/AdjustSeekMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/GetSourceMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/GetStateMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/GetStateMessageReply.html create mode 100644 extensions/aasb/docs/LocalMediaSource/MutedStateChangedMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/PlayControlMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/PlayMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/PlayerErrorMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/PlayerEventMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/SeekMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/SetFocusMessage.html create mode 100644 extensions/aasb/docs/LocalMediaSource/VolumeChangedMessage.html create mode 100644 extensions/aasb/docs/LocationProvider/GetCountryMessage.html create mode 100644 extensions/aasb/docs/LocationProvider/GetCountryMessageReply.html create mode 100644 extensions/aasb/docs/LocationProvider/GetLocationMessage.html create mode 100644 extensions/aasb/docs/LocationProvider/GetLocationMessageReply.html create mode 100644 extensions/aasb/docs/Messaging/ConversationsReportMessage.html create mode 100644 extensions/aasb/docs/Messaging/SendMessageFailedMessage.html create mode 100644 extensions/aasb/docs/Messaging/SendMessageMessage.html create mode 100644 extensions/aasb/docs/Messaging/SendMessageSucceededMessage.html create mode 100644 extensions/aasb/docs/Messaging/UpdateMessagesStatusFailedMessage.html create mode 100644 extensions/aasb/docs/Messaging/UpdateMessagesStatusMessage.html create mode 100644 extensions/aasb/docs/Messaging/UpdateMessagesStatusSucceededMessage.html create mode 100644 extensions/aasb/docs/Messaging/UpdateMessagingEndpointStateMessage.html create mode 100644 extensions/aasb/docs/Messaging/UploadConversationsMessage.html create mode 100644 extensions/aasb/docs/Navigation/AnnounceManeuverMessage.html create mode 100644 extensions/aasb/docs/Navigation/AnnounceRoadRegulationMessage.html create mode 100644 extensions/aasb/docs/Navigation/CancelNavigationMessage.html create mode 100644 extensions/aasb/docs/Navigation/ControlDisplayMessage.html create mode 100644 extensions/aasb/docs/Navigation/GetNavigationStateMessage.html create mode 100644 extensions/aasb/docs/Navigation/GetNavigationStateMessageReply.html create mode 100644 extensions/aasb/docs/Navigation/NavigateToPreviousWaypointMessage.html create mode 100644 extensions/aasb/docs/Navigation/NavigationErrorMessage.html create mode 100644 extensions/aasb/docs/Navigation/NavigationEventMessage.html create mode 100644 extensions/aasb/docs/Navigation/ShowAlternativeRoutesMessage.html create mode 100644 extensions/aasb/docs/Navigation/ShowAlternativeRoutesSucceededMessage.html create mode 100644 extensions/aasb/docs/Navigation/ShowPreviousWaypointsMessage.html create mode 100644 extensions/aasb/docs/Navigation/StartNavigationMessage.html create mode 100644 extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessage.html create mode 100644 extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessageReply.html create mode 100644 extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessage.html create mode 100644 extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.html create mode 100644 extensions/aasb/docs/NetworkInfoProvider/NetworkStatusChangedMessage.html create mode 100644 extensions/aasb/docs/Notifications/OnNotificationReceivedMessage.html create mode 100644 extensions/aasb/docs/Notifications/SetIndicatorMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/AnswerMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/CallFailedMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/CallStateChangedMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/CallerIdReceivedMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/ConnectionStateChangedMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/CreateCallIdMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/CreateCallIdMessageReply.html create mode 100644 extensions/aasb/docs/PhoneCallController/DeviceConfigurationUpdatedMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/DialMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/RedialMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/SendDTMFFailedMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/SendDTMFMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/SendDTMFSucceededMessage.html create mode 100644 extensions/aasb/docs/PhoneCallController/StopMessage.html create mode 100644 extensions/aasb/docs/PlaybackController/ButtonPressedMessage.html create mode 100644 extensions/aasb/docs/PlaybackController/TogglePressedMessage.html create mode 100644 extensions/aasb/docs/PropertyManager/GetPropertyMessage.html create mode 100644 extensions/aasb/docs/PropertyManager/GetPropertyMessageReply.html create mode 100644 extensions/aasb/docs/PropertyManager/PropertyChangedMessage.html create mode 100644 extensions/aasb/docs/PropertyManager/PropertyStateChangedMessage.html create mode 100644 extensions/aasb/docs/PropertyManager/SetPropertyMessage.html create mode 100644 extensions/aasb/docs/Publish Message General Form.html create mode 100644 extensions/aasb/docs/Reply Message General Form.html create mode 100644 extensions/aasb/docs/SpeechRecognizer/EndOfSpeechDetectedMessage.html create mode 100644 extensions/aasb/docs/SpeechRecognizer/StartCaptureMessage.html create mode 100644 extensions/aasb/docs/SpeechRecognizer/StopCaptureMessage.html create mode 100644 extensions/aasb/docs/SpeechRecognizer/WakewordDetectedMessage.html create mode 100644 extensions/aasb/docs/TemplateRuntime/ClearPlayerInfoMessage.html create mode 100644 extensions/aasb/docs/TemplateRuntime/ClearTemplateMessage.html create mode 100644 extensions/aasb/docs/TemplateRuntime/DisplayCardClearedMessage.html create mode 100644 extensions/aasb/docs/TemplateRuntime/RenderPlayerInfoMessage.html create mode 100644 extensions/aasb/docs/TemplateRuntime/RenderTemplateMessage.html create mode 100644 extensions/aasb/meta-aac-aasb/conf/layer.conf rename {modules/contact-uploader => extensions/aasb/modules/aasb-address-book}/CMakeLists.txt (60%) create mode 100644 extensions/aasb/modules/aasb-address-book/aac-aasb-address-book.bb create mode 100644 extensions/aasb/modules/aasb-address-book/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Engine/AddressBook/AASBAddressBook.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Engine/AddressBook/AASBAddressBookEngineService.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessage.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessageReply.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBook.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBookType.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/ContactName.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/NavigationName.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PhoneData.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PostalAddress.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessage.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessageReply.h create mode 100644 extensions/aasb/modules/aasb-address-book/engine/src/AASBAddressBook.cpp create mode 100644 extensions/aasb/modules/aasb-address-book/engine/src/AASBAddressBookEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-alexa/aac-aasb-alexa.bb create mode 100644 extensions/aasb/modules/aasb-alexa/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlerts.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaClient.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaEngineService.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaSpeaker.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAudioPlayer.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAuthProvider.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBDoNotDisturb.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBEqualizerController.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBExternalMediaAdapter.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBGlobalPreset.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBLocalMediaSource.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBNotifications.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBPlaybackController.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBSpeechRecognizer.h rename platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/SpeechSynthesizerHandler.cpp => extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBSpeechSynthesizer.h (51%) create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBTemplateRuntime.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertCreatedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertDeletedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/LocalStopMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/RemoveAllAlertsMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthError.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionChangedReason.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatus.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatusChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/StopForegroundActivityMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalAdjustVolumeMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetMuteMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetVolumeMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerSettingsChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessageReply.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessageReply.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivity.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivityChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/AuthStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessageReply.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessageReply.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/DoNotDisturbChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/SetDoNotDisturbMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBand.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessageReply.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalAdjustBandLevelsMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalResetBandsMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalSetBandLevelsMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/SetBandLevelsMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AdjustSeekMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizeMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizedPlayerInfo.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/DiscoveredPlayerInfo.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ExternalMediaAdapterState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Favorites.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/GetStateMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginCompleteMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutCompleteMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MediaType.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Navigation.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlType.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlaybackStateExternal.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerErrorMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerEventMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RequestTokenMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SeekMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SessionStateExternal.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SetFocusMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SupportedPlaybackOperation.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationData.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationMethod.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/VolumeChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/GlobalPreset/SetGlobalPresetMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/AdjustSeekMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/ContentSelector.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetSourceMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessageReply.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/LocalMediaSourceState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/MutedStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayControlMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlaybackState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerErrorMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerEventMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SeekMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SessionState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SetFocusMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/Source.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/VolumeChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/IndicatorState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/OnNotificationReceivedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/SetIndicatorMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/ButtonPressedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackButton.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackToggle.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/TogglePressedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/EndOfSpeechDetectedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/Initiator.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StartCaptureMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StopCaptureMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/WakewordDetectedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearPlayerInfoMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearTemplateMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/DisplayCardClearedMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/FocusState.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderPlayerInfoMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderTemplateMessage.h create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBAlerts.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaClient.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaSpeaker.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBAudioPlayer.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBAuthProvider.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBDoNotDisturb.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBEqualizerController.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBExternalMediaAdapter.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBGlobalPreset.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBLocalMediaSource.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBNotifications.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBPlaybackController.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBSpeechRecognizer.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBSpeechSynthesizer.cpp create mode 100644 extensions/aasb/modules/aasb-alexa/engine/src/AASBTemplateRuntime.cpp create mode 100644 extensions/aasb/modules/aasb-apl/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-apl/aac-aasb-apl.bb create mode 100644 extensions/aasb/modules/aasb-apl/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Engine/APL/AASBAPL.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Engine/APL/AASBAPLEngineService.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ActivityEvent.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearAllExecuteCommandsMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearCardMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearDocumentMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsResultMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/GetVisualContextMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/GetVisualContextMessageReply.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/InterruptCommandSequenceMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ProcessActivityEventMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentResultMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendUserEventMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetAPLMaxVersionMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetDocumentIdleTimeoutMessage.h create mode 100644 extensions/aasb/modules/aasb-apl/engine/src/AASBAPL.cpp create mode 100644 extensions/aasb/modules/aasb-apl/engine/src/AASBAPLEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-car-control/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-car-control/aac-aasb-car-control.bb create mode 100644 extensions/aasb/modules/aasb-car-control/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Engine/CarControl/AASBCarControl.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Engine/CarControl/AASBCarControlEngineService.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustControllerValueMessageReply.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustModeControllerValueMessage.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustRangeControllerValueMessage.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetControllerValueMessageReply.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetModeControllerValueMessage.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetPowerControllerValueMessage.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetRangeControllerValueMessage.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetToggleControllerValueMessage.h create mode 100644 extensions/aasb/modules/aasb-car-control/engine/src/AASBCarControl.cpp create mode 100644 extensions/aasb/modules/aasb-car-control/engine/src/AASBCarControlEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-cbl/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-cbl/aac-aasb-cbl.bb create mode 100644 extensions/aasb/modules/aasb-cbl/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBL.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBLEngineService.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLState.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedReason.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CancelMessage.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ClearRefreshTokenMessage.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessage.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessageReply.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ResetMessage.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetRefreshTokenMessage.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetUserProfileMessage.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/StartMessage.h create mode 100644 extensions/aasb/modules/aasb-cbl/engine/src/AASBCBL.cpp create mode 100644 extensions/aasb/modules/aasb-cbl/engine/src/AASBCBLEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-core/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-core/aac-aasb-core.bb create mode 100644 extensions/aasb/modules/aasb-core/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioEngineService.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInput.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInputProvider.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutput.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutputProvider.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Location/AASBLocationEngineService.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Location/AASBLocationProvider.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Network/AASBNetworkEngineService.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Network/AASBNetworkInfoProvider.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/PropertyManager/AASBPropertyManager.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/PropertyManager/AASBPropertyManagerEngineService.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/AudioInputAudioType.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StartAudioInputMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StopAudioInputMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputAudioType.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputSourceType.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamEncoding.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamProperty.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessageReply.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessageReply.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessageReply.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaError.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaErrorMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaState.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedState.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PauseMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PlayMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareStreamMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareURLMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/ResumeMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/SetPositionMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/StopMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/VolumeChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessageReply.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessageReply.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/Location.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessageReply.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatus.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatusChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessageReply.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyState.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/SetPropertyMessage.h create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioInput.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioInputProvider.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioOutput.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioOutputProvider.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Location/AASBLocationEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Location/AASBLocationProvider.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Network/AASBNetworkEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/Network/AASBNetworkInfoProvider.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/PropertyManager/AASBPropertyManager.cpp create mode 100644 extensions/aasb/modules/aasb-core/engine/src/PropertyManager/AASBPropertyManagerEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-messaging/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-messaging/aac-aasb-messaging.bb create mode 100644 extensions/aasb/modules/aasb-messaging/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Engine/Messaging/AASBMessaging.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Engine/Messaging/AASBMessagingEngineService.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConnectionState.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConversationsReportMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ErrorCode.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/PermissionState.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageFailedMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageSucceededMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusFailedMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusSucceededMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagingEndpointStateMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UploadConversationsMessage.h create mode 100644 extensions/aasb/modules/aasb-messaging/engine/src/AASBMessaging.cpp create mode 100644 extensions/aasb/modules/aasb-messaging/engine/src/AASBMessagingEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-navigation/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-navigation/aac-aasb-navigation.bb create mode 100644 extensions/aasb/modules/aasb-navigation/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Engine/Navigation/AASBNavigation.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Engine/Navigation/AASBNavigationEngineService.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AlternateRouteType.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceManeuverMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceRoadRegulationMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/CancelNavigationMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplay.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplayMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorCode.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorType.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/EventName.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessageReply.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigateToPreviousWaypointMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationErrorMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationEventMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/RoadRegulation.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesSucceededMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowPreviousWaypointsMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/StartNavigationMessage.h create mode 100644 extensions/aasb/modules/aasb-navigation/engine/src/AASBNavigation.cpp create mode 100644 extensions/aasb/modules/aasb-navigation/engine/src/AASBNavigationEngineService.cpp create mode 100644 extensions/aasb/modules/aasb-phone-control/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-phone-control/aac-aasb-phone-control.bb create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallController.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallControllerEngineService.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/AnswerMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallError.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallFailedMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallState.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallerIdReceivedMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallingDeviceConfigurationProperty.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionState.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionStateChangedMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessageReply.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DTMFError.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DeviceConfigurationUpdatedMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DialMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/RedialMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFFailedMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFSucceededMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/StopMessage.h create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/src/AASBPhoneCallController.cpp create mode 100644 extensions/aasb/modules/aasb-phone-control/engine/src/AASBPhoneCallControllerEngineService.cpp create mode 100644 extensions/aasb/modules/aasb/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb/aac-module-aasb.bb create mode 100644 extensions/aasb/modules/aasb/engine/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineImpl.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineService.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBHandlerEngineService.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBServiceInterface.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/Message.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBroker.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBrokerInterface.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/PublishMessage.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManager.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManagerInterface.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StartServiceMessage.h create mode 100644 extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StopServiceMessage.h create mode 100644 extensions/aasb/modules/aasb/engine/src/AASBEngineImpl.cpp create mode 100644 extensions/aasb/modules/aasb/engine/src/AASBEngineService.cpp create mode 100644 extensions/aasb/modules/aasb/engine/src/AASBHandlerEngineService.cpp rename platforms/agl/alexa-voiceagent-service/src/alexa-voiceagent-binding.h => extensions/aasb/modules/aasb/engine/src/AASBServiceInterface.cpp (65%) create mode 100644 extensions/aasb/modules/aasb/engine/src/Message.cpp create mode 100644 extensions/aasb/modules/aasb/engine/src/MessageBroker.cpp create mode 100644 extensions/aasb/modules/aasb/engine/src/PublishMessage.cpp create mode 100644 extensions/aasb/modules/aasb/engine/src/StreamManager.cpp create mode 100644 extensions/aasb/modules/aasb/platform/CMakeLists.txt create mode 100644 extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASB.h rename platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/public/include/aasb/AASBControllerFactory.h => extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBEngineInterfaces.h (56%) create mode 100644 extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBStream.h create mode 100644 extensions/aasb/modules/aasb/platform/src/AASB.cpp rename platforms/agl/alexa-voiceagent-service/src/plugins/TestMain.cpp => extensions/aasb/modules/aasb/platform/src/AASBStream.cpp (71%) create mode 100644 extensions/aasb/platforms/android/.gitignore create mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/build.gradle rename {platforms/android/modules/contactuploader => extensions/aasb/platforms/android/modules/aasb-address-book}/src/main/AndroidManifest.xml (75%) create mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/src/main/assets/meta-aac/aasb-address-book.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-address-book/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/build.gradle create mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/src/main/assets/meta-aac/aasb-alexa.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-alexa/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/build.gradle create mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/src/main/assets/meta-aac/aasb-apl.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-apl/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/build.gradle create mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/src/main/assets/meta-aac/aasb-car-control.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-car-control/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/build.gradle create mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/src/main/assets/meta-aac/aasb-cbl.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-cbl/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb-core/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-core/build.gradle create mode 100644 extensions/aasb/platforms/android/modules/aasb-core/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb-core/src/main/assets/meta-aac/aasb-core.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-core/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/build.gradle create mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/src/main/assets/meta-aac/aasb-messaging.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-messaging/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/build.gradle create mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/src/main/assets/meta-aac/aasb-navigation.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-navigation/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/CMakeLists.txt create mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/build.gradle create mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/assets/meta-aac/aasb-phone-control.json create mode 100644 extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/cpp/dummy.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb/CMakeLists.txt rename {platforms/android/modules/contactuploader => extensions/aasb/platforms/android/modules/aasb}/build.gradle (97%) create mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/AndroidManifest.xml create mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/assets/meta-aac/aace-aasb.json create mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/cpp/include/AACE/JNI/AASB/AASBBinder.h create mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/cpp/include/AACE/JNI/AASB/AASBStreamBinder.h create mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/cpp/src/AASBBinder.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/cpp/src/AASBStreamBinder.cpp create mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/java/com/amazon/aace/aasb/AASB.java create mode 100644 extensions/aasb/platforms/android/modules/aasb/src/main/java/com/amazon/aace/aasb/AASBStream.java create mode 100644 extensions/loopback-detector/platforms/android/.gitignore create mode 100644 extensions/loopback-detector/platforms/android/modules/loopback-detector/CMakeLists.txt create mode 100644 extensions/loopback-detector/platforms/android/modules/loopback-detector/build.gradle create mode 100644 extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/AndroidManifest.xml create mode 100644 extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/assets/meta-aac/aace-loopback-detector.json create mode 100644 extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/cpp/LoopbackDetectorConfigurationBinder.cpp create mode 100644 modules/alexa/engine/include/AACE/Engine/Alexa/AudioDuckingConfig.h delete mode 100644 modules/contact-uploader/README.md delete mode 100644 modules/contact-uploader/aac-module-contact-uploader.bb delete mode 100644 modules/contact-uploader/engine/CMakeLists.txt delete mode 100644 modules/contact-uploader/engine/include/AACE/Engine/ContactUploader/ContactUploaderEngineImpl.h delete mode 100644 modules/contact-uploader/engine/include/AACE/Engine/ContactUploader/ContactUploaderEngineService.h delete mode 100644 modules/contact-uploader/engine/include/AACE/Engine/ContactUploader/ContactUploaderRESTAgent.h delete mode 100644 modules/contact-uploader/engine/src/ContactUploader/ContactUploaderEngineImpl.cpp delete mode 100644 modules/contact-uploader/engine/src/ContactUploader/ContactUploaderEngineService.cpp delete mode 100644 modules/contact-uploader/engine/src/ContactUploader/ContactUploaderRESTAgent.cpp delete mode 100644 modules/contact-uploader/engine/test/CMakeLists.txt delete mode 100644 modules/contact-uploader/engine/test/ContactUploaderEngineImplTest.cpp delete mode 100644 modules/contact-uploader/platform/CMakeLists.txt delete mode 100644 modules/contact-uploader/platform/include/AACE/ContactUploader/ContactUploader.h delete mode 100644 modules/contact-uploader/platform/include/AACE/ContactUploader/ContactUploaderEngineInterface.h delete mode 100644 modules/contact-uploader/platform/src/ContactUploader/ContactUploader.cpp create mode 100644 modules/navigation/engine/src/NavigationConfigurationImpl.cpp create mode 100644 modules/navigation/platform/include/AACE/Navigation/NavigationConfiguration.h delete mode 100644 platforms/agl/alexa-voiceagent-service/.gitignore delete mode 100644 platforms/agl/alexa-voiceagent-service/0001-removed-afb-helpers-app-controller-submodules.patch delete mode 100644 platforms/agl/alexa-voiceagent-service/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/License.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/README.md delete mode 100644 platforms/agl/alexa-voiceagent-service/assets/architecture.png delete mode 100644 platforms/agl/alexa-voiceagent-service/conf.d/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/conf.d/cmake/00-debian-osconfig.cmake delete mode 100644 platforms/agl/alexa-voiceagent-service/conf.d/cmake/00-default-osconfig.cmake delete mode 100644 platforms/agl/alexa-voiceagent-service/conf.d/cmake/config.cmake delete mode 100644 platforms/agl/alexa-voiceagent-service/conf.d/project/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/conf.d/project/etc/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/conf.d/project/etc/alexa-alexa-voiceagent-api.json delete mode 100644 platforms/agl/alexa-voiceagent-service/conf.d/wgt/config.xml.in delete mode 100644 platforms/agl/alexa-voiceagent-service/htdocs/AFB.js delete mode 100644 platforms/agl/alexa-voiceagent-service/htdocs/binding.css delete mode 100644 platforms/agl/alexa-voiceagent-service/htdocs/binding.js delete mode 100644 platforms/agl/alexa-voiceagent-service/htdocs/index.html delete mode 100644 platforms/agl/alexa-voiceagent-service/libs/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/src/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/src/alexa-voiceagent-apidef.json delete mode 100644 platforms/agl/alexa-voiceagent-service/src/alexa-voiceagent-binding.c delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/AlexaConsts.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/AlexaConsts.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/AlexaVoiceagentApi.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/AlexaVoiceagentApi.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/.clang-format delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/README.md delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/AlertsHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/AlexaClientHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/AudioPlayerHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/AuthProviderHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/LocalMediaSourceHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/LocalMediaSourceHandlerManager.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/LocationProviderHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/NavigationHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/PhoneCallControllerHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/PlaybackControllerHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/SpeechRecognizerHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/SpeechSynthesizerHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/include/TemplateRuntimeHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/AlertsHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/AlexaClientHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/AudioPlayerHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/AuthProviderHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/LocalMediaSourceHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/LocalMediaSourceHandlerManager.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/LocationProviderHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/NavigationHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/PhoneCallControllerHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/PlaybackControllerHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/SpeechRecognizerHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/TemplateRuntimeHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/cbl/include/CBLHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/cbl/src/CBLHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/core/include/LoggerHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/core/include/NetworkInfoProviderHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/core/src/LoggerHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/core/src/NetworkInfoProviderHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/gloria/include/CardRendererHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/gloria/include/ListRendererHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/gloria/src/CardRendererHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/gloria/src/ListRendererHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/local-voice-control/car-control/include/CarControlHandler.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/local-voice-control/car-control/src/CarControlHandler.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/include/AASBControllerImpl.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/include/PlatformSpecificLoggingMacros.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/include/ResponseDispatcher.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/include/SyncOverAsync.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/include/nlohmann/.clang-format delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/include/nlohmann/json.hpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/public/include/aasb/Consts.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/public/include/aasb/interfaces/IAASBController.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/public/include/aasb/interfaces/IAlexaCapabilityDirectiveListener.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/public/include/aasb/interfaces/IConfigurationProvider.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/src/AASBConsts.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/src/AASBControllerFactory.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/src/AASBControllerImpl.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/src/ResponseDispatcher.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/src/SyncOverAsync.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/src/test/AASBControllerTest.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/src/test/MockEngine.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/test/TestMain.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/cmake/gtest.cmake delete mode 100755 platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/tools/pre-commit delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aasb-client/AlexaCapabilityDirectiveRouterImpl.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aasb-client/AlexaCapabilityDirectiveRouterImpl.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aasb-client/config/AASBConfigProviderImpl.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/aasb-client/config/AASBConfigProviderImpl.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/afb/AFBApiImpl.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/afb/AFBApiImpl.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/afb/AFBRequestImpl.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/afb/AFBRequestImpl.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/afb/include/AFBEventImpl.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/afb/src/AFBEventImpl.cpp delete mode 100755 platforms/agl/alexa-voiceagent-service/src/plugins/agreement.sh delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/audio/Audio.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/audio/Audio.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/cmake/gtest.cmake delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/data/CMakeLists.txt delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/data/config/AlexaAutoCoreEngineConfig.json delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/local-voice-control/car-control/CarControlDispatcher.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/local-voice-control/car-control/CarControlDispatcher.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/localmediasource/LocalMediaSourceDispatcher.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/localmediasource/LocalMediaSourceDispatcher.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/locationprovider/LocationProviderDispatcher.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/locationprovider/LocationProviderDispatcher.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/navigation/NavigationDispatcher.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/navigation/NavigationDispatcher.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/phonecall/PhoneCallDispatcher.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/phonecall/PhoneCallDispatcher.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/playback/PlaybackDispatcher.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/dispatchers/playback/PlaybackDispatcher.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/interfaces/afb/IAFBApi.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/interfaces/capability/ICapabilityMessageDispatcher.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/interfaces/utilities/logging/ILogger.h delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/utilities/logging/Logger.cpp delete mode 100644 platforms/agl/alexa-voiceagent-service/src/plugins/utilities/logging/Logger.h delete mode 100755 platforms/agl/alexa-voiceagent-service/tools/pre-commit create mode 100644 platforms/android/alexa-auto-client-service/README.md create mode 100755 platforms/android/alexa-auto-client-service/android-service/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/android-service/README.md create mode 100755 platforms/android/alexa-auto-client-service/android-service/build.gradle create mode 100755 platforms/android/alexa-auto-client-service/android-service/gradle.properties create mode 100644 platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra/build.gradle create mode 100644 platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra/consumer-rules.pro create mode 100644 platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra/proguard-rules.pro create mode 100644 platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra/src/main/AndroidManifest.xml create mode 100644 platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra/src/main/java/com/amazon/alexaautoclientservice/aacs_extra/AACSContext.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/modules/aacs-extra/src/main/java/com/amazon/alexaautoclientservice/aacs_extra/AACSModuleFactoryInterface.java create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/build.gradle create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/androidTest/assets/file-util-res/aacs_config.json create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/androidTest/assets/file-util-res/auto_sdk_config.json create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/androidTest/java/com/amazon/alexaautoclientservice/instrumentedtest/TestAlexaAutoClientService.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/androidTest/java/com/amazon/alexaautoclientservice/instrumentedtest/TestFileUtil.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/androidTest/java/com/amazon/alexaautoclientservice/instrumentedtest/TestUtil.java create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/AndroidManifest.xml create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/aidl/com/amazon/alexalve/ILVCClient.aidl create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/aidl/com/amazon/alexalve/ILVCService.aidl create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/09789157.0 create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/3513523f.0 create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/6d41d539.0 create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/85cf5865.0 create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/8cb5ee0f.0 create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/b204d74a.0 create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/ce5e74ef.0 create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/de6d66f3.0 create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/assets/certs/f387163d.0 create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/AASBHandler.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/AlexaAutoClientService.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/ComponentRegistry.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/ConfigMessageReceivedCallback.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/LVCInteractionProvider.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/constants/AudioSourceConstants.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/constants/LVCServiceConstants.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/AACSMediaPlayer.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/AudioFocusAttributes.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/EventReceiver.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/exo/ExoPlayerHandler.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/exo/MediaSourceFactory.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/exo/PlaylistParser.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/mediaPlayer/raw/RawAudioOutputHandler.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/alexaClient/AlexaClientMessageHandler.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/alexaClient/AuthStateObserver.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/audioInput/AudioInputMessageHandler.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/audioOutput/AudioOutputMessageHandler.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/externalMediaPlayer/MACCPlayer.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/locationProvider/LocationProviderHandler.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/modules/networkInfoProvider/NetworkInfoProviderHandler.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/receiver/LVCReceiver.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/receiver/StartOnBootReceiver.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/util/AASBUtil.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/util/FileUtil.java create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/main/java/com/amazon/alexaautoclientservice/util/MediaPlayerUtil.java create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/res/drawable/alexa_notification_icon.png create mode 100755 platforms/android/alexa-auto-client-service/android-service/service/src/main/res/values/strings.xml create mode 100644 platforms/android/alexa-auto-client-service/android-service/service/src/test/java/com/amazon/alexaautoclientservice/unittest/TestAASBHandler.java create mode 100755 platforms/android/alexa-auto-client-service/android-service/settings.gradle create mode 100644 platforms/android/alexa-auto-client-service/assets/AACSArchDetailed.png create mode 100644 platforms/android/alexa-auto-client-service/assets/AACSInit.puml create mode 100644 platforms/android/alexa-auto-client-service/assets/AACSInitFlow.png create mode 100644 platforms/android/alexa-auto-client-service/assets/AACSWakeword.png create mode 100644 platforms/android/alexa-auto-client-service/assets/AACSWakeword.puml create mode 100644 platforms/android/alexa-auto-client-service/assets/AACS_CBLLogin.png create mode 100644 platforms/android/alexa-auto-client-service/assets/AACS_CBLLogin.puml create mode 100644 platforms/android/alexa-auto-client-service/assets/config.json create mode 100644 platforms/android/alexa-auto-client-service/commonutils/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/commonutils/README.md create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/build.gradle create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/consumer-rules.pro create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/proguard-rules.pro create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/AndroidManifest.xml create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSMessage.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSMessageBuilder.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSMessageSender.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/AACSReplyMessage.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/DialogStateChangedMessages.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/PlaybackControlMessages.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/RenderPlayerInfo.kt create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/SpeechRecognizerMessages.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/main/java/com/amazon/alexa/auto/aacs/common/TemplateRuntimeMessages.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/AACSMessageBuilderTest.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/AACSMessageSenderTest.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/DialogStateChangedMessagesTest.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/PlaybackControlMessagesTest.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/SpeechRecognizerMessagesTest.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/TemplateRuntimeMessagesTest.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/test/java/com/amazon/alexa/auto/aacs/common/TestResourceFileReader.java create mode 100644 platforms/android/alexa-auto-client-service/commonutils/aacscommonutils/src/test/resources/aacs/TemplateRuntimePlayerRenderInfo.json create mode 100644 platforms/android/alexa-auto-client-service/commonutils/build.gradle create mode 100644 platforms/android/alexa-auto-client-service/commonutils/gradle.properties create mode 100644 platforms/android/alexa-auto-client-service/commonutils/settings.gradle create mode 100644 platforms/android/alexa-auto-client-service/constants/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/build.gradle create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/consumer-rules.pro create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/proguard-rules.pro create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/androidTest/java/com/amazon/aacsconstants/ExampleInstrumentedTest.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/AndroidManifest.xml create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/AACSConstants.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/AASBConstants.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/Action.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/MediaConstants.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/NavigationConstants.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/PlaybackConstants.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/TemplateRuntimeConstants.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/main/java/com/amazon/aacsconstants/Topic.java create mode 100644 platforms/android/alexa-auto-client-service/constants/aacsconstants/src/test/java/com/amazon/aacsconstants/ExampleUnitTest.java create mode 100644 platforms/android/alexa-auto-client-service/constants/build.gradle create mode 100644 platforms/android/alexa-auto-client-service/constants/gradle.properties create mode 100644 platforms/android/alexa-auto-client-service/constants/settings.gradle create mode 100644 platforms/android/alexa-auto-client-service/ipc/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/ipc/README.md create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/.gitignore create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/build.gradle create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/proguard-rules.pro create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/androidTest/java/com/amazon/aacsipc/ExampleInstrumentedTest.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/main/AndroidManifest.xml create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/main/java/com/amazon/aacsipc/AACSReceiver.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/main/java/com/amazon/aacsipc/AACSSender.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/main/java/com/amazon/aacsipc/IPCConstants.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/main/java/com/amazon/aacsipc/SenderMap.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/main/java/com/amazon/aacsipc/TargetComponent.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/test/java/com/amazon/aacsipc/DummyService.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/test/java/com/amazon/aacsipc/TestAACSReceiver.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/test/java/com/amazon/aacsipc/TestAACSSender.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/aacsipc/src/test/java/com/amazon/aacsipc/TestUtils.java create mode 100644 platforms/android/alexa-auto-client-service/ipc/build.gradle create mode 100644 platforms/android/alexa-auto-client-service/ipc/gradle.properties create mode 100644 platforms/android/alexa-auto-client-service/ipc/settings.gradle delete mode 100644 platforms/android/modules/contactuploader/CMakeLists.txt delete mode 100644 platforms/android/modules/contactuploader/README.md delete mode 100644 platforms/android/modules/contactuploader/src/main/assets/meta-aac/aace-contactuploader.json delete mode 100644 platforms/android/modules/contactuploader/src/main/cpp/include/AACE/JNI/ContactUploader/ContactUploaderBinder.h delete mode 100644 platforms/android/modules/contactuploader/src/main/cpp/src/ContactUploader/ContactUploaderBinder.cpp delete mode 100644 platforms/android/modules/contactuploader/src/main/java/com/amazon/aace/contactuploader/ContactUploader.java create mode 100644 platforms/android/modules/navigation/src/main/cpp/src/Navigation/NavigationConfigurationBinder.cpp create mode 100644 platforms/android/modules/navigation/src/main/java/com/amazon/aace/navigation/config/NavigationConfiguration.java create mode 100644 samples/android/modules/sample-core/src/main/java/com/amazon/sampleapp/core/LoggerControllerInterface.java diff --git a/CHANGELOG.md b/CHANGELOG.md index b0ba4b236..2718d7d50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,66 @@ # Change Log ___ +## v3.0.0 released on 2020-10-09 + +### Enhancements +* Added Alexa Auto Client Service (AACS), which enables OEMs of Android-based devices to simplify the process of integrating the Auto SDK. For more information about AACS, see the AACS [README](./platforms/android/alexa-auto-client-service/README.md). + +* Added support for removing local media sources at runtime, such as a USB drive or a Bluetooth device. Previously, if a user removed a USB drive and then requested to play music from the USB drive, the Auto SDK would attempt to play and not return an appropriate error message. This feature is enabled with an existing field in the `LocalMediaSource` platform interface state. For information about the platform interface state, see the `alexa` module [README](./modules/alexa/README.md). + +### Resolved Issues +* On QNX, when a portion of music on Spotify is skipped, either by the user saying, "Skip forward," or by the user skipping to a different song, the volume is no longer reset to the default level. +* A user barging in when music is playing no longer hears an Alexa response to the barge-in request. Previously, this issue happened if the System Audio extension was used. + +### Known Issues +* General + * If the "locales" field of the "deviceSettings" node of the Alexa module configuration JSON is not specified, the Engine automatically declares support for the following locale combinations: + ["en-US", "es-US"], + ["es-US", "en-US"], + ["en-IN", "hi-IN"], + ["hi-IN", "en-IN"], + ["fr-CA", "en-CA"], + ["en-CA", "fr-CA"]. + + The Engine does not declare support for locale combinations if the "locales" field is assigned an empty value. + +* Car Control + * For car control, there is a limit of two Device Serial Numbers (DSN) per account or Customer ID (CID). Limit the number of devices for testing with a single account accordingly. If you use the Android sample app, be sure to configure a specific DSN. + * It can take up to 20 seconds from the time of user login to the time Alexa is available to accept utterances. The cloud uses this time to ingest the car control endpoint configurations sent by Auto SDK after login. + * If you configure the Auto SDK Engine and connect to Alexa using a set of endpoint configurations, you cannot delete any endpoint in a set in the cloud. For example, after you configure set A with endpoints 1, 2, and 3, if you change your car control configuration during development to set B with endpoints 2, 3, and 4, endpoint 1 from set A remains in the cloud and might interfere with resolving the correct endpoint ID for your utterances. However, any endpoint configurations with matching IDs override previous configurations. For example, the configuration of endpoint 2 in set B replaces endpoint 2 in set A. During development, limit configuration changes to create only supersets of previous endpoint configurations. Work with your Solutions Architect or Partner Manager to produce the correct configuration on the first try. + * Car control utterances that are variations of supported utterances but do not follow the supported utterance patterns return errors. Examples include “please turn on the light in the car” instead of the supported “turn on the light“, and ”put on the defroster“ or “defrost the windshield” instead of the supported ”turn on the defroster”. + * The air conditioner endpoint supports only Power Controller and Mode Controller capabilities, not Range Controller for numeric settings. + +* Communications + * A user request to send an SMS to an Alexa contact results in an Alexa-to-Alexa message instead. However ‘send message’ instead ‘send SMS’ to a contact works. + * When using LVC in online mode, users can redial a call when the phone connection state is OFF. + * DTMF utterances that include the letters "A", "B", "C", or "D" (for example "press A" or "dial 3*#B") are ignored. + * Calling numbers such as 1-800-xxx-xxxx by using utterances such as “Alexa call one eight double oh...” may return unexpected results. Similarly, when you call numbers by using utterances that include "triple," "hundred," and "thousand," or press special characters such as # or * by saying "Alexa press *#", you may experience unexpected results. We recommend that your client application ignore special characters, dots, and non-numeric characters when requesting Alexa to call or press digits. + * A user playing any skill with extended multi-turn dialogs (such as Jeopardy or Skyrim) cannot use voice to accept or reject incoming Alexa-to-Alexa calls. + +* Entertainment + * A user playing notifications while music is playing hears the music for a split second between the end of one notification and the start of the next. + * The word, "line-in," in an utterance is sometimes misinterpreted as "line" or other words. For example, if the user says, "Switch to line-in," the misinterpretation of "line-in" might cause an incorrect response. + * When an external player authorization is in progress at the exact moment of shutdown, a very rare race condition might occur, causing the Engine to crash. + +* Authentication + * The CBL module uses a backoff when refreshing the access token after expiry. If the internet is disconnected when the refresh is attempted, it could take up to a minute to refresh the token when the internet connection is restored. + * If you log out and log in, the client-side Do Not Disturb (DND) state may not be synchronized with the Alexa cloud. + +* AACS + + * For some platform interface APIs in the Core module, when an application fails to handle a directive, there is no way to report the failure to the Engine. This is because AASB assumes that the application always handles messages correctly. When AASB incorrectly reports how the application handles the message, the Engine state might become inconsistent with the application state. For example, suppose the Engine sends a directive to the application to set the audio volume but the application fails to make the change. AASB does not report the failure to the Engine. As a result, the Engine's and the application's settings become out of sync. The following list shows the affected APIs: + * `AudioInput`: + * `startAudioInput()` + * `AudioOutput`: + * `setPosition(int64_t position)` + * `volumeChanged(float volume)` + * `mutedStateChanged(MutedState state)` + + * In the commonutils library, the JSON parser (`RenderPlayerInfo.kt`) for the `renderPlayerInfo` message of `templateRuntime` can only parse the `payload` field of the AASB `RenderPlayerInfo` message payload. The `payload` field of `RenderPlayerInfo` is the inner payload of the nested payload structure. When using `TemplateRuntime.parseRenderInfo(String json)`, provide it with the embedded JSON as a string of the string value whose key is `payload` in the `RenderPlayerInfo` message’s payload instead of the overall AASB payload. + +### Additional Changes +Starting with Auto SDK v3.0, we no longer support the Automotive Grade Linux (AGL) Alexa Voice agent in the Auto SDK. If you intend to use the AGL Alexa Voice Agent, continue using Auto SDK v2.3.0, which is the last version that provides AGL support. + ## v2.3.0 released on 2020-07-31 ### Enhancements @@ -101,7 +162,7 @@ ___ * Fixed an External Media Player (EMP) Engine implementation that caused an unexpected sequence of Local Media Source playControl() method invocations such as play, then pause, followed by play again in quick succession. * Fixed an issue where the Engine might hang during shutdown if it was shut down while TTS was being played or read. * Fixed an issue where Auto SDK initialization failed at startup when applications using the optional LVC extension didn't register a NetworkInfoProvider platform interface. -* Fixed an issue where building the Auto SDK with senstive logging enabled was not working as expected. +* Fixed an issue where building the Auto SDK with sensitive logging enabled was not working as expected. * Added alerts error enums (`DELETED` and `SCHEDULED_FOR_LATER`) to the [`Alerts.h`](./modules/alexa/platform/include/AACE/Alexa/Alerts.h) and [`Alerts.java`](./platforms/android/modules/alexa/src/main/java/com/amazon/aace/alexa/Alerts.java) files. * With the exception of road regulation and maneuver events, the Alexa cloud no longer returns an `INVALID_REQUEST_EXCEPTION` or `INTERNAL_SERVICE_EXCEPTION` in response to navigation events sent by the Auto SDK. * Alexa now prompts or notifies the clients and rejects the ping packet when the user deregisters from the companion app. @@ -110,7 +171,7 @@ ___ * General * If the local timezone of your device differs from the timezone that was configured through the Alexa companion app, the user may experience unexpected behavior. For example, if your device shows 12pm PST, but the device on the Alexa companion app is configured with an EST timezone, then asking "Alexa set an alarm for 1pm today," will return, "Sorry I can't set alarms in the past". Auto SDK v2.2.0 adds support for setting the timezone of the vehicle, which allows your device to synchronize with the timezone set in the Alexa companion app; however, the Auto SDK currently does not receive a `SetTimeZone` directive when the timezone is changed from the companion app. * Navigation - * The Alexa cloud currently returns an `INTERNAL_SERVICE_EXCEPTION` in response to any navigation road regulation or manuever event sent by the Auto SDK (triggered by an utterance such as "which lane should I take", for example). You may see a harmless error/exception in the logs. + * The Alexa cloud currently returns an `INTERNAL_SERVICE_EXCEPTION` in response to any navigation road regulation or maneuver event sent by the Auto SDK (triggered by an utterance such as "which lane should I take", for example). You may see a harmless error/exception in the logs. * Car Control * Certain car control utterances return errors. Problematic utterances include natural versions of certain test utterances (for example, “turn on the light“ instead of “please turn on the light in the car”); utterances that include the words “lights” or “my”; and utterances to control the defroster or defogger that use “put on” or “set on” rather than “turn on” or “switch on”. * Setting the air conditioner using range controller control capabilities (for example “set the air conditioner to 65” or “set the air conditioner to low”) is not currently supported. diff --git a/CMakeLists.txt b/CMakeLists.txt index 543c9409f..2b34214d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,6 @@ else() add_subdirectory(modules/apl) add_subdirectory(modules/car-control) add_subdirectory(modules/cbl) - add_subdirectory(modules/contact-uploader) add_subdirectory(modules/core) add_subdirectory(modules/messaging) add_subdirectory(modules/navigation) diff --git a/GETSTARTED.md b/GETSTARTED.md new file mode 100644 index 000000000..b41e0570e --- /dev/null +++ b/GETSTARTED.md @@ -0,0 +1,50 @@ +# Getting Started with the Alexa Auto SDK +This document assumes that you have read the [README](./README.md) to understand the basic Auto SDK concepts. Complete the steps in this document to get started with the Auto SDK and to follow security best practices. + + +## Table of Contents +- [Before You Start](#before-you-start) +- [Getting Started](#getting-started) +- [Downloading Optional Extensions](#downloading-optional-extensions) + +## Before You Start +Complete the following steps before you get started with the Auto SDK: + +1. Register for an [Amazon Developer Account](https://developer.amazon.com/home.html) and [create an Alexa device and security profile](./NEED_HELP.md#registering-a-product-and-creating-a-security-profile) to use the Auto SDK. +2. Make sure that you meet the requirements for building the Auto SDK and understand the dependencies, as described in the SDK builder [README](./builder/README.md). + +## Getting Started +Follow these steps to get started with the Auto SDK: + +1. Clone the `alexa-auto-sdk` repository into your project. +2. If you want to use the optional Auto SDK modules, download the modules from the locations listed in [Downloading Optional Extensions](#downloading-optional-extensions). + +3. Build the Auto SDK as described in the builder [README](./builder/README.md). + >**Note:** If your target platform is Android and you want to implement any optional modules (such as wake word support and Alexa Communications), you must use the Android Archive (AAR) files generated by the Auto SDK Builder. Do not use the prebuilt platform .AARs and sample-core AAR available in JCenter; they are for the default Auto SDK modules only. + +4. Install the built package on your device as described in the builder [README](./builder/README.md). + +5. Create and configure an instance of the Engine. For details, see the [C++](./modules/core/README.md#creating-the-engine) or [Android](./platforms/android/modules/core/README.md#creating-the-engine) Core module documentation. + +6. Extend the Auto SDK interfaces by creating a custom handler for each interface that you want to implement and registering the handler with the Engine. + +7. Start the Engine using the `start()` command. + +8. Use the Sample App ([C++](./samples/cpp/README.md) or [Android](./samples/android/README.md)) to see how the Auto SDK works and to test end-to-end functionality. + +## Downloading Optional Extensions + +**NOTE**: The version of the optional extension archive must match the version of the Auto SDK that you are using. For example, if you are using Auto SDK 3.0 and want to install the Local Voice Control extension, you must download version 3.0 of the Local Voice Control extension archive. + +Click the link in the following list to go to the directory where the extension archive is located: + +* [AmazonLite Wake Word extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Amazonlite%20Extension) + +* [Alexa Communications extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Alexa%20Comms%20Extension) + +* [Local Voice Control extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Local%20Voice%20Control%20Extension) + +* [Device Client Metrics (DCM) extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Metric%20Upload%20Service%20Extension) + +* [Voice Chrome for Android extension](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Voice%20Chrome%20Extension) + diff --git a/MIGRATION.md b/MIGRATION.md index 8685bf54c..4fbbac3c7 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -2,44 +2,77 @@ This guide outlines the changes you need to make to migrate from Auto SDK v2.0 to later versions of the Auto SDK. ->**Note:** If you upgrade more than one version, you must include the changes in all the relevant sections of this guide. For example, if you migrate from Auto SDK v2.0 to Auto SDK v2.2, you must include the changes described under [Migrating from Auto SDK v2.0 to v2.1](#migrating-from-auto-sdk-v20-to-v21) as well as the changes described under [Migrating from Auto SDK v2.1 to v2.2](#migrating-from-auto-sdk-v21-to-v22). - -**Table of Contents** - -* [Alexa Auto SDK Migration Guide](#alexa-auto-sdk-migration-guide) - * [Migrating from Auto SDK v2.2.1 to v2.3.0](#migrating-from-auto-sdk-v221-to-v230) - * [Car Control Enhancements and Breaking Changes](#car-control-enhancements-and-breaking-changes) - * [Language Model Packaging](#language-model-packing) - * [Android](#android-updates) - * [Gradle](#android-gradle) - * [Sample App](#android-sample-overrides) - * [Clang Formatting](#clang-formatting) - * [Migrating from Auto SDK v2.2 to v2.2.1](#migrating-from-auto-sdk-v22-to-v221) - * [TemplateRuntime Enhancements](#templateruntime-enhancements) - * [renderTemplate](#templateruntime-rendertemplate) - * [renderPlayerInfo](#templateruntime-renderplayerinfo) - * [Sample Apps](#templateruntime-sampleapps) - * [Migrating from Auto SDK v2.1 to v2.2](#migrating-from-auto-sdk-v21-to-v22) - * [Implementing the Property Manager Interface](#implementing-the-property-manager-interface) - * [Car Control Changes](#car-control-changes) - * [New Asset ID Prefix](#new-asset-id-prefix) - * [Specifying the Path to Custom Car Control Assets](#specifying-the-path-to-custom-car-control-assets) - * [Car Control Config Builder Asset Methods](#car-control-config-builder-asset-methods) - * [Migrating from Auto SDK v2.0 to v2.1](#migrating-from-auto-sdk-v20-to-v21) - * [Build Changes](#build-changes) - * [Engine Configuration File Updates](#engine-configuration-file-updates) - * [Navigation Enhancements](#navigation-enhancements) - * [What's New](#whats-new) - * [Implementing the New Navigation Features](#implementing-the-new-navigation-features) - * [New TemplateRuntime Interface Version](#new-templateruntime-interface-version) - * [Car Control Source File Relocation](#car-control-source-file-relocation) - * [Code-Based-Linking (CBL) Handler in the Sample Apps](#code-based-linking-cbl-handler-in-the-sample-apps) - -## Migrating from Auto SDK v2.2.1 to v2.3.0 +>**Note:** If you migrate from a version earlier than v2.3, be sure to read the relevant sections of this guide to understand all changes introduced between your current version and v3.0. The information helps you decide what changes you must include. For example, if you migrate from v2.0, include the changes described in [Migrating from Auto SDK v2.0 to v2.1](#migrating-from-auto-sdk-v20-to-v21), the changes described in [Migrating from Auto SDK v2.1 to v2.2](#migrating-from-auto-sdk-v21-to-v22), and so on, taking into consideration the deprecated or removed features in v2.3 and v3.0. + + +## Table of Contents + +- [Deprecated Features Removed in Auto SDK v3.0.0](#deprecated-features-removed-in-auto-sdk-v300) + - [Using the Address Book Module](#using-the-address-book-module) +- [Migrating from Auto SDK v2.2.1 to v2.3.0](#migrating-from-auto-sdk-v221-to-v230) + - [Car Control Enhancements and Breaking Changes](#car-control-enhancements-and-breaking-changes) + - [Language Model Packaging](#language-model-packaging) + - [Android](#android) + - [Clang Formatting](#clang-formatting) +- [Migrating from Auto SDK v2.2 to v2.2.1](#migrating-from-auto-sdk-v22-to-v221) + - [TemplateRuntime Enhancements](#templateruntime-enhancements) +- [Migrating from Auto SDK v2.1 to v2.2](#migrating-from-auto-sdk-v21-to-v22) + - [Implementing the Property Manager Interface](#implementing-the-property-manager-interface) + - [Car Control Changes](#car-control-changes) +- [Migrating from Auto SDK v2.0 to v2.1](#migrating-from-auto-sdk-v20-to-v21) + - [Build Changes](#build-changes) + - [Engine Configuration File Updates](#engine-configuration-file-updates) + - [Navigation Enhancements](#navigation-enhancements) + - [Car Control Source File Relocation](#car-control-source-file-relocation) + - [Code-Based-Linking (CBL) Handler in the Sample Apps](#code-based-linking-cbl-handler-in-the-sample-apps) + +## Deprecated Features Removed in Auto SDK v3.0.0 +* The following asset IDs for Car Control have been removed: "Alexa.Automotive.DeviceName.DriverSeat", "Alexa.Automotive.DeviceName.LeftSeat", "Alexa.Automotive.DeviceName.PassengerSeat", "Alexa.Automotive.DeviceName.RightSeat". +* The `createControl()` method has been removed. Use `createEndpoint()` instead. +* Support for the "isMemberOf" relationship for endpoint definition has been removed. You must list member endpoints in a zone definition. +* Implicit zone definitions have been removed. +* The following `TemplateRuntime` methods have been removed: + * The `renderTemplate(const std::string& payload)` method has been removed. Use renderTemplate(const std::string& payload, FocusState focusState) instead. + * The `renderPlayerInfo(const std::string& payload)` method has been removed. Use `renderPlayerInfo(const std::string& payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)` instead. +* In the Alexa module, `AlexaProperties::SUPPORTED_LOCALES` has been removed. For Alexa to recognize the locale setting, specify one of these values: de-DE, en-AU, en-CA, en-GB, en-IN, en-US, es-ES, es-MX, es-US, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, pt-BR. +* `Engine::setProperty()` and `Engine::getProperty()` have been removed. Use `PropertyManager::setProperty()` and `PropertyManager::getProperty()` instead. For details about the Property Manager platform interface, see "Managing Runtime Properties with the Property Manager" ([for C++](./modules/core/README.md#managing-runtime-properties-with-the-property-manager) or [for Android](./platforms/android/modules/core/README.md#managing-runtime-properties-with-the-property-manager)). +* The `SpeechRecognizer::enableWakeWordDetection()`, `SpeechRecognizer::disableWakeWordDetection()`, and `SpeechRecognizer::isWakewordDetectionEnabled()` methods have been removed. +* The Contact Uploader module has been removed. Use the [Address Book module](#using-the-address-book-module) instead. + +### Using the Address Book Module +Address Book module enables the user to upload contacts from the phone that is paired with the car or the navigation favorites from the car head unit to Alexa cloud. For more information about how this module works, see the [Address Book README](./modules/address-book/README.md). Both the Android and C++ sample apps demonstrate the use of the `AddressBook` platform interface. See the sample app source code for specific implementation details. + +The following Address Book API descriptions help you transition from the Contact Uploader module to the Address Book module: + +`addAddressBook` + +``` + bool addAddressBook(const std::string& addressBookSourceId, const std::string& name, AddressBookType type); +``` + +Use `addAddressBook` instead of `ContactUploader::addContactsBegin`. In addition, `addAddressBook` requires you to specify the source id to identify the address book, the friendly name of the address book, and the type of address book. + +`removeAddressBook` +``` + bool removeAddressBook(const std::string& addressBookSourceId); +``` + +Use `removeAddressBook` instead of `ContactUploader:: removeUploadedContacts`. You must specify the id of the address book to be removed. + +`getEntries` +``` + bool getEntries( + const std::string& addressBookSourceId, + std::weak_ptr factory) +``` + +When using the Address Book module, the Engine pulls the address book contents from the platform implementation. You must upload the address book contents through the factory class, `IAddressBookEntriesFactory`, for the specified address book source id. + +## Migrating from Auto SDK v2.2.1 to v2.3.0 This section outlines the changes you will need to make to migrate from Auto SDK v2.2.1 to Auto SDK v2.3. -### Car Control Enhancements and Breaking Changes +### Car Control Enhancements and Breaking Changes Read the updated Car Control module README (for [C++ platforms](./modules/car-control/README.md) or [Android](./platforms/android/modules/car-control/README.md)) to get a complete understanding of all supported features and the current format of the "aace.carControl" configuration schema. Read the updated API documentation for the `CarControlConfiguration` builder class (for [C++ platforms](./modules/car-control/platform/include/AACE/CarControl/CarControlConfiguration.h) or [Android](./platforms/android/modules/car-control/src/main/java/com/amazon/aace/carControl/CarControlConfiguration.java)) if you construct your configuration programmatically. The changes to the "aace.carControl" configuration for v2.3 are backward-compatible, meaning your previous configuration (regardless of whether it was file-based or built programmatically with the `CarControlConfiguration` class) will still compile and produce a valid configuration to input to Auto SDK. However, several updates are recommended to ensure expected behavior, even if you do not want new features. @@ -153,25 +186,25 @@ The Car Control module is updated to include many new assets in the default auto It is a known issue that you cannot delete any previously configured endpoint IDs associated with your customer account in the cloud. When upgrading your configuration from v2.2 to v2.3, contact your SA or Partner Manager for help to reset your account's endpoint database in the cloud. This is especially important if you are updating to use new features. It is also recommended that your v2.3 configuration follows the configuration sample of supported features shown in the Car Control README. Refer to this document for reference. -### Language Model Packaging +### Language Model Packaging Language models for the Local Voice Control extension are now decoupled from the LVC.sh (Linux) binaries. If you use the Local Voice Control extension, you must install the language models to successfully migrate to v2.3.0. Download the language model tar files. Installation instructions are provided in the Local Voice Control extension. -### Android +### Android -#### Gradle +#### Gradle The gradle plugin has been updated to v3.6.2. This requires gradle v5.6.4 or above in order to build the Auto SDK for Android targets. -#### Sample App +#### Sample App The Android sample app supports overriding the client configuration by pushing a file named app_config.json to the /sdcard folder on the device. If the /sdcard/app_config.json file existed on the device before you migrate to v2.3.0, the file overrides the client configuration included in the v2.3.0 Android sample app APK. -### Clang Formatting +### Clang Formatting Auto SDK code has been formatted with `clang-format` version 9.0.0. This may lead to merge conflicts if changes have been made to v2.2.1 source code files and you migrate to v2.3. -## Migrating from Auto SDK v2.2 to v2.2.1 +## Migrating from Auto SDK v2.2 to v2.2.1 This section outlines the changes you will need to make to migrate from Auto SDK v2.2 to Auto SDK v2.2.1. -### TemplateRuntime Enhancements +### TemplateRuntime Enhancements Auto SDK v2.2.1 introduces additional TemplateRuntime platform interface features that you can integrate in your application to enrich the user's experience with Now Playing cards for AudioPlayer and ExternalMediaPlayer implementations. [Now Playing cards](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/templateruntime.html#renderplayerinfo) are a form of display cards — visual aids that complement the Alexa voice experience — that contain media metadata, player controls and album art delivered in the TemplateRuntime RenderPlayerInfo directive. Migration is only required to support the new features, but is highly recommended for the following reasons: @@ -180,7 +213,7 @@ Migration is only required to support the new features, but is highly recommende 1. The `renderTemplate( const std::string& payload )` method is deprecated. Use `renderTemplate( const std::string& payload, FocusState focusState )` instead. 2. The `renderPlayerInfo( const std::string& payload )` method is deprecated. Use `renderPlayerInfo( const std::string& payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState )` instead. -#### renderTemplate +#### renderTemplate **Method** ``` @@ -195,7 +228,7 @@ The new renderTemplate method provides visual metadata associated with a user re - `FOREGROUND` Represents the highest focus a Channel can have - `BACKGROUND` Represents the intermediate level focus a Channel can have -#### renderPlayerInfo +#### renderPlayerInfo **Method** ``` @@ -221,21 +254,21 @@ The new renderPlayerInfo method provides visual metadata associated with a user - `FOREGROUND` Represents the highest focus a Channel can have - `BACKGROUND` Represents the intermediate level focus a Channel can have -#### Sample Apps +#### Sample Apps The Android Sample App demonstrates the new features in `TemplateRuntimeHandler.java` in GUI form. Refer to sample app source code and [Alexa Voice Service documentation](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/templateruntime.html#renderplayerinfo) for specific implementation details. The C++ Sample App simply demonstrates the new features by printing `audioPlayerState`, `offset`, and `focusState` to the console in the `TemplateRuntimeHandler::renderPlayerInfo()` method of `TemplateRuntimeHandler.cpp`. -## Migrating from Auto SDK v2.1 to v2.2 +## Migrating from Auto SDK v2.1 to v2.2 This section outlines the changes you will need to make to migrate from Auto SDK v2.1 to Auto SDK v2.2. -### Implementing the Property Manager Interface +### Implementing the Property Manager Interface Auto SDK v2.2 introduces the Property Manager, a component that maintains runtime properties by storing property values and listeners and delegating the `setProperty()` and `getProperty()` calls from your application to the respective Engine services. The Engine invokes the PropertyManager platform interface method `propertyChanged()` to notify your application about property value changes originating internally. The property values may be set by Auto SDK modules that define constants (for example `FIRMWARE_VERSION` and `LOCALE`), or they may be initiated from the Alexa Voice Service (AVS), such as when the user changes the `TIMEZONE` setting in the Alexa Companion App. `PropertyManager::setProperty()` and `PropertyManager::getProperty()` replace deprecated `Engine::setProperty()` and `Engine::getProperty()`. For details about the Property Manager platform interface, see "Managing Runtime Properties with the Property Manager" ([for C++](./modules/core/README.md#managing-runtime-properties-with-the-property-manager) or [for Android](./platforms/android/modules/core/README.md#managing-runtime-properties-with-the-property-manager)). -### Car Control Changes +### Car Control Changes This section documents the changes you will need to make to migrate your Car Control implementation to Auto SDK v2.2. #### New Asset ID Prefix @@ -260,10 +293,10 @@ This implementation populates the `"aace.carControl"` configuration object with `"assets.customAssetsPath"` and `"assets.defaultAssetsPath"` nodes. -## Migrating from Auto SDK v2.0 to v2.1 +## Migrating from Auto SDK v2.0 to v2.1 This section outlines the changes you will need to make to migrate from Auto SDK v2.0 to Auto SDK v2.1. -### Build Changes +### Build Changes The following build changes have been introduced in Auto SDK v2.1: * The builder script usage has changed for Linux targets. All Linux targets now use the same platform name (`linux`), and `-t ` is mandatory. For example, to build for a Linux native target, use: @@ -278,7 +311,7 @@ The following build changes have been introduced in Auto SDK v2.1: * For QNX targets, you must cross-compile with the QNX multimedia software for the system audio extension (which is built by default for QNX targets). This requires a QNX Multimedia Suite license. See the [System Audio extension README](./extensions/experimental/system-audio/README.md) for details. -### Engine Configuration File Updates +### Engine Configuration File Updates The AVS Device SDK portion of the Auto SDK Engine configuration (the `aace.alexa.avsDeviceSDK` node) has been updated. See the [`config.json.in`](./samples/cpp/assets/config.json.in) file for details. @@ -289,7 +322,7 @@ The AVS Device SDK portion of the Auto SDK Engine configuration (the `aace.alexa * `"deviceSettings"` now requires a `"defaultTimezone"`. -### Navigation Enhancements +### Navigation Enhancements Auto SDK v2.1 introduces additional navigation features that you can integrate in your application to enrich the user's experience: add/cancel a waypoint, show/navigate to a previous destination, turn and lane guidance, and map display control. Implementing these enhancements required deprecating the `setDestination()` interface in favor of the `startNavigation()` interface and adding several additional interfaces. @@ -585,13 +618,13 @@ The Auto SDK now implements version 1.2 of the TemplateRuntime interface to hand The TemplateRuntime interface remains the same, but the `LocalSearchListTemplate1` template has been deprecated in favor of the new `LocalSearchListTemplate2` template. In addition, two new templates (`TrafficDetailsTemplate` and `LocalSearchDetailTemplate1`), are now supported. The `TrafficDetailsTemplate` includes commute information to favorite destinations such as home or work. The `LocalSearchDetailTemplate1` template includes information about specific locations or information in response to users asking for details about locations presented in the `LocalSearchListTemplate2` template. For details about the TemplateRuntime interface, see the [Alexa Voice Service (AVS) documentation](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/templateruntime.html). For details about implementing TemplateRuntime in your Auto SDK implementation see the Alexa module README for [C++](./modules/alexa/README.md#handling-display-card-templates) or [Android](./platforms/android/modules/alexa/README.md#handling-display-card-templates). -### Car Control Source File Relocation +### Car Control Source File Relocation The Car Control module platform interface files and documentation are now located in `aac-sdk/modules/car-control` for C++ and `aac-sdk/platforms/android/modules/car-control` for Android, rather than in the Local Voice Control (LVC) extension directory structure. >**Note:** In addition, if you use custom assets for car control in an implementation with the optional Local Voice Control (LVC) extension, you must specify the path to the custom assets in both the Auto SDK car control configuration and the LVC configuration, not just the LVC configuration. For details, see [Path to Custom Car Control Assets for LVC Implementations](#path-to-custom-car-control-assets-for-lvc-implementations). -### Code-Based-Linking (CBL) Handler in the Sample Apps +### Code-Based-Linking (CBL) Handler in the Sample Apps Both of the Auto SDK Sample Apps now include the Code-Based Linking (CBL) handler implementation (in favor of the `AuthProvider` handler implementation ) to handle obtaining access tokens from Login with Amazon (LWA). Changing from the `AuthProvider` handler to the CBL handler is *not a required change*, but we recommend that you use the Auto SDK CBL interface for ease of implementation. For details about the CBL handler, please see the CBL module README [for C++](./modules/cbl/README.md) or [for Android](./platforms/android/modules/cbl/README.md). If you want to continue using the `AuthProvider` interface, we recommend that you implement the new `onAuthFailure()` method that exposes 403 "unauthorized request" exceptions from Alexa Voice Service (AVS). This method may be invoked, for example, when your product makes a request to AVS using an access token obtained for a device which has been deregistered from the Alexa companion app. In the Sample Apps, you can override the interface and unset your login credentials as if the user had done so with your GUI interface: diff --git a/NOTICE b/NOTICE index 155dd2f3c..4d2267a52 100644 --- a/NOTICE +++ b/NOTICE @@ -19,7 +19,6 @@ modules/core modules/messaging modules/navigation modules/phone-control -platforms/agl platforms/android samples/android samples/cpp diff --git a/OVERVIEW.md b/OVERVIEW.md deleted file mode 100644 index 97c173b60..000000000 --- a/OVERVIEW.md +++ /dev/null @@ -1,83 +0,0 @@ -# Alexa Auto SDK Overview - -The Alexa Auto SDK is designed to allow flexibility in the integration of Alexa as a part of the automotive in-cabin experience. The Alexa Auto SDK Engine provides runtime support for Alexa and other services and allows your application to integrate with platform-specific functionality. Platform-specific behavior in the Alexa Auto SDK is abstracted into interfaces called "platform interfaces." To implement the platform-specific functionality in your application, you extend the platform interfaces (by creating custom handlers) and register these platform interface handlers with the Engine. - -**Table of Contents** - -* [Alexa Auto SDK Architecture and Modules](#alexa-auto-sdk-architecture-and-modules) -* [Optional Extensions](#optional-extensions) - -## Alexa Auto SDK Architecture and Modules - -> **Note**: This diagram shows only some of the available platform interfaces. - -![architecture](./assets/aac_architecture.png) - -### ![Alexa Auto SDK Engine](./assets/number-1.png) Alexa Auto SDK Engine - -The runtime implementation of the Alexa Auto SDK is known as the Engine. Modules extend the Engine by providing services and defining the runtime behavior for platform interfaces that are registered by the application. The application software communicates with the Engine through the API defined by the platform interfaces. - -### ![Alexa Auto SDK Engine](./assets/number-2.png) Core Module - -The Core module (for [C++](./modules/core/README.md) or [Android](./platforms/android/modules/core/README.md)) includes platform interfaces and runtime Engine support for Core features in the Alexa Auto SDK, such as logging, location, and network information. The services are used by components in other modules and are required by the Alexa Auto SDK. - - -### ![Alexa Auto SDK Engine](./assets/number-3.png) Alexa Module - -The Alexa module (for [C++](./modules/alexa/README.md) or [Android](./platforms/android/modules/alexa/README.md)) includes platform interfaces and runtime Engine support for Alexa features in the Alexa Auto SDK, including speech input and output, audio output, authorization, Alexa speaker, media playback, equalizer control, template and state rendering, local media sources, alerts, notifications, and Do Not Disturb (DND). - -### ![Alexa Auto SDK Engine](./assets/number-4.png) Navigation Module - -The Navigation module (for [C++](./modules/navigation/README.md) or [Android](./platforms/android/modules/navigation/README.md)) includes platform interfaces and runtime Engine support for Alexa to interface with the onboard navigation system. - - -### ![Alexa Auto SDK Engine](./assets/number-5.png) Phone Call Controller Module - -The Phone Control module (for [C++](./modules/phone-control/README.md) or [Android](./platforms/android/modules/phonecontrol/README.md)) includes platform interfaces and runtime Engine support for Alexa to interface with the onboard telephony system. - -### Address Book Module - -The Address Book module (for [C++](./modules/address-book/README.md) or [Android](./platforms/android/modules/addressbook/README.md)) includes platform interfaces and runtime Engine support to augment the communications and navigation capabilities of Alexa with user data such as phone contacts and/or navigation favorites ("home", "work", etc.) - -### Code-Based Linking (CBL) Module - -The CBL module (for [C++](./modules/cbl/README.md) or [Android](./platforms/android/modules/cbl/README.md)) includes platform interfaces and runtime Engine support to implement the Code-Based Linking (CBL) mechanism of acquiring Login with Amazon (LWA) access tokens. - -### Alexa Presentation Language (APL) Module -The APL module (for [C++](./modules/apl/README.md) or [Android](./platforms/android/modules/apl/README.md)) includes platform interfaces and runtime Engine support to enable devices with graphical user interface (GUI) support to implement APL directives and events. - ->**Note:** APL rendering on the Android Sample App requires a component that is available by [request from your Amazon Solutions Architect (SA) or Partner Manager](./NEED_HELP.md#requesting-additional-functionality-whitelisting). - -### Messaging Module - -The Messaging module (for [C++](./modules/messaging/README.md) or [Android](./platforms/android/modules/messaging/README.md)) includes platform interfaces and runtime Engine support for Short Message Service (SMS) capabilities of Alexa such as sending and reading text messages. - -## Optional Extensions -The following extensions to the Alexa Auto SDK are available by request. Please contact your Amazon Solutions Architect (SA) or Partner Manager for more information. - ->**Important!** The optional extensions are provided as archives. In order to install an optional extension, you must first download the archive. The version of the optional extension archive must match the version of the Auto SDK that you are using. For example, if you are using Auto SDK 2.0 and want to install the Local Voice Control extension, you must download version 2.0 of the Local Voice Control extension archive from the link provided below. - -### AmazonLite Wake Word extension -Wake Word enables hands-free, voice-initiated interactions with Alexa. The Wake Word extension enables AmazonLite Wake Word support in the Alexa Auto SDK. - -To install the optional AmazonLite Wake Word extension, you must download the appropriate archive version from the [Auto SDK AmazonLite Extension resources directory](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Amazonlite%20Extension). - -### Alexa Communications extension -The Alexa Communications extension enables integration with Alexa-to-Alexa calling, Alexa-to-PSTN calling, and messaging capabilities. - -To install the optional Alexa Communications extension, you must download the appropriate archive version from the [Auto SDK Alexa Comms Extension resources directory](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Alexa%20Comms%20Extension). - -### Local Voice Control (LVC) extension -The Local Voice Control (LVC) extension provides car control, communication, navigation, and entertainment functionality, with and without an internet connection. It includes components that run an Alexa endpoint inside the vehicle's head unit. Local Voice Control is currently supported on Linux x86 64-bit, Linux ARM 32/64-bit, Android x86 64-bit, and Android ARM 32/64-bit platforms. - -To install the optional LVC extension, you must download the appropriate archive version from the [Auto SDK Local Voice Control Extension resources directory](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Local%20Voice%20Control%20Extension). - -### Device Client Metrics (DCM) extension -The Device Client Metrics (DCM) extension enables logging and uploading Alexa Auto SDK metrics to the Amazon cloud. Voice request metrics, for example, include start and end timestamps of user and Alexa speech and user perceived latency (UPL) between the request and Alexa’s response. Metrics may be tagged Beta, Gamma, or Prod depending on the vehicle lifecycle. The DCM extension is available for all Linux and Android platforms. - -To install the optional DCM extension, you must download the appropriate archive version from the [Auto SDK Device Metric Upload Service Extension resources directory](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Metric%20Upload%20Service%20Extension). - -### Voice Chrome for Android extension -The Voice Chrome extension adds Voice Chrome support to the Auto SDK for Android x86 64-bit and Android ARM 32/64-bit platforms. Voice Chrome provides a consistent set of visual cues representing Alexa attention state across a range of Alexa-enabled devices. The Voice Chrome extension includes a prebuilt Android AAR library for easy integration with your applications, as well as a patch to the Android Sample App that adds the Voice Chrome functionality. - -To install the optional Voice Chrome for Android extension, you must download the appropriate archive version from the [Auto SDK Voice Chrome Extension resources directory](https://developer.amazon.com/alexa/console/avs/preview/resources/details/Auto%20SDK%20Voice%20Chrome%20Extension). \ No newline at end of file diff --git a/README.md b/README.md index f6d7b3cac..244c00305 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,105 @@ -# Get Started with the Alexa Auto SDK +# Overview of the Alexa Auto SDK -The [Alexa Auto SDK](./OVERVIEW.md) contains essential client-side software required to integrate Alexa into the automobile. It is modular and abstract, providing a runtime engine for communicating with the Alexa service as well as interfaces that allow you to implement platform-specific behavior such as audio input, media playback, template and state rendering, phone control, and navigation. The Auto SDK also includes two sample applications (one for [C++](./samples/cpp/README.md) and one for [Android](./samples/android/README.md)) that demonstrate how to use the Auto SDK interfaces and allow you to test interactions before integration. +The Alexa Auto SDK contains essential client-side software required to integrate Alexa into the automobile. The software includes the source code and function libraries in C++ and Java. The Auto SDK is modular and abstract, providing a runtime engine for your vehicle to communicate with the Alexa service. It also provides interfaces for you to implement platform-specific behavior, such as audio input, media playback, template and state rendering, phone control, and navigation. After you build and install the Auto SDK, you can use the included sample applications, one for C++ and one for Android, to learn about the Auto SDK interfaces and to test interactions before integration. -**To get started with the Auto SDK, follow these basic steps:** + +## Table of Contents +- [Auto SDK Architecture and Modules](#auto-sdk-architecture-and-modules) +- [Alexa Auto Client Service (AACS)](#alexa-auto-client-service-aacs) +- [Security Best Practices](#security-best-practices) +- [See Also](#see-also) -> **Important!** You need to register for an [Amazon Developer Account](https://developer.amazon.com/home.html) and [create an Alexa device and security profile](./NEED_HELP.md#registering-a-product-and-creating-a-security-profile) to use the Alexa Auto SDK. +## Auto SDK Architecture and Modules -1. Clone the `alexa-auto-sdk` repository into your project and [build the Auto SDK package](./builder/README.md#using-the-auto-sdk-builder). +> **Note**: This diagram shows only some of the available platform interfaces. -2. Install the built package on your [target hardware](./builder/README.md#supported-target-platforms). -3. Create and configure an instance of the Engine. For details, see the [C++](./modules/core/README.md#creating-the-engine) or [Android](./platforms/android/modules/core/README.md#creating-the-engine) Core module documentation. - -4. Extend the Auto SDK interfaces by creating a custom handler for each interface that you want to implement and registering the handler with the Engine. The Auto SDK modules provide platform interfaces and runtime Engine support for different capabilities: + +

+ +The following sections describe the Auto SDK modules and extensions, which are optional modules. - * **Core** (for [C++](./modules/core/README.md) or [Android](./platforms/android/modules/core/README.md)) - enables you to implement core features such as system audio input and output integration, logging, location, and network information. The services are used by components in other modules and are required by the Alexa Auto SDK. - * **Alexa** (for [C++](./modules/alexa/README.md) or [Android](./platforms/android/modules/alexa/README.md)) - enables you to implement Alexa features, including speech input and output, Alexa audio playback management, authorization, equalizer control, template and state rendering, local media sources, alerts, notifications, and Do Not Disturb (DND)). - * **Navigation** (for [C++](./modules/navigation/README.md) or [Android](./platforms/android/modules/navigation/README.md)) - enables Alexa to interface with the onboard navigation system. - * **Phone Call Controller** (for [C++](./modules/phone-control/README.md) or [Android](./platforms/android/modules/phonecontrol/README.md)) - enables Alexa to interface with the onboard telephony system. - * **Address Book** (for [C++](./modules/address-book/README.md) or [Android](./platforms/android/modules/addressbook/README.md)) - enables you to augment the communications and navigation capabilities of Alexa with user data such as phone contacts and/or navigation favorites. - * **CBL** (for [C++](./modules/cbl/README.md) or [Android](./platforms/android/modules/cbl/README.md)) - enables you to implement the Code-Based Linking (CBL) mechanism of acquiring Login with Amazon (LWA) access tokens. - * **Alexa Presentation Language (APL)** (for [C++](./modules/apl/README.md) or [Android](./platforms/android/modules/apl/README.md)) - enables your application to support APL directives and events for devices with graphical user interface (GUI) support. - * **Car Control** (for [C++](./modules/car-control/README.md) or [Android](./platforms/android/modules/car-control/README.md)) - enables your application to build a custom vehicle-control experience that allows the user to voice-control vehicle features using Alexa. - * **Messaging** (for [C++](./modules/car-control/README.md) or [Android](./platforms/android/modules/messaging/README.md)) - enables your application to interface with the Short Message Service (SMS) capabilities of a connected phone using Alexa. -5. Start the Engine using the `start()` command. -6. Use the Sample App ([C++](./samples/cpp/README.md) or [Android](./samples/android/README.md)) to see how the Auto SDK works and to test end-to-end functionality. +### ![Alexa Auto SDK Engine](./assets/number-1.png) Alexa Auto SDK Engine -[Additional functionality](./OVERVIEW.md#optional-extensions) (for example, Car Control, SMS, AmazonLite Wake Word, Alexa Communications, Local Voice Control (LVC), Device Client Metrics (DCM), and Voice Chrome for Android) is available with [help from your Amazon Solutions Architect (SA) or Partner Manager](./NEED_HELP.md#requesting-additional-functionality-whitelisting). +The Auto SDK Engine is the runtime implementation of the Auto SDK. Platform-specific behavior in the Alexa Auto SDK is abstracted into interfaces called "platform interfaces." Modules in the Auto SDK extend the Engine by providing services and defining the runtime behavior for platform interfaces that are registered by the application. The platform interfaces define the API that determines how the application communicates with the Engine. -## Release Notes and Known Issues +### ![Alexa Auto SDK Engine](./assets/number-2.png) Core Module -For a summary of feature enhancements, updates, and resolved and known issues, see the the Auto SDK [Change Log](./CHANGELOG.md). +The Core module (for [C++](./modules/core/README.md) or [Android](./platforms/android/modules/core/README.md) includes the Engine class and platform interfaces. It also provides the infrastructure for audio input and output. The infrastructure is necessary for any modules that provide platform interfaces involving audio (for example, the Alexa module). All modules depend on the Core module, which provides them with logging, location reporting, and network monitoring services. ->**Note:** [Android Sample App](./samples/android/README.md#v210-release-notes), [C++ Sample App](./samples/cpp/README.md#v210-release-notes), and [Automotive Grade Linux (AGL) Alexa Voice Agent](./platforms/agl/alexa-voiceagent-service/README.md#v210-release-notes) release notes are provided in their respective READMEs. +The Auto SDK provides a Java version of each C++ platform interface in the Android platform portion of the SDK. The Java interfaces are built, using the Java Native Interface (JNI), on top of the core C++ interfaces. As a result, Android integrations can use Auto SDK interfaces directly. -## Migration Guide -For guidelines on migrating Auto SDK versions, see the [Migration Guide](./MIGRATION.md). +### ![Alexa Auto SDK Engine](./assets/number-3.png) Alexa Module -## Learn More +The Alexa module (for [C++](./modules/alexa/README.md) or [Android](./platforms/android/modules/alexa/README.md)) includes platform interfaces and runtime Engine support for Alexa features in the Auto SDK, including speech input and output, audio output, authorization, Alexa speaker, media playback, equalizer control, template and state rendering, local media sources, alerts, notifications, and Do Not Disturb (DND). -For Auto SDK API documentation, see the interface reference documentation: +### ![Alexa Auto SDK Engine](./assets/number-4.png) Navigation Module -* [Alexa Auto SDK for Android](https://alexa.github.io/alexa-auto-sdk/docs/android/) -* [Alexa Auto SDK for C++](https://alexa.github.io/alexa-auto-sdk/docs/cpp/) +The Navigation module (for [C++](./modules/navigation/README.md) or [Android](./platforms/android/modules/navigation/README.md)) includes platform interfaces and runtime Engine support for Alexa to interface with the onboard navigation system. -For UX design requirements, recommendations, and best practices, see the [Alexa Automotive design documentation](https://developer.amazon.com/docs/alexa-auto/about-this-guide.html). +### ![Alexa Auto SDK Engine](./assets/number-5.png) Phone Call Controller Module -## Important Considerations +The Phone Control module (for [C++](./modules/phone-control/README.md) or [Android](./platforms/android/modules/phonecontrol/README.md)) includes platform interfaces and runtime Engine support for Alexa to interface with the onboard telephony system. -### Security Best Practices +### Address Book Module + +The Address Book module (for [C++](./modules/address-book/README.md) or [Android](./platforms/android/modules/addressbook/README.md)) includes platform interfaces and runtime Engine support to augment the communications and navigation capabilities of Alexa with user data such as phone contacts and navigation favorites ("home", "work", etc.) + +### Code-Based Linking (CBL) Module + +The CBL module (for [C++](./modules/cbl/README.md) or [Android](./platforms/android/modules/cbl/README.md)) includes platform interfaces and runtime Engine support to implement the CBL mechanism of acquiring Login with Amazon (LWA) access tokens. + +### Alexa Presentation Language (APL) Module +The APL module (for [C++](./modules/apl/README.md) or [Android](./platforms/android/modules/apl/README.md)) includes platform interfaces and runtime Engine support to enable devices with graphical user interface (GUI) support to implement APL directives and events. + +>**Note:** APL rendering on the Android Sample App requires a component that is available by [request from your Amazon Solutions Architect (SA) or Partner Manager](./NEED_HELP.md#requesting-additional-functionality-whitelisting). + +### Messaging Module +The Messaging module (for [C++](./modules/messaging/README.md) or [Android](./platforms/android/modules/messaging/README.md)) includes platform interfaces and runtime Engine support for Short Message Service (SMS) capabilities of Alexa such as sending and reading text messages. + +### Car Control Module +The Car Control module (for [C++](./modules/car-control/README.md) or [Android](./platforms/android/modules/car-control/README.md)) enables your application to build a custom vehicle-control experience that allows the user to voice-control vehicle features using Alexa. + +### AmazonLite Wake Word Extension +Wake Word enables hands-free, voice-initiated interactions with Alexa. The Wake Word extension enables AmazonLite Wake Word support in the Auto SDK. + +### Alexa Communications Extension +The Alexa Communications extension enables integration with Alexa-to-Alexa calling, Alexa-to-PSTN calling, and messaging capabilities. + +### Local Voice Control (LVC) Extension +The Local Voice Control (LVC) extension provides car control, communication, navigation, and entertainment functionality, with and without an internet connection. It includes components that run an Alexa endpoint inside the vehicle's head unit. Local Voice Control is currently supported on Linux x86 64-bit, Linux ARM 32/64-bit, Android x86 64-bit, and Android ARM 32/64-bit platforms. + +### Device Client Metrics (DCM) Extension +The Device Client Metrics (DCM) extension enables logging and uploading Alexa Auto SDK metrics to the Amazon cloud. Voice request metrics, for example, include start and end timestamps of user and Alexa speech and user perceived latency (UPL) between the request and Alexa’s response. Metrics may be tagged Beta, Gamma, or Prod depending on the vehicle lifecycle. The DCM extension is available for all Linux and Android platforms. + +### Voice Chrome for Android Extension +The Voice Chrome extension adds Voice Chrome support to the Auto SDK for Android x86 64-bit and Android ARM 32/64-bit platforms. Voice Chrome provides a consistent set of visual cues representing Alexa attention state across a range of Alexa-enabled devices. The Voice Chrome extension includes a prebuilt Android AAR library for easy integration with your applications, as well as a patch to the Android Sample App that adds the Voice Chrome functionality. + +>**Note:** Auto SDK extensions are available by request. Contact your Amazon Solutions Architect (SA) or Partner Manager for more information. + +## Alexa Auto Client Service (AACS) +The Auto SDK includes AACS, an APK (Android package) that enables OEMs of Android-based devices to simplify the process of integrating the Auto SDK. After you install, configure, and initialize AACS, it communicates with the applications, providing an interface between the applications and various Alexa functions, such as navigation and car control. For more information about AACS, see the AACS [README](./platforms/android/alexa-auto-client-service/README.md). + +AACS requires the Alexa Auto Service Bridge (AASB) extension, which provides a message-based interface to the Auto SDK Engine. For more information about AASB, see the [AASB README](./extensions/aasb/README.md). + +## Security Best Practices All Alexa products are required to follow the [Security Best Practices for Alexa](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/avs-security-reqs.html). When building an Alexa experience using the Alexa Auto SDK, additionally adhere to the following security principles: * Protect configuration files for the Auto SDK Engine from tampering and inspection. * Protect configuration parameters, such as those found in Auto SDK Engine configuration files, from tampering and inspection, including but not limited to the following: SQLite database files, Unix Domain Sockets, wake word models, and metrics sink files. * Protect components used for the Local Voice Control (LVC) extension, including associated LVC language model packages (Linux) and APKs (Android), from tampering and inspection, including but not limited to the following: Unix Domain Sockets, model directories, skill and service executables, prompts and assets JSON files, and all files configuring these components. -* Follow additional SDK security best practices outlined [here](https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/overview.html#security-best-practices). \ No newline at end of file +* Your C++ implementation of Auto SDK interfaces must not retain locks, crash, hang, or throw exceptions. +* Use exploit mitigation flags and memory randomization techniques when you compile your source code to prevent vulnerabilities from exploiting buffer overflows and memory corruptions. + +## See Also +The following documents or websites provide more information about the Auto SDK. + +* [Getting Started Guide](./GETSTARTED.md) provides steps for getting started with the Auto SDK and for downloading extensions. +* [Change Log](./CHANGELOG.md) provides a summary of feature enhancements, updates, and resolved and known issues. +* [Android Sample App](./samples/android/README.md) and [C++ Sample App](./samples/cpp/README.md) READMEs provide release notes about the sample apps. +* For Auto SDK API documentation, see the interface reference documentation: + * [Alexa Auto SDK for Android](https://alexa.github.io/alexa-auto-sdk/docs/android/) + * [Alexa Auto SDK for C++](https://alexa.github.io/alexa-auto-sdk/docs/cpp/) +* [Migration Guide](./MIGRATION.md) describes how to migrate from one Auto SDK version to another. +* For UX design requirements, recommendations, and best practices, see the [Alexa Automotive design documentation](https://developer.amazon.com/docs/alexa-auto/about-this-guide.html). + diff --git a/SEQUENCE_DIAGRAMS.md b/SEQUENCE_DIAGRAMS.md index 3ede7911e..7dd785355 100644 --- a/SEQUENCE_DIAGRAMS.md +++ b/SEQUENCE_DIAGRAMS.md @@ -47,4 +47,4 @@ This diagram includes the actual names and syntax for the methods and functions 1. While in the listening state, audio data is sent to Alexa until the end of speech is detected. Once the end of speech is detected, Alexa sends a ```StopCapture``` directive to the Engine and the dialog state is changed to "thinking." Alexa then respond with additional directives in response to the speech request. -1. The application should continue to send audio to the Engine until ```stopAudioInput()``` is received. When wake word is enabled, this happens when the Engine is stopped, or when ```disableWakewordDetection()``` is explicitly called by the application. +1. The application should continue to send audio to the Engine until ```stopAudioInput()``` is received. When wake word is enabled, this happens when the Engine is stopped, or when wakeword detection is disabled explicitly by the application. diff --git a/assets/aac-seq-ttt.plantuml b/assets/aac-seq-ttt.plantuml new file mode 100644 index 000000000..9fa4d91e5 --- /dev/null +++ b/assets/aac-seq-ttt.plantuml @@ -0,0 +1,73 @@ +@startuml + +hide footbox + +skinparam sequence { +ArrowColor black +ActorBorderColor black +ActorBackgroundColor white +ActorFontName Arial +LifeLineBorderColor black +LifeLineBackgroundColor black +ParticipantBorderColor black +ParticipantBackgroundColor #eaf2f8 +} + +skinparam NoteBorderThickness 1 +skinparam NoteBorderColor black +skinparam NoteBackgroundColor #01cafc +skinparam NoteFontColor #bdf1fe + + +actor "**Driver**\n(tap to talk)" as Driver order 10 + +participant "**AlexaClientHandler**\naace::alexa::AlexaClient" as AlexaClient order 20 +participant "**SpeechRecognizerHandler**\naace::alexa::SpeechRecognizer" as SpeechRecognizer order 30 +participant "**AudioInputHandler**\naace::audio::AudioInput" as AudioInput order 32 +participant "**Microphone**\n(Native Implementation)" as Microphone order 35 +participant "**Alexa Auto SDK**\n**Engine**" as Engine order 100 #46c1cd +participant "**AVS**\n(Alexa endpoint)" as AVS order 150 #FFFFF + +Driver->SpeechRecognizer : Initiate tap to talk +SpeechRecognizer->Engine : tapToTalk() +note left +1 +end note + +Engine->AVS : Recognize(event) +AlexaClient<--Engine : dialogStateChanged(LISTENING) +Driver<--AlexaClient : Display Voice Chrome\nfor //listening// state +AudioInput<--Engine : startAudioInput() +note left #01cafc +2 +end note + +AudioInput->Microphone : Open micropohone +activate Microphone #add8e6 +loop until stopAudioInput() called + Driver->Microphone : //"What's the weather?"// + AudioInput<--Microphone : PCM data + AudioInput->Engine : write(data, size) + Engine->AVS : Write audio data +end +AVS-->Engine : StopCapture(directive) +SpeechRecognizer<--Engine : endOfSpeechDetected() +AudioInput<--Engine : stopAudioInput() +AudioInput->Microphone : Close microphone +deactivate Microphone +AlexaClient<--Engine : dialogStateChanged(THINKING) +note left #01cafc +3 +end note + +Driver<--AlexaClient : Display Voice Chrome\nfor //thinking// state + +legend right +|= Legend: | +|<#eaf2f8>OEM Implementation| +|<#46c1cd>Alexa Auto SDK Engine| +|<#add8e6>Audio input buffer processing flow| +endlegend + +@enduml + diff --git a/assets/aac-seq-ttt.png b/assets/aac-seq-ttt.png index 1c358ad0d1dc49c7527b07eec67bf35cb610d32a..59354048b3e207b3bf23479c158a78e369c636dc 100644 GIT binary patch literal 60400 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

FVhGqsHwUH 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 diff --git a/assets/aac-seq-wwe.plantuml b/assets/aac-seq-wwe.plantuml new file mode 100644 index 000000000..84dfd7439 --- /dev/null +++ b/assets/aac-seq-wwe.plantuml @@ -0,0 +1,98 @@ +@startuml +title Wakeword + +hide footbox + +skinparam sequence { +ArrowColor black +ActorBorderColor black +ActorBackgroundColor white +ActorFontName Arial +LifeLineBorderColor black +LifeLineBackgroundColor black +ParticipantBorderColor black +ParticipantBackgroundColor #eaf2f8 +} + +skinparam NoteBorderThickness 1 +skinparam NoteBorderColor black +skinparam NoteBackgroundColor #01cafc +skinparam NoteFontColor #bdf1fe + +actor "**Driver**\n(wakeword enabled)" as Driver order 10 + +participant "**AlexaClientHandler**\naace::alexa::AlexaClient" as AlexaClient order 20 +participant "**SpeechRecognizerHandler**\naace::alexa::SpeechRecognizer" as SpeechRecognizer order 30 +participant "**AudioInputHandler**\naace::audio::AudioInput" as AudioInput order 32 +participant "**Microphone**\n(Native Implementation)" as Microphone order 35 +participant "**Alexa Auto SDK**\n**Engine**" as Engine order 100 #46c1cd +participant "**AVS**\n(Alexa endpoint)" as AVS order 150 #FFFFF + +AudioInput<--Engine : startAudioInput() +note left +1 +end note + +AudioInput->Microphone : Open micropohone +activate Microphone #lightblue + +loop + ...Wait for wakeword interaction... + Driver->Microphone : //"Alexa"// + note left + 2 + end note + AudioInput<--Microphone : PCM data + AudioInput->Engine : write( data, size) +end + +SpeechRecognizer<--Engine : wakewordDetected() + +alt wakewordDetected success + SpeechRecognizer->Engine : true + +Engine->AVS : Recognize(event) +AlexaClient<--Engine : dialogStateChanged(LISTENING) +Driver<--AlexaClient : Display Voice Chrome\nfor //listening// state + +loop +Driver->Microphone : //"What time is it?"// +note left +3 +end note + AudioInput<--Microphone : PCM data + AudioInput->Engine : write( data, size) +Engine->AVS: Write audio data +end + +AVS-->Engine : StopCapture(directive) +SpeechRecognizer<--Engine : endOfSepeechDetected() +AlexaClient<--Engine : dialogStateChanged(THINKING) +Driver<--AlexaClient : Display Voice Chrome\nfor //thinking// state +...Wait for downchannel Alexa response... + +else wakewordDetected failure + SpeechRecognizer->Engine : false + + +end + +AudioInput<--Engine : stopAudioInput() +note left +4 +end note + +AudioInput->Microphone : Close microphone +deactivate Microphone + +legend right +|= Legend: | +|<#eaf2f8>OEM Implementation| +|<#0096a5>Alexa Auto SDK Engine| +|<#add8e6>Audio input buffer processing flow| +endlegend + +@enduml + + + diff --git a/assets/aac-seq-wwe.png b/assets/aac-seq-wwe.png index a88a77687db47f6ef573296a92fe7e871a2c9b55..38498eb6e5a1dfc092e47dcbe0205b7fe813ea03 100644 GIT binary patch literal 78705 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

&o>%r)F5D8A0_f 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 z =?%PT<^=&{qA7C{DqnaP}lcg<554n>}cexg;R`Dn+DKnF6DXXjK^^ADzjqfo5; zTNQSiUBv97xQW}YBk?){yuH_>dN-}FmE9xq`425E* zdF_?c<%6x*W!KB6z&g*Xbl=lA{*G46_{GUy+tVAz$6xb0*Dy<2xTiMS>NPx!M{sKl z#;aGJAyvHBqc2D2&!AuYql8)=crCc}(Th*AIETlz2!sN zx>0;~V`ao}dfF+iX~zw^YiXr#7v?940JZuozdSVLY9?IE9=(ZGoEy-m*l`J1%JS0Z z&JUUJz@mLa)nLTOg$-ULVAf6GEK8!TzdRYS#H_yg)YY6R(|@MettMH-B$Au2H&;+G zhu*dBwJ7Q|Xjll2a>}Wk(_6&**dpKBs;e!Jev)2?A!qt95gp^bAfxm$g}w{KU8?mL zsP)!GSgc?FA8=fdileZUHMDniDCSec_~U;(Z;eZx#}pQwTM_2ATB@2H07&N#Z8^>S zv;NlJzQ&b)e%XU|-~rHus5#>+(5YsLb&$z6WU#3>t=_5$OiX4B)n9A8=%JGrTf<2R zeH~ch>oW=^i4!B3XF12mWnD{&F2QRz^9^`ay3?E-vNp{r%m%0j5~?nfj5=>zTr1u9 z{Dlz~mgdfYSD2^5nx?w7Jm8Xz&ycks^_69bGLv*d3 z^x<*6NNPDroZ$u1tKP9E`7RfovS(pADf@yl1RyX{IlF7R)U|37&r-U4GYSVRl7HX* zzkzjrsTTL`uVj+=AKeT3;D`NNLRjv%-b-oaHvEc{v87Xy-ZmLpii=a=69M{VJq0tR zyOaGo{nq8#;llJ&1z-KycW*ff?FxadHbNx`cR1n{>piRd?aR}2yFhbpGEtFll6R!< zaOBvGejDk&gXB!+<(``wB!cG8%3j}N(?i~4;Xt?=XP8u?jxdNWrUQ2Lva*NcJ>B6v zD^S|T)IUJ609YplJwsc7e#Ab}5TbmUewngg%F#BilRmD4i zyOLTv|$FjDI3=t#B(A!qpul1h|-d-v&A_?tRsW#l@753FWW z!{er-5(mdX;Ug#9(1Rx6u|oz-Q#o6M{|7XH`_zWVTqL;vK_~vZ`7` zWcMohX7*P=1%nfabfM{xP-nuZha_vbaKmPW**JDZA1mWbLFccUiEIBb_o|uC>-)9D zohfS5-RzzOCew_~a?g0*s&H%qi77}pr(r7PPyJQ??9|Ljr~d8(+*U}c1(vjSN!(V0 zL@q9rt%nX)1lt=Hdoc{N>$^2?!e$mX4Gd})e`! z2z)f;vQLM1K66q>XZHb|q{mmQxXkzlZ!(#%54Cug2><{9 literal 101233 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 R1iyhtPD&Y8Ch;ub{{a(jCcppy diff --git a/builder/README.md b/builder/README.md index 98a64fc61..851eea658 100644 --- a/builder/README.md +++ b/builder/README.md @@ -1,55 +1,60 @@ # Build the Alexa Auto SDK -The `builder` directory contains a collection of software which is required to build the Alexa Auto SDK software components for various target platforms. - -**Table of Contents** - -* [Overview](#overview) -* [General Build Requirements](#general-build-requirements) -* [Using the Auto SDK Builder](#using-the-auto-sdk-builder) -* [Using the Auto SDK OE Layer](#using-the-auto-sdk-oe-layer) - -## Overview - -You can build the Alexa Auto SDK software components using either the Auto SDK Builder or using the Auto SDK OE layer. - -* The Alexa Auto SDK Builder is based on [OpenEmbedded](https://www.openembedded.org/) (OE), which provides a simple way to cross compile all the Alexa Auto SDK software components for various target platforms and is recommended if you want to use platforms such as Android and QNX. To get started using the Auto SDK builder, see [Using the Auto SDK Builder](#using-the-auto-sdk-builder). - -* For target platforms already based on OpenEmbedded infrastructure, such as [Yocto/Poky](https://www.yoctoproject.org/), you can use an OE-generated SDK or alternatively you can use `meta-aac` layer to build and install the Alexa Auto SDK into your system. For details, see [Using the Auto SDK OE Layer](#using-the-auto-sdk-oe-layer). +The `builder` directory contains a collection of software which is required to build the Alexa Auto SDK components for various target platforms. + + +## Table of Contents +- [Overview](#overview) +- [General Build Requirements and Recommendations](#general-build-requirements-and-recommendations) +- [Supported Platforms and Targets](#supported-platforms-and-targets) +- [Build Dependencies and License Information](#build-dependencies-and-license-information) +- [Using the Auto SDK Builder](#using-the-auto-sdk-builder) + - [Preparing the Host](#preparing-the-host) + - [Using the Auto SDK Builder](#using-the-auto-sdk-builder) + - [Building AACS Using the Auto SDK Builder (Local Build Flavor)](#building-aacs-using-the-auto-sdk-builder-local-build-flavor) + - [Building AACS Using the Pre-built AARs (Remote Build Flavor)](#building-aacs-using-the-pre-built-aars-remote-build-flavor) + - [Builder Setup on a Desktop Linux Host](#builder-setup-on-a-desktop-linux-host) + - [Builder Setup in a Docker Environment](#builder-setup-in-a-docker-environment) + - [Additional Setup for Poky Linux Targets](#additional-setup-for-poky-linux-targets) + - [Additional Setup for Generic Linux ARM Targets](#additional-setup-for-generic-linux-arm-targets) + - [Additional Setup for Android Targets](#additional-setup-for-android-targets) + - [Builder Command Arguments](#builder-command-arguments) + - [Clean build](#clean-build) + - [Building with mbedTLS](#building-with-mbedtls) +- [Using the Auto SDK OE Layer](#using-the-auto-sdk-oe-layer) + - [Adding layers and module recipes](#adding-layers-and-module-recipes) + - [cURL with ngHTTP2](#curl-with-nghttp2) + +## Overview + +There are two methods to build the Alexa Auto SDK: + +* [Auto SDK Builder](#using-the-auto-sdk-builder) (Recommended): The builder is based on [OpenEmbedded (OE)](https://www.openembedded.org/), which provides a simple way to cross compile all the Auto SDK components for various target platforms. If you want to build the Auto SDK with Alexa Auto Client Service (AACS), you must use this method. + +* [Auto SDK OE layer](#using-the-auto-sdk-oe-layer): For target platforms already based on the OpenEmbedded infrastructure, such as [Yocto/Poky](https://www.yoctoproject.org/), you can use an OE-generated SDK or a `meta-aac` layer to build and install the Auto SDK. + +>**Note**: For Android and QNX targets, use the Auto SDK Builder because the Auto SDK OE Layer method may require advanced OpenEmbedded system administration skills. + +The Auto SDK home directory is the directory to which you clone the `alexa-auto-sdk` repository and is represented as `${AAC_SDK_HOME}` in this document. -## General Build Requirements +## General Build Requirements and Recommendations -You can build on a Linux, Unix, or macOS host of your choice. +You can build the Auto SDK on a Linux, Unix, or macOS host. The builder can run either natively on a Linux host or in a Docker environment (recommended). For information about Docker, see the [Docker documentation](https://docs.docker.com/get-docker). -However, we recommend and support running a Docker environment with the following configuration: +The following list describes the required host configuration: -* macOS Sierra or Ubuntu 16.04 LTS +* Operating system: + * macOS Sierra + * Ubuntu 16.04 LTS or Ubuntu 18.04 LTS * Processor: 2.5 GHz * Memory: 16 Gb -* Storage: 1 Gb+ available to use. - -### Build Dependencies and License Information - -During the build time, the following dependencies are fetched and built for the target platform by the Alexa Auto SDK Builder. Please refer to each of the individual entities for the particular licenses. - -* [AVS Device SDK v1.19.1](https://github.com/alexa/avs-device-sdk/) - * [cURL 7.65.3](https://curl.haxx.se/) - * [ngHTTP2 1.39.1](https://github.com/nghttp2/nghttp2) - * [SQLite3 3.20.0](https://www.sqlite.org/) or later - * [OpenSSL 1.1.0](https://www.openssl.org/) or later -* [Google Test v1.8.0](https://github.com/google/googletest) -* [libopus 1.3.1](https://opus-codec.org/) -* [OpenEmbedded-Core Rocko](https://www.openembedded.org/wiki/OpenEmbedded-Core) -* [BitBake](https://www.yoctoproject.org/software-overview/) -* [Android Toolchain](https://www.android.com/) - * [NDK r20](https://developer.android.com/ndk/) - * [SDK Tools 26.0.1](https://developer.android.com/studio/releases/sdk-tools) +* Storage: 1 Gb+ available to use -> **Note**: that *OpenEmbedded-Core* will fetch and build additional components for preparing the dedicated toolchain for your environment (Such as *GNU Binutils*). Please refer to the [Yocto project](https://www.yoctoproject.org/software-overview/) to understand how it works. +For QNX targets, you must install the [QNX 7.0 SDP](http://blackberry.qnx.com/en/sdp7/sdp70_download) on your host. -### Supported Target Platforms +## Supported Platforms and Targets -The Alexa Auto SDK is supported on the following platforms: +You can build the Auto SDK for the following operating systems (platforms) and hardware architectures (targets): * Android 5.1 Lollipop API Level 22 or higher. * ARM 32-bit @@ -58,138 +63,209 @@ The Alexa Auto SDK is supported on the following platforms: * QNX 7.0 * ARM 64-bit * x86 64-bit -* AGL - * ARM 64-bit * Generic Linux * x86 64-bit * Poky Linux * ARMv7a (+NEON) * AArch64 -> **Note**: For Android targets, pre-built platform AARs for the default Auto SDK modules are available in the [JCenter repo](https://jcenter.bintray.com/com/amazon/alexa/aace/). Read the instructions about downloading and using the AARs in the [Android Sample App README](../samples/android/README.md). +## Build Dependencies and License Information -## Using the Auto SDK Builder +During build time, the Auto SDK Builder fetches and builds the dependencies appropriate for the platform. For license information about the dependencies, go to the following websites: -You can run the Alexa Auto SDK Builder either natively on a Linux host or in a Docker environment. If you are using macOS, you can run the Alexa Auto SDK Builder using [Docker for Mac](https://www.docker.com/docker-mac). +* [AVS Device SDK v1.19.1](https://github.com/alexa/avs-device-sdk/) + * [cURL 7.65.3](https://curl.haxx.se/) + * [ngHTTP2 1.39.1](https://github.com/nghttp2/nghttp2) + * [SQLite3 3.20.0](https://www.sqlite.org/) or later + * [OpenSSL 1.1.0](https://www.openssl.org/) or later +* [Google Test v1.8.0](https://github.com/google/googletest) +* [libopus 1.3.1](https://opus-codec.org/) +* [OpenEmbedded-Core Rocko](https://www.openembedded.org/wiki/OpenEmbedded-Core) +* [BitBake](https://www.yoctoproject.org/software-overview/) +* [Android Toolchain](https://www.android.com/) + * [NDK r20](https://developer.android.com/ndk/) + * [SDK Tools 26.0.1](https://developer.android.com/studio/releases/sdk-tools) + +> **Note**: OpenEmbedded-Core fetches and builds additional components to prepare the dedicated toolchain for your environment (for example, GNU Binutils). For information about how OpenEmbedded-Core works, see the [Yocto project](https://www.yoctoproject.org/software-overview/). ->**Note:** For QNX targets, you must install the [QNX 7.0 SDP](http://blackberry.qnx.com/en/sdp7/sdp70_download) within your host. +## Using the Auto SDK Builder +This section describes how to build the Auto SDK with the builder. -Follow these steps to use the Alexa Auto SDK Builder OE-based building system to build the complete Alexa Auto SDK software for various cross targets: +### Preparing the Host +Depending on your host, you might need to perform builder setup before using the builder, as described in the following sections: -1. **Perform any setup necessary for your environment**. * [Builder Setup on a Desktop Linux Host](#builder-setup-on-a-desktop-linux-host) * [Builder Setup in a Docker Environment](#builder-setup-in-a-docker-environment) * [Additional setup for Poky Linux targets](#additional-setup-for-poky-linux-targets) * [Additional setup for Generic Linux ARM targets](#additional-setup-for=generic-linux-arm-targets) * [Additional Setup for Android Targets](#additional-setup-for-android-targets) -2. **Issue the following command to run the Auto SDK Builder and generate a complete target installation package** (where `AAC_SDK_HOME` is the location into which you've installed the Alexa Auto SDK). See [Builder Command Arguments](#builder-command-arguments) for details about the `platform`, `target` and `options` arguments. +### Using the Auto SDK Builder +This section describes how to build the Auto SDK and install the built package. - ``` -$ ${AAC_SDK_HOME}/builder/build.sh -t [options] -``` - After you successfully build the Auto SDK, the output directory `deploy` will be generated under the `${AAC_SDK_HOME}/builder` directory. +#### Running the Build Script +Enter the following command to build the Auto SDK and generate an installation package: - >**Note:** The first run might take up to an hour to complete while OpenEmbedded generates all necessary toolchains internally. +`$ ${AAC_SDK_HOME}/builder/build.sh -t [options]` + +See [Builder Command Arguments](#builder-command-arguments) for details about the `platform`, `target` and `options` arguments. This command creates the `deploy` directory in `${AAC_SDK_HOME}/builder`. With the `-g` option, the builder creates an archive named `aac-sdk-build--dbg.tar.gz`, which contains debug symbols for later GDB use. -3. **Install the built package for your target platform**. +>**Note:** The first run might take up to an hour to complete while OpenEmbedded generates all necessary toolchains internally. +#### Installing the Built Package on Android Targets +The output directory contains the .aar file (AAR) for each module and a sample-core.aar file required to generate the Android Sample App. Pre-built default platform AARs for the default Auto SDK modules and the sample-core AAR are also available from the [JCenter repo](https://jcenter.bintray.com/com/amazon/alexa/aace/). You can add these AARs as dependencies of your Android project instead of building the AARs with the Auto SDK Builder. - * **For Android targets** - - Within the output directory, you will find the .aar file (AAR) for each module as well as an sample-core.aar file that is required to generate the Android Sample App. Pre-built default platform AARs for the default Auto SDK modules and the sample-core AAR are also available from the [JCenter repo](https://jcenter.bintray.com/com/amazon/alexa/aace/). You can add these AARs as dependencies of your Android project instead of building the AARs yourself with the Auto SDK Builder. +>**Note:** If you want to implement any optional modules (such as wake word support, Alexa Communications, Local Voice Control (LVC), Device Client Metrics (DCM), or Voice Chrome), you must use the AARs generated by the Auto SDK Builder. The prebuilt platform AARs and sample-core AAR available in JCenter are for the default modules only. - >**Note:** If you want to implement any optional modules (such as wake word support, Alexa Communications, Local Voice Control (LVC), Device Client Metrics (DCM), or Voice Chrome), you must use the AARs generated by the Alexa Auto SDK Builder. The prebuilt platform AARs and sample-core AAR available in JCenter are for the default Auto SDK modules only. +#### Installing the Built Package on Linux or QNX Targets - * **For Linux/QNX targets** +The output directory contains the tar.gz archive, `aac-sdk-build-.tar.gz`. You can upload this package to your target. - Within the output directory, you will find the tar.gz archive `aac-sdk-build-.tar.gz`. You can upload this package to your actual target hardware. +The `aac-sdk-build` directory contains the following build artifacts: - `aac-sdk-build` contains the following build artifacts: - - * `/opt/AAC/bin/`: *cURL* binaries with *ngHTTP2* enabled - * `/opt/AAC/include/`: All dev headers for all dependencies. - * `/opt/AAC/lib/`: All shared libraries, including *AVS Device SDK*, *cURL*, *ngHTTP2*. - * `/opt/AAC/share/`: CMake files for building external Alexa Auto SDK modules. + * `/opt/AAC/bin/`: *cURL* binaries with *ngHTTP2* enabled. + * `/opt/AAC/include/`: All dev headers for all dependencies. + * `/opt/AAC/lib/`: All shared libraries, including *AVS Device SDK*, *cURL*, *ngHTTP2*. + * `/opt/AAC/share/`: CMake files for building external Alexa Auto SDK modules. - If you've built the `native` target, then you can install these build artifacts directly on your Linux PC. +If you build for the `native` target, you can install these build artifacts directly on your Linux host. + +### Building AACS Using the Auto SDK Builder (Local Build Flavor) +If your platform is Android, you can build the Auto SDK with AACS. When running the builder script, you must specify the `--aacs-android` option. The following example shows how to build the Auto SDK for the `androidarm` target with AACS and the optional Alexa Communications and Local Voice Control modules: - >**Note**: If you've built Auto SDK with the `-g` option, you will find an extra tar.gz archive `aac-sdk-build--dbg.tar.gz`, which contains debug symbols for later GDB use. +`$ ${AAC_SDK_HOME}/builder/build.sh android -t androidarm --aacs-android extensions/extras/alexacomms extensions/extras/local-voice-control` +See [Builder Command Arguments](#builder-command-arguments) for details about the `platform`, `target` and `options` arguments. The builder creates the `builder/deploy/aar`, which contains the AARs, and `builder/deploy/apk`, which contains the AACS APK. With the `-g` option, the command also creates an archive named `aac-sdk-build--dbg.tar.gz`, which contains debug symbols for later GDB use. -### Builder Setup on a Desktop Linux Host -To run the Alexa Auto SDK Builder natively, follow the guide below. **Ubuntu 18.04 LTS** and **Ubuntu 16.04 LTS** were tested and are recommended as the Linux host environment. +>**Note:** You do not need to specify the AASB extension when building the Auto SDK with AACS. The AASB extension is included by default. -#### Set up OpenEmbedded/BitBake -First you will need to set up [OpenEmbedded-Core](https://www.openembedded.org/wiki/OpenEmbedded-Core). +>**Note:** The first run might take up to an hour to complete while OpenEmbedded generates all necessary toolchains internally. -The following example installs OpenEmbedded-Core and BitBake under your home directory. Note that the variable `OE_CORE_PATH` must be pointed at the OpenEmbedded-Core source directory. +The unsigned version of the AACS APK is in `builder/deploy/apk`. Go to [Signing the AACS APK](#signing-the-aacs-apk) for information about signing the APK. + +### Building AACS Using the Pre-built AARs (Remote Build Flavor) +The AACS Gradle build is configured to use JCenter to always pull the latest release artifacts during compilation. The pre-built platform AARs for the default modules and the AARs required to build AACS are available in the JCenter repo. To run the build, enter the following commands: ``` -$ cd ~ -$ git clone git://git.openembedded.org/openembedded-core oe-core -b rocko -$ cd oe-core -$ git clone git://git.openembedded.org/bitbake -b 1.36 -$ export OE_CORE_PATH=$(pwd) + $ cd ${AAC_SDK_HOME}/platforms/android/alex-auto-client-service/android-service + $ gradle assembleRemoteRelease ``` -The minimum requirements to run OpenEmbedded on an Ubuntu Linux host are as follows: + +#### Signing the AACS APK +To sign the AACS APK, follow these steps: + +1. Create a custom keystore using the following command, or skip to the next step and use an existing keystore: + + `keytool -genkey -v -keystore .keystore -alias -keyalg RSA -keysize 2048 -validity 10000` + +2. Enter the following command to change to the directory where the APK is: + + `cd ${AAC_SDK_HOME}/builder/deploy/apk` + +3. Enter one of the following commands to optimize the APK files, depending on whether you have the local or remote build flavor: + + `zipalign -v -p 4 service-local-release-unsigned.apk service-local-release-unsigned-aligned.apk` + `zipalign -v -p 4 service-local-release-unsigned.apk service-remote-release-unsigned-aligned.apk` + + `zipalign` is included in the Android SDK Build Tools. On a Mac, it is usually located in this directory: + + ~/Library/Android/sdk/build-tools//zipalign + +4. Enter one of the following commands to sign the APK by using your keystore, depending on whether you have the local or remote build flavor: + + `apksigner sign --ks /.keystore --ks-pass pass: --out service-app-release.apk service-local-release-unsigned-aligned.apk` + `apksigner sign --ks /.keystore --ks-pass pass: --out service-app-release.apk service-remote-release-unsigned-aligned.apk` + + When prompted, enter the passphrase that you set when you created the keystore. The `apksigner` tool is in Android SDK Build Tools 24.0.3 or higher. On a Mac, it is usually in the following directory: + + ~/Library/Android/sdk/build-tools//apksigner + +### Builder Setup on a Desktop Linux Host +Follow these steps to prepare for building the Auto SDK natively on the Linux host: + +1. Set up [OpenEmbedded-Core](https://www.openembedded.org/wiki/OpenEmbedded-Core). The following example installs `OpenEmbedded-Core` and `BitBake` under your home directory. The variable `OE_CORE_PATH` must point to the `OpenEmbedded-Core` source directory. + +``` + $ cd ~ + $ git clone git://git.openembedded.org/openembedded-core oe-core -b rocko + $ cd oe-core + $ git clone git://git.openembedded.org/bitbake -b 1.36 + $ export OE_CORE_PATH=$(pwd) +``` +2. Enter the following command to ensure that the Ubuntu host meets the minimum requirements to run `OpenEmbedded`: ``` -$ apt-get install chrpath diffstat gawk texinfo \ -python python3 wget unzip build-essential cpio \ -git-core libssl-dev quilt cmake \ -libsqlite3-dev libarchive-dev python3-dev \ -libdb-dev libpopt-dev zlib1g-dev + $ apt-get install chrpath diffstat gawk texinfo \ + python python3 wget unzip build-essential cpio \ + git-core libssl-dev quilt cmake \ + libsqlite3-dev libarchive-dev python3-dev \ + libdb-dev libpopt-dev zlib1g-dev ``` ->**Note:** For Linux targets, you must install libssl-dev as well: +3. For a Linux target, enter the following command to install `libssl-dev`: ``` -$ apt-get install libssl-dev + $ apt-get install libssl-dev ``` -### Builder Setup in a Docker Environment +### Builder Setup in a Docker Environment + +To use the builder on a macOS host, install [Docker Community Edition (CE) for Mac](https://www.docker.com/docker-mac) according to its official guide. -To use Builder on macOS hosts, you must install [Docker Community Edition (CE) for Mac](https://www.docker.com/docker-mac) according to its official guide. +Follow these important guidelines: -Upon first run, Builder builds the Docker image `aac/ubuntu-base:` and creates a dedicated Docker volume `buildervolume` to run the Alexa Auto SDK Builder in your Docker environment. This might take up to an hour to complete. +* If you are upgrading from Auto SDK v1.6.0 or earlier to Auto SDK v2.0.0 or later, be sure to clean the `buildervolume` Docker volume before performing the upgrade. ->**Note:** If you are upgrading from Auto SDK v1.6.0 or earlier to Auto SDK v2.0.0 or later, be sure to clean the `buildervolume` Docker volume before performing the upgrade. +* To build for QNX targets on a macOS host, you must install QNX 7.0.0 SDP within a **case-sensitive** file system, using additional Linux installation tools. You may need to use an external drive for installation because your system file system is NOT case-sensitive by default. + +* When compiling the Auto SDK for the first time, the builder instantiates the Docker environment and starts building. On macOS, the builder might crash with this error message: + + `g++: internal compiler error: Killed (program cc1plus)` + + This error occurs when Docker runs out of memory. By default, Docker is set to use 2 GB of memory, which is sufficient on a host with 2 cores. If your host has more than 2 cores, allocate 6 GB to Docker to resolve this issue. ->**IMPORTANT NOTE for macOS:** If you are trying to build for QNX targets on a macOS host, you must install QNX 7.0.0 SDP within a **case-sensitive** file system, using additional Linux installation tools. You may need to use an external drive for installation since your system file system is NOT case-sensitive by default. +Upon first run, the builder builds the Docker image `aac/ubuntu-base:` and creates a dedicated Docker volume `buildervolume` to run the Auto SDK Builder in your Docker environment. This might take up to an hour to complete. -### Additional setup for Poky Linux targets -If you are building a Poky Linux ARM target, make sure you have the appropriate toolchain for your target platform prior to running the Alexa Auto SDK Builder. For example, if you are building a Poky Linux ARM target `pokyarm64` on an Ubuntu system you can download and run the [Poky ARM toolchain](http://downloads.yoctoproject.org/releases/yocto/yocto-2.6.1/toolchain/x86_64/poky-glibc-x86_64-core-image-sato-aarch64-toolchain-2.6.1.sh). +### Additional Setup for Poky Linux Targets +To build a Poky Linux ARM target, make sure you have the appropriate toolchain for your target platform prior to running the Auto SDK Builder. For example, if you are building a Poky Linux ARM target `pokyarm64` on an Ubuntu system, you can download and run the [Poky ARM toolchain](http://downloads.yoctoproject.org/releases/yocto/yocto-2.6.1/toolchain/x86_64/poky-glibc-x86_64-core-image-sato-aarch64-toolchain-2.6.1.sh). -Auto SDK Builder will use `/opt/poky/2.6.1` as a root SDK directory by default. You can change this behavior with the `--poky-sdk` option. +Auto SDK Builder uses `/opt/poky/2.6.1` as a root SDK directory by default. You can change this behavior with the `--poky-sdk` option. -### Additional setup for Generic Linux ARM targets +### Additional Setup for Generic Linux ARM Targets #### Linaro Toolchain >**Note:** The Linaro Linux targets are available as previews only and have not been tested fully. -Make sure to install the following prerequisites on your host: +A Linaro Linux target requires the [Linaro Linux targeted binary toolchain](https://www.linaro.org/downloads/). Version `gcc-linaro-7.4.1-2019.02` is recommended. -* [Linaro Linux targeted binary toolchain](https://www.linaro.org/downloads/) (Version `gcc-linaro-7.4.1-2019.02` is recommended) +Linaro toolchains are typically named in the following format: -Linaro toolchains are typically named in the following format: `--` (e.g. `gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf`) +`--` -The Auto SDK Builder will try to find the Linaro toolchain in the above format, under the `${HOME}` directory by default. For ARMv7A HF targets, you should install the toolchain in `${HOME}/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf`. +The following example shows a Linaro toolchain: -To change this behavior, you should use the `--linaro-prefix` option to specify a prefix in `/-` format. (Defaults to `${HOME}/gcc-linaro-7.4.1-2019.02-`, with `-` determined by the Auto SDK Builder.) +`gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf`)` + +The Auto SDK Builder tries to find the Linaro toolchain in this format, under the `${HOME}` directory, by default. For ARMv7A HF targets, install the toolchain in `${HOME}/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf`. + +To change this behavior, use the `--linaro-prefix` option to specify a prefix in the following format: + +`/-` + +The default prefix is `${HOME}/gcc-linaro-7.4.1-2019.02-`. The `-` portion following the prefix is determined by the Auto SDK Builder. #### Cross sysroots -Additionally, you need the cross sysroot directory for your cross targets. The Auto SDK Builder will try to find sysroot under the `${HOME}/sysroots` directory by default. The Sysroot directory name must match the `` value from the toolchain. For ARMv7A HF targets, you should install your copy of sysroot in `${HOME}/sysroots/arm-linux-gnueabihf`. +Additionally, you need the cross `sysroot` directory for your cross targets. The Auto SDK Builder tries to find `sysroot` under the `${HOME}/sysroots` directory by default. The `sysroot` directory name must match the `` value from the toolchain. For ARMv7A HF targets, install your copy of `sysroot` in `${HOME}/sysroots/arm-linux-gnueabihf`. -To change this behavior, you should specify the search path via the `--linaro-sysroots` option. (Defaults to `${HOME}/sysroots`). +To change this behavior, specify the search path via the `--linaro-sysroots` option. The default search path is `${HOME}/sysroots`. -### Additional Setup for Android Targets -* Make sure to install the following prerequisites on your host: +### Additional Setup for Android Targets +* Install the following required software on your host: * Android Studio 3.4.1+ * Gradle 5.6.4 or above - >**Note:** You must ensure that the Gradle version you are using is compatible with the Android Studio version you are using. See the [Android Gradle Plugin Release Notes](https://developer.android.com/studio/releases/gradle-plugin#updating-gradle) for information about matching Android Studio versions to Gradle versions. + >**Note:** You must ensure that your Gradle version is compatible with the Android Studio version that you use for building the Auto SDK. See the [Android Gradle Plugin Release Notes](https://developer.android.com/studio/releases/gradle-plugin#updating-gradle) for information about matching Android Studio versions to Gradle versions. * *(macOS host only)* `gsed`, `gfind`, and `coreutils`

You can use Homebrew to install the required macOS prerequisites: @@ -198,7 +274,7 @@ To change this behavior, you should specify the search path via the `--linaro-sy brew install gnu-sed findutils coreutils ``` -* Set the `ANDROID_HOME`to Android SDK Path. For example: +* Set the `ANDROID_HOME`to Android SDK path. For example: ``` $ export ANDROID_HOME=~/User//Android/sdk @@ -206,7 +282,7 @@ To change this behavior, you should specify the search path via the `--linaro-sy * Make sure to accept the licenses in the SDK Manager. -### Builder Command Arguments +### Builder Command Arguments #### `platform` The following `platform` values are available: @@ -214,12 +290,11 @@ The following `platform` values are available: * `linux` for Linux targets * `android` for Android targets * `qnx7` for QNX7 targets -* `agl` for Automotive Grade Linux targets #### `target` The table below lists the `target` values available to specify the cross compilation target. -You must specify at least one `target`. For multiple targets, use a comma-separated list; for example: +You must specify at least one `target`. For multiple targets, use a comma-separated list as in the following example: ``` $ ${AAC_SDK_HOME}/builder/build.sh linux -t native,pokyarm,pokyarm64 @@ -237,28 +312,29 @@ $ ${AAC_SDK_HOME}/builder/build.sh linux -t native,pokyarm,pokyarm64 | Android x86-64 | `android` | `androidx86-64` | | QNX AArch64 | `qnx7` | `qnx7arm64` | | QNX x86-64 | `qnx7` | `qnx7x86-64` | -| AGL AArch64 | `agl` | `aglarm64` | +| >**Note:** The `linaroarmel` and `linaroarmhf` targets are available as previews only and have not been tested fully. -For all other targets/toolchains, please refer to the files `meta-aac-builder/conf/machine/*.conf`. Those targets are provided by default for Poky-based Linux systems. +For all other targets or toolchains, see the files `meta-aac-builder/conf/machine/*.conf`. Those targets are provided by default for Poky-based Linux systems. #### `options` -The availabe `options` include: - -* `-h,--help` to show full available options. -* `-g,--debug` option to build with debugging options. -* *(Android targets only)* `--android-api ` option to explicitly specify Android API level. The default is `22`. -* *(QNX7 targets only)* `--qnx7sdp-path ` option to specify QNX 7.0.0 SDP installation (in host). If you run Builder within Docker environment, host QNX SDP tools are always used. So make sure you have installed Linux tools within SDP even if your host is macOS. -* *(Poky Linux & AGL targets only)* `--pokysdk-path ` option to specify Poky SDK installation root path. -* *(Generic Linux ARM targets only)* `--linaro-prefix ` option to specify the path where the Linaro toolchain is located. See the section *Additional setup for Generic Linux ARM targets* above for the details. -* *(Generic Linux ARM targets only)* `--linaro-sysroots ` option to specify the path where the cross sysroot directories are located. See the section *Additional setup for Generic Linux ARM targets* above for the details. -* `--default-logger-enabled ` option to enable/disable the default engine logger ( `On` | `Off` ). This default value is `On`. If you enable the default Engine logger, you must also set the `--default-logger-level ` and `--default-logger-sink ` options, either explicitly or by accepting the default values. -* `--default-logger-level ` option to set the logger level for the default engine logger ( `Verbose` | `Info` | `Metric` | `Warn` | `Error` | `Critical` ). The default value is `Info` for release builds, and `Verbose` for debug builds. -* `--default-logger-sink ` option to set the logger sink for the default engine logger ( `Console` | `Syslog` ). The default value is `Syslog` for Android build targets, and `Console` for all other build targets. -* `--enable-sensitive-logs ` option to enable or disable the inclusion of sensitive data in debugging logs. The default value is `Off`. If you enable sensitive logs, you must also build with debugging options (`--debug`). - - >**Important:** If you enable sensitive logs, make sure you redact any sensitive data if posting logs publicly. +The following list describes the available `options`: + +* `-h,--help`: Show full available options. +* `-g,--debug`: Build with debugging options. +* *(Android targets only)* `--android-api `: Explicitly specify the Android API level. The default is `22`. +* *(QNX7 targets only)* `--qnx7sdp-path `: Specify QNX 7.0.0 SDP installation (in host). If you run the builder within the Docker environment, host QNX SDP tools are always used. So make sure you have installed Linux tools within SDP even if your host is macOS. +* *(Poky Linux target only)* `--pokysdk-path `: Specify Poky SDK installation root path. +* *(Generic Linux ARM targets only)* `--linaro-prefix `: Specify the path where the Linaro toolchain is located. See the section *Additional setup for Generic Linux ARM targets* for details. +* *(Generic Linux ARM targets only)* `--linaro-sysroots `: Specify the path where the cross `sysroot` directories are located. See the section *Additional setup for Generic Linux ARM targets* for details. +* `--default-logger-enabled `: Enable/disable the default engine logger ( `On` | `Off` ). The default value is `On`. If you enable the default Engine logger, you must also set the `--default-logger-level ` and `--default-logger-sink ` options, either explicitly or by accepting the default values. +* `--default-logger-level `: Set the logger level for the default engine logger ( `Verbose` | `Info` | `Metric` | `Warn` | `Error` | `Critical` ). The default value is `Info` for release builds, and `Verbose` for debug builds. +* `--default-logger-sink `: Set the logger sink for the default engine logger ( `Console` | `Syslog` ). The default value is `Syslog` for Android build targets, and `Console` for all other build targets. +* `--enable-sensitive-logs `: Enable or disable the inclusion of sensitive data in debugging logs. The default value is `Off`. If you enable sensitive logs, you must also build with debugging options (`--debug`). + >**Important:** If you enable sensitive logs, make sure you redact any sensitive data if posting logs publicly. + +* `--aacs-android`: Build AACS including the required components AASB, IPC, and constants. ### Clean build @@ -268,28 +344,27 @@ To build cleanly, use the following command to remove all caches. $ ./build.sh clean ``` ->**Tip**: The `build.sh` script typically performs a clean build. In most situations there is no need for a more thorough clean. When you use the `clean` option, the OpenEmbedded build cache used for building is purged. As a result, the next build may take up to an hour to complete. +>**Tip**: The `build.sh` script typically performs a clean build. In most situations there is no need for a more thorough clean. Using the `clean` option purges the `OpenEmbedded` build cache. As a result, the next build may take up to an hour to complete. ### Building with mbedTLS -On some Android Samsung devices, OpenSSL causes the Alexa Auto Sample App to terminate. You can specify an additional argument `--use-mbedtls` to build the Auto SDK with mbedTLS. +On some Android Samsung devices, OpenSSL causes the Alexa Auto Sample App to terminate. The alternative is to use mbedTLS. To build the SDK with mbedTLS, specify the `--use-mbedtls` argument. -## Using the Auto SDK OE Layer +## Using the Auto SDK OE Layer -If you want to integrate the Alexa Auto SDK software into an existing OpenEmbedded-based system, you can use the *Alexa Auto SDK OE Layer* a.k.a `meta-aac`, without using the *Alexa Auto SDK Builder*. +If you want to integrate the Auto SDK into an existing OpenEmbedded-based system, you can use the Alexa Auto SDK OE Layer, which is also known as `meta-aac`, instead of the Auto SDK Builder. ->**Note**: For Android and QNX targets, you should use the Alexa Auto SDK Builder since the Alexa Auto SDK OE Layer method may require advanced OpenEmbedded system administration skills. - -The recommended and tested platform is **Poky Linux 2.4 (rocko)**. +The recommended and tested platform is Poky Linux 2.4 (rocko). ### Adding layers and module recipes -You need to add the following OE layers into your setup. - -* Alexa Auto SDK OE layer: `${AAC_SDK_HOME}/builder/meta-aac` +Add the following OE layers to your setup: -Additionally, you may need to add the individual Alexa Auto SDK module recipes by adding them to `BBFILES`. To add all SDK modules, you can simply add the following line to your `bblayers.conf`: +* Alexa Auto SDK OE layer, which is at the following location: + + `${AAC_SDK_HOME}/builder/meta-aac` +* You may need to add the individual Auto SDK module recipes to `BBFILES`. To add all modules, simply add the following line to the `bblayers.conf` file: ``` BBFILES += "${AAC_SDK_HOME}/modules/*/*.bb" @@ -298,6 +373,6 @@ BBFILES += "${AAC_SDK_HOME}/modules/*/*.bb" ### cURL with ngHTTP2 -You must configure the `curl` package with the `nghttp2` feature enabled. The `meta-aac` layer defines a default `PACKAGECONFIG` for `curl` but if your system has its own definition, you need to modify `PACKAGECONFIG` to include `nghttp2`. +You must configure the `curl` package with the `nghttp2` feature enabled. The `meta-aac` layer defines a default `PACKAGECONFIG` for `curl`. However, if your system has its own definition, you must modify `PACKAGECONFIG` to include `nghttp2`. ->**Note:** We provide the default `nghttp2` recipe within the `meta-aac` layer, but you may use other alternatives. +>**Note:** The default `nghttp2` recipe is included in the `meta-aac` layer, but you may use other alternatives. diff --git a/builder/meta-aac-builder/conf/machine/aglarm64.conf b/builder/meta-aac-builder/conf/machine/aglarm64.conf deleted file mode 100644 index a0d31baf4..000000000 --- a/builder/meta-aac-builder/conf/machine/aglarm64.conf +++ /dev/null @@ -1,21 +0,0 @@ -#@TYPE: Machine -#@NAME: aglarm64 -#@DESCRIPTION: AGL ARM64 target - -DEFAULTTUNE = "aarch64" -require conf/machine/include/arm/arch-armv8.inc -require conf/machine/include/poky.inc -require conf/machine/include/agl.inc - -AGL_SDK ?= "/opt/agl-sdk/9.0.1-aarch64" -POKY_SDK ?= "${AGL_SDK}" -POKY_DISTRO = "agl" - -TARGET_VENDOR = "-agl" - -# Adding AGL universal override -MACHINEOVERRIDES = "${MACHINE}:agl" - -# AGL Application Framework -AAC_ASSUME_PROVIDED_append = " ^af-binder$" -AAC_PKG_CONFIG_PROVIDED_append = " afb-daemon" diff --git a/builder/meta-aac-builder/conf/machine/include/agl.inc b/builder/meta-aac-builder/conf/machine/include/agl.inc deleted file mode 100644 index c3648f43b..000000000 --- a/builder/meta-aac-builder/conf/machine/include/agl.inc +++ /dev/null @@ -1,4 +0,0 @@ -# Common flags for AGL builds -# AGL Halibut (v8.0.0+) and above now use wireplumber audio - -EXTRA_OECMAKE += "-DUSE_PIPEWIRE=ON" \ No newline at end of file diff --git a/builder/meta-aac-builder/recipes-core/images/aac-sdk-build.bb b/builder/meta-aac-builder/recipes-core/images/aac-sdk-build.bb index 61ddedf1b..55dce817c 100644 --- a/builder/meta-aac-builder/recipes-core/images/aac-sdk-build.bb +++ b/builder/meta-aac-builder/recipes-core/images/aac-sdk-build.bb @@ -10,7 +10,6 @@ IMAGE_INSTALL += "\ aac-module-apl \ aac-module-navigation \ aac-module-phone-control \ - aac-module-contact-uploader \ aac-module-cbl \ aac-module-address-book \ aac-module-car-control \ diff --git a/builder/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk-1.19.1/0001-Alexa-Auto-changes-for-v1.19.1-AVS-Device-SDK.patch b/builder/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk-1.19.1/0001-Alexa-Auto-changes-for-v1.19.1-AVS-Device-SDK.patch index 050789cbe..d69d02f6c 100644 --- a/builder/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk-1.19.1/0001-Alexa-Auto-changes-for-v1.19.1-AVS-Device-SDK.patch +++ b/builder/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk-1.19.1/0001-Alexa-Auto-changes-for-v1.19.1-AVS-Device-SDK.patch @@ -1,9 +1,8 @@ -From 5c1da1022b448302b17ba380b56ecccdfe7ce1c3 Mon Sep 17 00:00:00 2001 -From: Muni Sakkuru -Date: Tue, 7 Jul 2020 10:16:03 -0700 -Subject: [PATCH 1/1] Alexa Auto changes for v1.19.1 AVS Device SDK +From e66bb45c76f3e5a0489aae5cac09c0bd335cf01c Mon Sep 17 00:00:00 2001 +From: Eze Cervantes +Date: Tue, 6 Oct 2020 12:34:01 -0700 +Subject: [PATCH] Alexa Auto changes for v1.19.1 AVS Device SDK -For internal reference: 3f093bdd --- ACL/src/AVSConnectionManager.cpp | 4 +- ADSL/include/ADSL/DirectiveProcessor.h | 15 +- @@ -54,6 +53,7 @@ For internal reference: 3f093bdd .../src/PostConnectCapabilitiesPublisher.cpp | 90 ++- .../src/Utils/DiscoveryUtils.cpp | 32 +- .../PostConnectCapabilitiesPublisherTest.cpp | 108 ++- + .../AIP/src/AudioInputProcessor.cpp | 3 +- .../include/Alerts/AlertObserverInterface.h | 23 + .../include/Alerts/AlertsCapabilityAgent.h | 41 ++ .../Alerts/include/Alerts/Renderer/Renderer.h | 10 +- @@ -99,7 +99,7 @@ For internal reference: 3f093bdd SampleApp/src/InteractionManager.cpp | 2 +- .../DoNotDisturbCapabilityAgent.h | 46 +- .../src/DoNotDisturbCapabilityAgent.cpp | 9 +- - 94 files changed, 3963 insertions(+), 167 deletions(-) + 95 files changed, 3964 insertions(+), 169 deletions(-) create mode 100644 AVSCommon/AVS/include/AVSCommon/AVS/ActionsToDirectiveMapping.h create mode 100644 AVSCommon/AVS/include/AVSCommon/AVS/CapabilitySemantics.h create mode 100644 AVSCommon/AVS/include/AVSCommon/AVS/EndpointResources.h @@ -2932,7 +2932,7 @@ index e53552ba..4c92910c 100644 if (instance) { addDiscoveryEventSender(instance); diff --git a/CapabilitiesDelegate/src/PostConnectCapabilitiesPublisher.cpp b/CapabilitiesDelegate/src/PostConnectCapabilitiesPublisher.cpp -index 1f9b989e..aad68231 100644 +index 1f9b989e..f93bff88 100644 --- a/CapabilitiesDelegate/src/PostConnectCapabilitiesPublisher.cpp +++ b/CapabilitiesDelegate/src/PostConnectCapabilitiesPublisher.cpp @@ -52,7 +52,16 @@ static const std::vector RETRY_TABLE = { @@ -2943,7 +2943,7 @@ index 1f9b989e..aad68231 100644 +static constexpr int MAX_ENDPOINTS_PER_ADD_OR_UPDATE_REPORT_EVENT = 300; + +/// Maximum size of the Discovery event (256 KB) -+static constexpr int MAX_DISCOVERY_PAYLOAD_SIZE = 200 * 1024; ++static constexpr int MAX_DISCOVERY_PAYLOAD_SIZE = 256 * 1024; + +/// Maximum size of header and scope fields in the Discovery event (Choosing a sufficiently large size of 10KB). +static constexpr int MAX_DISCOVERY_HEADER_AND_SCOPE_SIZE = 10 * 1024; @@ -3288,6 +3288,27 @@ index 59e3c5ab..4ff52cb9 100644 /** * Test when AddOrUpdateReport response is 202 and DeleteReport response is 4xx. */ +diff --git a/CapabilityAgents/AIP/src/AudioInputProcessor.cpp b/CapabilityAgents/AIP/src/AudioInputProcessor.cpp +index aa2a2e26..d424cfda 100644 +--- a/CapabilityAgents/AIP/src/AudioInputProcessor.cpp ++++ b/CapabilityAgents/AIP/src/AudioInputProcessor.cpp +@@ -1130,7 +1130,6 @@ bool AudioInputProcessor::executeStopCapture(bool stopImmediately, std::shared_p + return true; + } + if (m_state != ObserverInterface::State::RECOGNIZING) { +- static const char* errorMessage = "StopCapture only allowed in RECOGNIZING state."; + auto returnValue = false; + if (info) { + if (info->result) { +@@ -1143,7 +1142,7 @@ bool AudioInputProcessor::executeStopCapture(bool stopImmediately, std::shared_p + .m("StopCapture directive ignored because local StopCapture was performed.")); + + } else { +- info->result->setFailed(errorMessage); ++ info->result->setCompleted(); + ACSDK_ERROR(LX("executeStopCaptureFailed") + .d("reason", "invalidState") + .d("expectedState", "RECOGNIZING") diff --git a/CapabilityAgents/Alerts/include/Alerts/AlertObserverInterface.h b/CapabilityAgents/Alerts/include/Alerts/AlertObserverInterface.h index ad6b291b..f9fd1f9d 100644 --- a/CapabilityAgents/Alerts/include/Alerts/AlertObserverInterface.h @@ -6302,5 +6323,5 @@ index 9e897c5e..f7244c80 100644 }); promise.set_value(true); -- -2.25.0 +2.28.0 diff --git a/builder/scripts/run-aacs-android.sh b/builder/scripts/run-aacs-android.sh new file mode 100755 index 000000000..4aaf6c86b --- /dev/null +++ b/builder/scripts/run-aacs-android.sh @@ -0,0 +1,184 @@ +#!/bin/bash +set -e + +THISDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source ${THISDIR}/common.sh + +# +# Option +# + +usageExit() { + echo "Usage: gradle [options] [ ...]" + echo "" + echo " -h,--help = Print usage information and exit." + echo "" + echo " -g,--debug = Build with debugging options." + echo " -c,--clean = Do clean." + echo "" + exit 1 +} + +PARAMS="$@" +POSITIONAL=() +EXTRA_CONFS=() +while [[ $# -gt 0 ]]; do + key="$1" + case $key in + -h|--help) + usageExit + shift + ;; + -g|--debug) + DEBUG_BUILD="1" + shift + ;; + -c|--clean) + CLEAN="1" + shift + ;; + -*|--*) + echo "ERROR: Unknown option '$1'" + usageExit + shift + ;; + *) # Any other additional arguments + POSITIONAL+=("$1") + shift + ;; + esac +done + +set -- "${POSITIONAL[@]}" + +# Default values +CLEAN=${CLEAN:-0} +DEBUG_BUILD=${DEBUG_BUILD:-0} + +DEPLOY_DIR="${BUILDER_HOME}/deploy" +AACS_DIR="${SDK_HOME}/platforms/android/alexa-auto-client-service" +ANDROID_SERVICE_DIR="${AACS_DIR}/android-service" +ANDROID_SERVICE="${ANDROID_SERVICE_DIR}/service" +ANDROID_SERVICE_LIBS_FOLDER=${ANDROID_SERVICE}/libs +IPC_DIR="${AACS_DIR}/ipc" +CONSTANTS_DIR="${AACS_DIR}/constants" +AAR_DEPLOY_DIR="${DEPLOY_DIR}/aar" +APK_DEPLOY_DIR="${DEPLOY_DIR}/apk" + +EXTRA_MODULES=$@ + +if [ $(uname) = "Darwin" ]; then + SED="gsed" + FIND="gfind" +else + SED="sed" + FIND="find" +fi + +run_service_gradle() { + local gradle_command="assembleLocalRelease" + + pushd ${1}/ + if [ ${CLEAN} = "1" ]; then + gradle clean + fi + if [ ${DEBUG_BUILD} = "1" ]; then + gradle_command="assembleLocalDebug" + fi + gradle ${gradle_command} + popd +} + +run_gradle() { + local gradle_command="assembleRelease" + + pushd ${1}/ + if [ ${CLEAN} = "1" ]; then + gradle clean + fi + if [ ${DEBUG_BUILD} = "1" ]; then + gradle_command="assembleDebug" + fi + gradle ${gradle_command} + popd +} + +run_aacs_gradle() { + local gradle_command="assembleRelease" + if [ ${DEBUG_BUILD} = "1" ]; then + gradle_command="assembleDebug" + fi + pushd ${ANDROID_SERVICE_DIR}/modules/aacs-extra + if [ ${CLEAN} = "1" ]; then + gradle clean + fi + gradle ${gradle_command} + popd + copy_aar ${ANDROID_SERVICE_DIR}/modules + for module in ${EXTRA_MODULES} ; do + if [ -d "${module}/aacs/android" ]; then + local module_path=$(${FIND} ${module}/aacs/android/modules -mindepth 1 -maxdepth 1 -type d 2> /dev/null) + local module_name=$(basename ${module_path}) + note "Running ${module_name} build" + pushd ${module}/aacs/android + if [ ${CLEAN} = "1" ]; then + gradle clean + fi + gradle -PaarDir=${AAR_DEPLOY_DIR} ${gradle_command} + popd + copy_aar "$(realpath ${module})/aacs/android/modules" + fi + done +} + +copy_aar() { + local src="${1}/*/build/outputs/aar/*-release.aar" + if [ ${DEBUG_BUILD} = "1" ]; then + src="${1}/*/build/outputs/aar/*-debug.aar" + fi + if ! ls ${src} 1> /dev/null 2>&1; then + # Gradle version 5.1+ may not generate -release/-debug AARs + src="${1}/*/build/outputs/aar/*.aar" + fi + for aar in $(${FIND} ${src} 2> /dev/null) ; do + cp ${aar} ${AAR_DEPLOY_DIR} + done +} + +copy_apk() { + local src="${1}/build/outputs/apk/local/release/*-release-unsigned.apk" + if [ ${DEBUG_BUILD} = "1" ]; then + src="${1}/build/outputs/apk/local/debug/*-debug.apk" + fi + cp ${src} ${APK_DEPLOY_DIR} +} + + +clean_aar() { + #Clean sample app aars for AACS + mkdir -p ${AAR_DEPLOY_DIR} && rm -rf ${AAR_DEPLOY_DIR}/sample-* +} + +clean_apk() { + #Clean sample app aars for AACS + mkdir -p ${APK_DEPLOY_DIR} && rm -rf ${APK_DEPLOY_DIR}/*.apk +} + +note "$(head ${DEPLOY_DIR}/buildinfo.txt)" + +clean_aar +clean_apk +run_gradle ${IPC_DIR} +run_gradle ${CONSTANTS_DIR} +run_aacs_gradle +copy_aar ${IPC_DIR} +copy_aar ${CONSTANTS_DIR} +if [ -d ${ANDROID_SERVICE_LIBS_FOLDER} ]; then + rm -f ${ANDROID_SERVICE_LIBS_FOLDER}/* + cp -r `ls -A ${AAR_DEPLOY_DIR}/* | grep -v "sample-*"` ${ANDROID_SERVICE_LIBS_FOLDER}/ +else + mkdir ${ANDROID_SERVICE_LIBS_FOLDER}/ + cp -r `ls -A ${AAR_DEPLOY_DIR}/* | grep -v "sample-*"` ${ANDROID_SERVICE_LIBS_FOLDER}/ +fi +run_service_gradle ${ANDROID_SERVICE_DIR} +copy_apk ${ANDROID_SERVICE} diff --git a/builder/scripts/run-builder.sh b/builder/scripts/run-builder.sh index e008d7961..01230e526 100755 --- a/builder/scripts/run-builder.sh +++ b/builder/scripts/run-builder.sh @@ -144,6 +144,10 @@ while [[ $# -gt 0 ]]; do ENABLE_COVERAGE=1 shift ;; + --aacs-android) + AACS_ANDROID="1" + shift + ;; -D*=*) DEFINES+=("$1") shift @@ -172,6 +176,9 @@ LATENCY_LOGS=${LATENCY_LOGS:-0} ENABLE_TESTS=${ENABLE_TESTS:-0} FORCE_DOCKER=${FORCE_DOCKER:-0} USE_MBEDTLS=${USE_MBEDTLS:-0} +AACS_ANDROID=${AACS_ANDROID:-0} +COMMS=${COMMS:-0} +AASB=${AASB:-0} SCRIPT_OPTIONS="" EXTRA_MODULES=$@ @@ -261,11 +268,24 @@ build_sdk() { local extra_local_conf="${BUILDER_HOME}/.extralocal.conf" local audio_extension="${SDK_HOME}/extensions/experimental/system-audio" local sample_app="${SDK_HOME}/samples/cpp/aac-sample-cpp.bb" + local aasb_extension="${SDK_HOME}/extensions/aasb" + local aasb_comms_extension="${SDK_HOME}/extensions/extras/alexacomms/extensions/aasb-comms" + local audio_extension="${SDK_HOME}/extensions/experimental/system-audio" local platform=$1 case ${platform} in "android") available_targets=("androidarm" "androidarm64" "androidx86" "androidx86-64") + if [[ "${AACS_ANDROID}" = "1" ]] && [[ "${COMMS}" = "1" ]] + then + extensions="${aasb_extension} ${aasb_comms_extension}" + elif [[ "${COMMS}" = "1" ]] && [[ "${AASB}" = "1" ]] + then + extensions="${aasb_comms_extension}" + elif [ "${AACS_ANDROID}" = "1" ]; + then + extensions="${aasb_extension}" + fi ;; "qnx7") available_targets=("qnx7arm64" "qnx7x86-64") @@ -276,10 +296,6 @@ build_sdk() { available_targets=("native" "pokyarm" "pokyarm64" "linaroarmel" "linaroarmhf" "linaroarm64") extensions="${sample_app} ${audio_extension}" ;; - "agl") - available_targets=("aglarm64") - extensions="${audio_extension}" - ;; *) error "Unknown platform: ${platform}" exit_with_usage @@ -315,6 +331,23 @@ if [ ${PLATFORM} = "clean" ]; then exit $? fi + +check_extra_module() { + local module=$(realpath ${1}) + local module_name=$(basename ${module}) + if [ "${module_name}" = "alexacomms" ]; + then + COMMS=1 + elif [ "${module_name}" = "aasb" ]; + then + AASB=1 + fi +} + +for module in ${EXTRA_MODULES} ; do + check_extra_module ${module} +done + # Run OE build for all platforms build_sdk ${PLATFORM} @@ -324,5 +357,8 @@ if [ ${PLATFORM} = "android" ]; then if [ ${DEBUG_BUILD} = 1 ]; then gradle_options="${gradle_options} -g" fi - ${THISDIR}/run-gradle.sh ${gradle_options} ${EXTRA_MODULES} + ${THISDIR}/run-gradle.sh ${gradle_options} ${EXTRA_MODULES} ${extensions} + if [ ${AACS_ANDROID} = "1" ]; then + ${THISDIR}/run-aacs-android.sh ${gradle_options} ${EXTRA_MODULES} + fi fi diff --git a/builder/scripts/run-docker.sh b/builder/scripts/run-docker.sh index 3ae911240..23ccfe7b8 100755 --- a/builder/scripts/run-docker.sh +++ b/builder/scripts/run-docker.sh @@ -13,7 +13,7 @@ if [ -z "$(which docker)" ]; then fi VM_HOME="/home/builder" -IMAGE_REVISION="20200126" +IMAGE_REVISION="20200922" IMAGE_NAME="aac/ubuntu-base:${IMAGE_REVISION}" VOLUME_NAME="buildervolume" VOLUME_MOUNT_POINT="/workdir" @@ -33,7 +33,6 @@ execute_command() { -v ${VOLUME_NAME}:${VOLUME_MOUNT_POINT} \ -v ${SDK_HOME}:${VM_HOME}/aac \ -e ANDROID_TOOLCHAIN=${VOLUME_MOUNT_POINT}/android \ - -e AGL_SDK_BASE=${VOLUME_MOUNT_POINT}/agl-sdk \ -e HOST_PWD=${PWD} \ -e HOST_SDK_HOME=${SDK_HOME} \ ${EXTRA_OPTIONS} \ diff --git a/builder/scripts/version b/builder/scripts/version index 974f89727..c1abae57d 100644 --- a/builder/scripts/version +++ b/builder/scripts/version @@ -1,2 +1,2 @@ -AAC_VERSION="2.3.0" -AAC_CODENAME="nectarine" +AAC_VERSION="3.0.0" +AAC_CODENAME="orange" diff --git a/docs/android/annotated.html b/docs/android/annotated.html index 4bc67cbac..d1bb870a0 100644 --- a/docs/android/annotated.html +++ b/docs/android/annotated.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -132,56 +132,54 @@  CCarControl  CCarControlConfiguration  CAction - CZone  Ncbl  Nconfig  CCBLConfiguration  CCBL  CCBLState  CCBLStateChangedReason - Ncontactuploader - CContactUploader - CContactUploadStatus - Ncore - Nconfig - CEngineConfiguration - CEngine - CPlatformInterface - Nlocation - CLocation - CLocationProvider - Nlogger - Nconfig - CLoggerConfiguration - CLogger - CLevel - Nnavigation - CNavigation - Nnetwork - CNetworkInfoProvider - CNetworkStatus - Nphonecontrol - CPhoneCallController - CCallError - CCallingDeviceConfigurationProperty - CCallState - CConnectionState - CDTMFError - NpropertyManager - CPropertyManager - CPropertyState - Nstorage - Nconfig - CStorageConfiguration - Nvehicle - Nconfig - CVehicleConfiguration - CVehiclePropertyType - Nmaccandroid - Nmodel - CPlayerPlaybackInfo - CExampleUnitTest - CMACCAndroidClient + Ncore + Nconfig + CEngineConfiguration + CEngine + CPlatformInterface + Nlocation + CLocation + CLocationProvider + Nlogger + Nconfig + CLoggerConfiguration + CLogger + CLevel + Nnavigation + Nconfig + CNavigationConfiguration + CNavigation + Nnetwork + CNetworkInfoProvider + CNetworkStatus + Nphonecontrol + CPhoneCallController + CCallError + CCallingDeviceConfigurationProperty + CCallState + CConnectionState + CDTMFError + NpropertyManager + CPropertyManager + CPropertyState + Nstorage + Nconfig + CStorageConfiguration + Nvehicle + Nconfig + CVehicleConfiguration + CVehiclePropertyType + Nmaccandroid + Nmodel + CPlayerPlaybackInfo + CExampleUnitTest + CMACCAndroidClient @@ -189,7 +187,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts-members.html index 50302b099..9bb735d26 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts.html index ee4fed4d5..70106f53e 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -239,7 +239,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client-members.html index 71a161d87..6fb9cf0ec 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html index 8501c5b0f..fd9af4bd2 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -221,7 +221,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker-members.html index fe3c7fec0..29e934cb4 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker.html index cc5d31102..8959c273e 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -256,7 +256,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player-members.html index 266b3f67e..17cbceeb5 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player.html index acb474714..98ebbc14b 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -98,7 +98,7 @@
Note
Audio playback control operations such as on-platform button presses must be routed through the PlaybackController.
See also
PlaybackController
-TemplateRuntime.renderPlayerInfo()
+TemplateRuntime.renderPlayerInfo()

Member Function Documentation

◆ playerActivityChanged()

@@ -192,7 +192,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider-members.html index 6a11adff1..a612dbe44 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider.html index 67fba2e1e..8bda33984 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -198,7 +198,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb-members.html index 1a734bc47..b3bb3de05 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb.html index a0cddc31c..13ee72f07 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -132,7 +132,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller-members.html index 97b7cfcfd..dc05e08c3 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller.html index c8edb180b..c43055ad4 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -247,7 +247,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter-members.html index 84c4f8976..b26b82c12 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -95,7 +95,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html index b884c8a6e..43be30275 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -305,7 +305,7 @@

-

Occurs during playback control via voice interaction or PlaybackController interface

+

Occurs during playback control via voice interaction

Parameters
@@ -313,7 +313,6 @@

See also
PlaybackController
Returns
true if the platform implementation successfully handled the call, else false
@@ -655,8 +654,18 @@

Parameters

localPlayerIdThe opaque token that uniquely identifies the local external player app
- - + +
localPlayerIdThe opaque token that uniquely identifies the local external player app
eventNameCanonical event name
localPlayerIdThe opaque token that uniquely identifies the local external player app
[in]eventNameCanonical event name. Accepted values:
    +
  • "TrackChanged"
  • +
  • "PlaybackSessionStarted"
  • +
  • "PlaybackSessionEnded"
  • +
  • "PlaybackStarted"
  • +
  • "PlaybackStopped"
  • +
  • "PlaybackPrevious"
  • +
  • "PlaybackNext"
  • +
  • "PlayModeChanged"
  • +
+
@@ -709,11 +718,29 @@

Parameters
- - - - - + + + + +
localPlayerIdThe opaque token that uniquely identifies the local external player app
errorNameThe name of the error
codeThe error code
descriptionThe detailed error description
fataltrue if the error is fatal
localPlayerIdThe opaque token that uniquely identifies the local external player app
[in]errorNameThe name of the error. Accepted values:
    +
  • "INTERNAL_ERROR"
  • +
  • "UNPLAYABLE_BY_AUTHORIZATION"
  • +
  • "UNPLAYABLE_BY_STREAM_CONCURRENCY"
  • +
  • "UNPLAYABLE_BY_ACCOUNT"
  • +
  • "OPERATION_REJECTED_UNINTERRUPTIBLE"
  • +
  • "OPERATION_REJECTED_END_OF_QUEUE"
  • +
  • "UNPLAYABLE_BY_REGION"
  • +
  • "OPERATION_UNSUPPORTED"
  • +
  • "UNPLAYABLE_BY_PARENTAL_CONTROL"
  • +
  • "UNPLAYABLE_BY_SUBSCRIPTION"
  • +
  • "OPERATION_REJECTED_SKIP_LIMIT"
  • +
  • "UNKNOWN_ERROR"
  • +
  • "PLAYER_UNKNOWN"
  • +
  • "PLAYER_NOT_FOUND"
  • +
  • "PLAYER_CONNECTION_REJECTED"
  • +
  • "PLAYER_CONNECTION_TIMEOUT"
  • +
+
codeThe error code
descriptionThe detailed error description
fataltrue if the error is fatal
@@ -775,7 +802,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source-members.html index de76e081c..fae79e29f 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -88,7 +88,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source.html index 9412f5418..25abb9a4e 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -116,8 +116,7 @@  

Detailed Description

-

LocalMediaSource should be extended to use Alexa to switch among media sources local to the device. It supports bluetooth, USB, FM radio, AM radio, satellite radio, audio line, and CD player sources. It enables playback for these sources via Alexa (e.g. "Alexa, play the CD player"), or via the playback controller.

-
See also
PlaybackController
+

LocalMediaSource should be extended to use Alexa to switch among media sources local to the device. It supports bluetooth, USB, FM radio, AM radio, satellite radio, audio line, and CD player sources.

Member Function Documentation

◆ play()

@@ -164,14 +163,13 @@

-

Occurs during playback control via voice interaction or PlaybackController interface

+

Occurs during playback control via voice interaction

Parameters
controlTypePlayback control type being invoked
-
See also
PlaybackController
Returns
true if the platform implementation successfully handled the call, else false

@@ -265,7 +263,11 @@

Parameters
- +
eventNameCanonical event name
[in]eventNameCanonical event name. Accepted values:
    +
  • "PlaybackStarted"
  • +
  • "PlaybackStopped"
  • +
+
@@ -312,10 +314,13 @@

Parameters
- - - - + + + +
errorNameThe name of the error
codeThe error code
descriptionThe detailed error description
fataltrue if the error is fatal
[in]errorNameThe name of the error. Accepted values:
    +
  • "INTERNAL_ERROR"
  • +
+
codeThe error code
descriptionThe detailed error description
fataltrue if the error is fatal
@@ -440,7 +445,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications-members.html index dbcc897f3..372787608 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications.html index 43f5e49ce..7f60ca560 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -137,7 +137,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller-members.html index 73b0423cc..e5db39a62 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller.html index 0c0d36edb..ac7f8d2bc 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -89,7 +89,7 @@

Detailed Description

PlaybackController should be extended to handle playback control operations such as on-platform button presses for the AudioPlayer. The Engine will respond to PlaybackController events with playback control directives on the AudioPlayer MediaPlayer.

-
Note
The TemplateRuntime.renderPlayerInfo() payload includes information about what playback control buttons should be enabled on screen with a player info display card.
+
Note
The TemplateRuntime.renderPlayerInfo() payload includes information about what playback control buttons should be enabled on screen with a player info display card.
See also
AudioPlayer

Member Function Documentation

@@ -156,7 +156,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer-members.html index 776d6effc..e01d28d94 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -71,21 +71,18 @@

This is the complete list of members for com.amazon.aace.alexa.SpeechRecognizer, including all inherited members.

- - - - - - - + + + +
disableWakewordDetection()com.amazon.aace.alexa.SpeechRecognizer
enableWakewordDetection()com.amazon.aace.alexa.SpeechRecognizer
endOfSpeechDetected()com.amazon.aace.alexa.SpeechRecognizer
holdToTalk()com.amazon.aace.alexa.SpeechRecognizer
isWakewordDetectionEnabled()com.amazon.aace.alexa.SpeechRecognizer
startCapture(Initiator initiator, long keywordBegin, long keywordEnd, String keyword)com.amazon.aace.alexa.SpeechRecognizer
stopCapture()com.amazon.aace.alexa.SpeechRecognizer
tapToTalk()com.amazon.aace.alexa.SpeechRecognizer
wakewordDetected(String wakeword)com.amazon.aace.alexa.SpeechRecognizer
startCapture(Initiator initiator, long keywordBegin, long keywordEnd, String keyword)com.amazon.aace.alexa.SpeechRecognizer
stopCapture()com.amazon.aace.alexa.SpeechRecognizer
tapToTalk()com.amazon.aace.alexa.SpeechRecognizer
wakewordDetected(String wakeword)com.amazon.aace.alexa.SpeechRecognizer

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html index ce1dc77f1..1651adbe8 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -92,12 +92,6 @@   final boolean stopCapture ()   -final boolean enableWakewordDetection () -  -final boolean disableWakewordDetection () -  -final boolean isWakewordDetectionEnabled () - 

Detailed Description

SpeechRecognizer should be extended to initiate voice interactions with Alexa. SpeechRecognizer provides interfaces for

@@ -262,63 +256,6 @@

Returns
true if the Engine successfully terminated the current recognize event, else false
-

- - -

◆ enableWakewordDetection()

- -
-
- - - - - - - -
final boolean com.amazon.aace.alexa.SpeechRecognizer.enableWakewordDetection ()
-
-

Notifies the Engine to enable the wake word engine. Wake word must be supported in the Engine to be enabled by this call.

-
Returns
true if the Engine successfully enabled wake word detection, else false
- -
-
- -

◆ disableWakewordDetection()

- -
-
- - - - - - - -
final boolean com.amazon.aace.alexa.SpeechRecognizer.disableWakewordDetection ()
-
-

Notifies the Engine to disable the wake word engine

-
Returns
true if the Engine successfully disabled wakeword detection, else false
- -
-
- -

◆ isWakewordDetectionEnabled()

- -
-
- - - - - - - -
final boolean com.amazon.aace.alexa.SpeechRecognizer.isWakewordDetectionEnabled ()
-
-

Checks if wake word detection is enabled in the Engine

-
Returns
true if wake word detection is enabled, else false
-
@@ -326,7 +263,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_synthesizer-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_synthesizer-members.html index e01f1a2e3..640467fc3 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_synthesizer-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_synthesizer-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_synthesizer.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_synthesizer.html index 5111ce3a4..903de577b 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_synthesizer.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_synthesizer.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime-members.html index 82ed37010..6d18d4a11 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -74,16 +74,14 @@ clearPlayerInfo()com.amazon.aace.alexa.TemplateRuntime clearTemplate()com.amazon.aace.alexa.TemplateRuntime displayCardCleared()com.amazon.aace.alexa.TemplateRuntime - renderPlayerInfo(String payload)com.amazon.aace.alexa.TemplateRuntime - renderPlayerInfo(String payload, PlayerActivity audioPlayerState, long offset, FocusState focusState)com.amazon.aace.alexa.TemplateRuntime - renderTemplate(String payload)com.amazon.aace.alexa.TemplateRuntime + renderPlayerInfo(String payload, PlayerActivity audioPlayerState, long offset, FocusState focusState)com.amazon.aace.alexa.TemplateRuntime renderTemplate(String payload, FocusState focusState)com.amazon.aace.alexa.TemplateRuntime

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html index 7c0e4558b..ef6f58e7b 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,12 +82,8 @@ - - - - @@ -100,35 +96,8 @@

Detailed Description

TemplateRuntime should be extended to handle directives from the Engine for rendering visual metadata with display cards. Metadata is provided as structured JSON and should be parsed by the platform implementation for rendering cards that adhere to design guidelines for the platform device type. For screen-specific design guidance, see the AVS UX Design Overview: https://developer.amazon.com/docs/alexa-voice-service/ux-design-overview.html#displaycards

Member Function Documentation

- -

◆ renderTemplate() [1/2]

- -
-
-

Public Member Functions

void renderTemplate (String payload)
 
void renderTemplate (String payload, FocusState focusState)
 
void renderPlayerInfo (String payload)
 
void renderPlayerInfo (String payload, PlayerActivity audioPlayerState, long offset, FocusState focusState)
 
void clearTemplate ()
- - - - - - - -
void com.amazon.aace.alexa.TemplateRuntime.renderTemplate (String payload)
-
-
Deprecated:
Use renderTemplate( String payload, FocusState focusState ).
-

Provides visual metadata associated with a user request to Alexa. The platform implementation should parse the template metadata and render a display card for the user.

-

For supported templates and rendering guidelines, see https://alexa.design/DevDocRenderTemplate

-
Parameters
- - -
[in]payloadRenderable template metadata in structured JSON format
-
-
- -
- -

◆ renderTemplate() [2/2]

+

◆ renderTemplate()

@@ -162,40 +131,10 @@

-

◆ renderPlayerInfo() [1/2]

- -
-
- - - - - - - - -
void com.amazon.aace.alexa.TemplateRuntime.renderPlayerInfo (String payload)
-
-
Deprecated:
Use renderPlayerInfo( String payload, PlayerActivity audioPlayerState, long offset, FocusState focusState ).
-

Provides visual metadata associated with a user request to Alexa for audio playback. The platform implementation should parse the player info metadata and render a display card for the user.

-

For rendering guidelines, see https://amzn.to/DevDocTemplatePlayerInfo

-
Parameters
- - -
[in]payloadRenderable player info metadata in structured JSON format
-
-
-
See also
PlaybackController
-
-AudioPlayer
-
-

◆ renderPlayerInfo() [2/2]

+

◆ renderPlayerInfo()

@@ -307,7 +246,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration-members.html index c05788489..c4705110a 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -95,7 +95,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html index f919015ce..60602cd69 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -584,7 +584,7 @@

-
Deprecated:
Use AlexaConfiguration.createDeviceSettingsConfig().
+
Deprecated:
Use AlexaConfiguration.createDeviceSettingsConfig().

Factory method used to programmatically generate settings configuration data. The data generated by this method is equivalent to providing the following JSON values in a configuration file:

{
"settings": {
"databaseFilePath": "<SQLITE_DATABASE_FILE_PATH>",
"defaultAVSClientSettings": {
"locale": "<LOCALE>"
}
}
}
Parameters
@@ -619,7 +619,7 @@

-
Deprecated:
Use AlexaConfiguration.createDeviceSettingsConfig().
+
Deprecated:
Use AlexaConfiguration.createDeviceSettingsConfig().

Factory method used to programmatically generate settings configuration data. The data generated by this method is equivalent to providing the following JSON values in a configuration file:

{
"settings": {
"databaseFilePath": "<SQLITE_DATABASE_FILE_PATH>",
"defaultAVSClientSettings": {
"locale": "<LOCALE>"
}
}
}
Parameters

@@ -907,7 +907,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l-members.html index c9722d098..2d8ca7f61 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l-members.html @@ -23,7 +23,7 @@

@@ -89,7 +89,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html b/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html index d1114ee61..f097ca94b 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html @@ -23,7 +23,7 @@

@@ -552,7 +552,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration-members.html index e128b663a..8b0eccb39 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration-members.html @@ -23,7 +23,7 @@

@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration.html index 884819996..5c9c6835b 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration.html @@ -23,7 +23,7 @@

@@ -120,7 +120,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider-members.html index 80f7de630..3f3094ff8 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider-members.html @@ -23,7 +23,7 @@

@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider.html b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider.html index 925f24354..1ef1fd033 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider.html @@ -23,7 +23,7 @@

@@ -84,7 +84,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output-members.html index 2ee3864a4..26b2c9147 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output-members.html @@ -23,7 +23,7 @@

@@ -91,7 +91,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html index 88863a7e5..9b4e271be 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html @@ -23,7 +23,7 @@

@@ -523,7 +523,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider-members.html index 92af99b5d..88b9df437 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider-members.html @@ -23,7 +23,7 @@

@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider.html b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider.html index 6edcc53c3..0dc4639f8 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider.html @@ -23,7 +23,7 @@

@@ -84,7 +84,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control-members.html index 7d3a1bd9e..81f1810d7 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control-members.html @@ -23,7 +23,7 @@

@@ -89,7 +89,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html index 7c82a6c67..2791b7bba 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html @@ -23,7 +23,7 @@

@@ -636,7 +636,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration-members.html index db9e4c9bf..3bcb9a57e 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration-members.html @@ -23,7 +23,7 @@

@@ -88,16 +88,15 @@ - - - - + + +
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
addToggleController(String instanceId, boolean retrievable)com.amazon.aace.carControl.CarControlConfiguration
addValue(String value)com.amazon.aace.carControl.CarControlConfiguration
create()com.amazon.aace.carControl.CarControlConfigurationstatic
createControl(String controlId, String zoneId)com.amazon.aace.carControl.CarControlConfiguration
createEndpoint(String endpointId)com.amazon.aace.carControl.CarControlConfiguration
createZone(String zoneId)com.amazon.aace.carControl.CarControlConfiguration
setDefaultZone(String zoneId)com.amazon.aace.carControl.CarControlConfiguration
createEndpoint(String endpointId)com.amazon.aace.carControl.CarControlConfiguration
createZone(String zoneId)com.amazon.aace.carControl.CarControlConfiguration
setDefaultZone(String zoneId)com.amazon.aace.carControl.CarControlConfiguration


- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html index b1e9f410f..5fc0ee450 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,15 +78,11 @@ Classes

class  Action   -class  Zone -  - - @@ -185,48 +181,6 @@

Returns
CarControlConfiguration to allow chaining.
- - - -

◆ createControl()

- -
-
-

Public Member Functions

final CarControlConfiguration createEndpoint (String endpointId)
 
final CarControlConfiguration createControl (String controlId, String zoneId)
 
final CarControlConfiguration addAssetId (String assetId)
 
final CarControlConfiguration addPowerController (boolean retrievable)
- - - - - - - - - - - - - - - - - -
final CarControlConfiguration com.amazon.aace.carControl.CarControlConfiguration.createControl (String controlId,
String zoneId 
)
-
-
Deprecated:
Use CarControlConfiguration.createEndpoint().
-
Note
This method is for backward compatibility. Do not use method addMembers() on a zone definition if you create endpoints with createControl(). addMembers() is only compatible with createEndpoint().
-
-Do not use both createControl() and createEndpoint() in your implementation.
-

Begin an endpoint definition using the specified endpoint ID. This creates a single entry in the "endpoints" array of 'aace.carControl'.

-
Note
Do not use the following format for the endpointId: <clientId>::<productId>::<serialNumber>::[-<extEndpoint>]. The Engine internally prepends the 3-part device prefix to your specified endpointId before sending the configuration to the cloud in an AddOrUpdateReport event. Configuring the full ID directly results in duplication and excess characters.
-
Parameters
- - - -
controlIdThe unique identifier for the endpoint.
zoneIdThe unique identifier of the zone the endpoint is located in. Default is "zone.all".
-
-
-
Returns
CarControlConfiguration to allow chaining.
-
@@ -745,9 +699,7 @@

Add the specified endpoint IDs to the definition of the enclosing zone.

-
Note
An endpoint ID added to this zone instance may belong to other zones as well.
-
-Do not use deprecated method createControl() to create endpoints if using this method.
+
Note
An endpoint ID added to this zone instance may belong to other zones as well.
Parameters
@@ -841,7 +793,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_action-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_action-members.html index 0aaadede4..fbd43a2e8 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_action-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_action-members.html @@ -23,7 +23,7 @@

@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_action.html b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_action.html index c26e5f50d..88318dd97 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_action.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_action.html @@ -23,7 +23,7 @@

@@ -100,7 +100,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone.html b/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone.html deleted file mode 100644 index c731973d1..000000000 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -Alexa Auto SDK: com.amazon.aace.carControl.CarControlConfiguration.Zone Class Reference - - - - - - - - - -

-
-
endpointIdsThe IDs of the endpoints belonging to this zone. Endpoint IDs used must correspond to endpoints created with createEndpoint().
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
- - - - - - -
-
Alexa Auto SDK -  2.3.0 -
-
- - - - - - - - - -
-
- - -
- -
- - - -
- -
-
com.amazon.aace.carControl.CarControlConfiguration.Zone Class Reference
-
-
-

Detailed Description

-
Deprecated:
Define your own zone IDs rather than using these constants. For every zone ID you use, create the corresponding zone definition with createZone(). Implicit creation of the 'default' zones listed here may be removed in a future version.
-

Default zone IDs. The zone definition for a default zone is created automatically when an endpoint in your configuration uses the zone's ID.

-
- - -
-

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

- - diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l-members.html index 4659a6403..4f248c16b 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l-members.html @@ -23,7 +23,7 @@ Logo
Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -84,7 +84,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html b/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html index 5f8db6c3a..619e44beb 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -314,7 +314,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration-members.html index fd0a87847..4623ea09a 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration.html index 29a5339a0..a790c8f47 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -153,7 +153,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader-members.html deleted file mode 100644 index 9ded0e49e..000000000 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader-members.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -Alexa Auto SDK: Member List - - - - - - - - - -

-
- - - - - - - -
-
Alexa Auto SDK -  2.3.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
com.amazon.aace.contactuploader.ContactUploader Member List
-
- - - -
-

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

- - diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html b/docs/android/classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html deleted file mode 100644 index 697918d4f..000000000 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - -Alexa Auto SDK: com.amazon.aace.contactuploader.ContactUploader Class Reference - - - - - - - - - -
-
- - - - - - - -
-
Alexa Auto SDK -  2.3.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
com.amazon.aace.contactuploader.ContactUploader Class Referenceabstract
-
-
- - - - -

-Classes

enum  ContactUploadStatus
 
- - - - - - - - - - - - - -

-Public Member Functions

final boolean addContactsBegin ()
 
final boolean addContactsEnd ()
 
final boolean addContactsCancel ()
 
final boolean addContact (String contact)
 
final boolean removeUploadedContacts ()
 
void contactsUploaderStatusChanged (ContactUploadStatus contactUploadStatus, String info)
 
-

Detailed Description

-

ContactUploader should be extended to upload the local (aka native) contacts to the Alexa Cloud. ContactUploader Engine uploads the contacts to the Alexa Cloud in batches. The Engine API blocks calls, so platform implementation should make sure ContactUploader is called on a separate process other then the user interface thread.

-

The platform implementation is notified about the status of the upload by contactsUploaderStatusChanged.

-

Member Function Documentation

- -

◆ addContactsBegin()

- -
-
- - - - - - - -
final boolean com.amazon.aace.contactuploader.ContactUploader.addContactsBegin ()
-
-

Notifies the Engine to begin the contact upload.

-

After returning true, the Engine will remove the previously uploaded contacts, if any, and the platform implementation may start calling addContact to upload the contacts.

-
Returns
true on successful start, false if previous upload is in progress or due to any internal error.
- -
-
- -

◆ addContactsEnd()

- -
-
- - - - - - - -
final boolean com.amazon.aace.contactuploader.ContactUploader.addContactsEnd ()
-
-

Notifies the Engine about the completion of the contact upload.

-

The platform implementation to call this when all the contacts are uploaded via

See also
addContact. Engine on returning true, will not accept any contact and shall notify the platform implementation
-
-contactsUploaderStatusChanged about the status of upload.
-
Returns
true on successful, false if no upload in progress or due to any internal error.
- -
-
- -

◆ addContactsCancel()

- -
-
- - - - - - - -
final boolean com.amazon.aace.contactuploader.ContactUploader.addContactsCancel ()
-
-

Notifies the Engine to cancel the upload which is in progress.

-

The platform implementation can call this anytime to cancel the contact upload when it is in progress. Engine on returning , will not accept any contact, and shall notify the platform implementation

See also
contactsUploaderStatusChanged about the cancel status and it shall also remove any partial uploaded contacts from Alexa Cloud.
-
Returns
true on successful, false if no upload in progress or due to any internal error.
- -
-
- -

◆ addContact()

- -
-
- - - - - - - - -
final boolean com.amazon.aace.contactuploader.ContactUploader.addContact (String contact)
-
-

Notifies the Engine to upload the contact.

-

Engine on returning true shall queue this contact for uploading in batches.

-
Parameters
- - -
[in]contactDetails of one contact to upload in structured JSON format. See the following payload structure and the description of each field:
)
{
"id" : "{{STRING}}",
"firstName" : "{{STRING}}",
"lastName" : "{{STRING}}",
"nickName" : "{{STRING}}"
"company" : "{{STRING}}",
"addresses" : [
{
"type" : "{{STRING}}",
"value" : "{{STRING}}",
"label" : "{{STRING}}"
}
]
}
    -
  • id (required): A unique identifier for the contact in the platform contact store.
  • -
  • firstName (optional): The first name of the contact. Limit is 1000 characters.
  • -
  • lastName (optional): The last name of the contact. Limit is 1000 characters.
  • -
  • nickName (optional): The nick name of the contact. Limit is 1000 characters.
  • -
  • company (optional): The company name of the contact. Limit is 1000 characters.
  • -
  • addresses (required): The address information of the contact. At least one address required to be specified.
  • -
  • addresses.type (required): Supported address type is "phonenumber" only. And the max supported phone number per contact is 30.
  • -
  • addresses.value (required): The phone number of the contact. Limit is 100 characters.
  • -
  • addresses.label (optional): The type value of the phone number like HOME. MOBILE, Phone1.
  • -
-
-
-
-
Returns
true if successfully queued, false when contact format is not valid, upload not started or for any internal error.
- -
-
- -

◆ removeUploadedContacts()

- -
-
- - - - - - - -
final boolean com.amazon.aace.contactuploader.ContactUploader.removeUploadedContacts ()
-
-

Notifies the Engine to remove the uploaded local contacts from the Alexa Cloud. This API to be called when the local contacts become unavailable (Example use case, Phone is disconnected from the Head Unit) and contacts were already successfully uploaded to Alexa Cloud.

-

Engine on returning true shall notify the platform implementation about the removal status of contacts via

See also
contactsUploaderStatusChanged.
-
Returns
true on successful, false if upload is in progress or due to any internal error.
- -
-
- -

◆ contactsUploaderStatusChanged()

- -
-
- - - - - - - - - - - - - - - - - - -
void com.amazon.aace.contactuploader.ContactUploader.contactsUploaderStatusChanged (ContactUploadStatus contactUploadStatus,
String info 
)
-
-

Notifies the platform implementation about status that occurred while uploading the batch of contacts or while removing the uploaded contacts.

-
Parameters
- - - -
[in]statusThe ContactUploaderStatus
[in]infoThe string with additional information.
-
-
- -
-
-
- - -
-

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

- - diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_engine-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_engine-members.html index 29db35433..2e613ff1d 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_engine-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_engine-members.html @@ -23,7 +23,7 @@ Logo
Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -73,9 +73,7 @@ - - - +
configure(EngineConfiguration[] configurationList)com.amazon.aace.core.Engine
create(Context context)com.amazon.aace.core.Enginestatic
getProperty(String key)com.amazon.aace.core.Engine
registerPlatformInterface(PlatformInterface platformInterface)com.amazon.aace.core.Engine
setProperty(String key, String value)com.amazon.aace.core.Engine
registerPlatformInterface(PlatformInterface platformInterface)com.amazon.aace.core.Engine
start()com.amazon.aace.core.Engine
stop()com.amazon.aace.core.Engine
@@ -83,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html index 85d96d468..ef546af9e 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -83,10 +83,6 @@   boolean registerPlatformInterface (PlatformInterface platformInterface)   -boolean setProperty (String key, String value) -  -String getProperty (String key) -  @@ -214,71 +210,6 @@

Returns
true if the PlatformInterface instance was registered, else false
See also
com.amazon.aace.core.PlatformInterface
- - - -

◆ setProperty()

- -
-
-

Static Public Member Functions

- - - - - - - - - - - - - - - - - -
boolean com.amazon.aace.core.Engine.setProperty (String key,
String value 
)
-
-
Note
This method is deprecated. Use com.amazon.aace.propertyManager.PropertyManager.setProperty()
-

Sets a property value in the Engine

-
Parameters
- - - -
nameThe name used by the Engine to identify the property. The property name must be one of the property constants recognized by the Engine, e.g. the properties in com.amazon.aace.alexa.AlexaProperties.java
valueThe property setting
-
-
-
Returns
true if the property value was updated or set to the current setting, else false if an error occured.
- -
- - -

◆ getProperty()

- -
-
- - - - - - - - -
String com.amazon.aace.core.Engine.getProperty (String key)
-
-
Note
This method is deprecated. Use com.amazon.aace.propertyManager.PropertyManager.getProperty()
-

Retrieves the setting for the property identified by name from the Engine

-
Parameters
- - -
nameThe name used by the Engine to identify the property. The property name must be one of the property constants recognized by the Engine, e.g. the properties in com.amazon.aace.alexa.AlexaProperties.java
-
-
-
Returns
The property value as a string, or an empty string if the property value was not found
-
@@ -286,7 +217,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface-members.html index ac3046bd9..fc2bf5bd2 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface.html b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface.html index 21ce2f8d6..6cf4de747 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration-members.html index 32214a7a0..34d6a8033 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration.html index cd0b57ebe..3a98b1737 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location-members.html index 29592becb..8c6144869 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -83,7 +83,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location.html b/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location.html index c26b454ba..d1294abab 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -303,7 +303,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location_provider-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location_provider-members.html index 843bc4ae1..2558dd630 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location_provider-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location_provider-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location_provider.html b/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location_provider.html index 10059d167..2790d519c 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location_provider.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1location_1_1_location_provider.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -133,7 +133,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1_logger-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1_logger-members.html index 6072bab79..8205f26e6 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1_logger-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1_logger-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1_logger.html b/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1_logger.html index d358a0e99..2cd33b4b5 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1_logger.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1_logger.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -187,7 +187,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration-members.html index 2d2d13a3a..d8cd1d6ce 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html index d0d9bf5c6..91d099607 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -428,7 +428,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation-members.html index 242835d69..9fb2fb1a1 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -84,7 +84,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html b/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html index de6f1b7a8..a4798a5b7 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -410,7 +410,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration-members.html similarity index 72% rename from docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone-members.html rename to docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration-members.html index 9e6191b49..b28638f64 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -60,23 +60,24 @@
-
com.amazon.aace.carControl.CarControlConfiguration.Zone Member List
+
com.amazon.aace.navigation.config.NavigationConfiguration Member List
-

This is the complete list of members for com.amazon.aace.carControl.CarControlConfiguration.Zone, including all inherited members.

+

This is the complete list of members for com.amazon.aace.navigation.config.NavigationConfiguration, including all inherited members.

+
createNavigationConfig(final String providerName)com.amazon.aace.navigation.config.NavigationConfigurationstatic

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration.html new file mode 100644 index 000000000..b50a28cde --- /dev/null +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration.html @@ -0,0 +1,127 @@ + + + + + + + +Alexa Auto SDK: com.amazon.aace.navigation.config.NavigationConfiguration Class Reference + + + + + + + + + +

+
+ + + + + + + +
+
Alexa Auto SDK +  3.0.0 +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
com.amazon.aace.navigation.config.NavigationConfiguration Class Reference
+
+
+ + + + +

+Static Public Member Functions

static EngineConfiguration createNavigationConfig (final String providerName)
 
+

Detailed Description

+

A factory interface for creating Navigation configuration objects

+

Member Function Documentation

+ +

◆ createNavigationConfig()

+ +
+
+ + + + + +
+ + + + + + + + +
static EngineConfiguration com.amazon.aace.navigation.config.NavigationConfiguration.createNavigationConfig (final String providerName)
+
+static
+
+

Factory method used to programmatically generate navigation configuration data. The data generated by this method is equivalent to providing the following JSON values in a configuration file:

+
{
"aace.navigation": {
"providerName": <SERVICE_NAME>
}
Parameters
+ + +
[in]providerNameThe navigation provider name
+
+
+ +
+
+
+ + +
+

+ Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 + +

+ + diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider-members.html index 1d79ece65..02a0ec648 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider-members.html @@ -23,7 +23,7 @@ Logo
Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider.html b/docs/android/classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider.html index fd65aa23f..9fe11b24e 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -169,7 +169,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller-members.html index 542c97e4f..f41b0b2ef 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -92,7 +92,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html b/docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html index 95580e9ed..2fa1cfd89 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -743,7 +743,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager-members.html index e2591ea2b..d302524b4 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html b/docs/android/classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html index 675c057d6..9461475c2 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -246,7 +246,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration-members.html index 068172ad4..b770ccce9 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration.html index 0d2fab108..aaea85eb7 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -119,7 +119,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration-members.html b/docs/android/classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration-members.html index 065671e44..725c64d4f 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration-members.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration.html b/docs/android/classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration.html index 33bd21d76..1501ae09e 100644 --- a/docs/android/classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration.html +++ b/docs/android/classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -159,7 +159,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test-members.html b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test-members.html index 8d41cb0ad..e1f1cadcf 100644 --- a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test-members.html +++ b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test.html b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test.html index 8d5c8e713..68b76a4d0 100644 --- a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test.html +++ b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_example_unit_test.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client-members.html b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client-members.html index d95f24ff0..03819170e 100644 --- a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client-members.html +++ b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client.html b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client.html index ec5badb25..98e834a55 100644 --- a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client.html +++ b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -181,7 +181,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info-members.html b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info-members.html index 34ab0b1d4..6389ab401 100644 --- a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info-members.html +++ b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info.html b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info.html index ca6de8b96..ef658d8c3 100644 --- a/docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info.html +++ b/docs/android/classcom_1_1amazon_1_1maccandroid_1_1model_1_1_player_playback_info.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/classes.html b/docs/android/classes.html index dc9ab8c85..4aff3f1f0 100644 --- a/docs/android/classes.html +++ b/docs/android/classes.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -64,7 +64,7 @@
Class Index
-
a | c | d | e | f | i | l | m | n | p | s | t | v | z
+
a | c | d | e | f | i | l | m | n | p | s | t | v
@@ -105,8 +105,6 @@ - - @@ -117,8 +115,8 @@ - + @@ -128,8 +126,8 @@ - + @@ -159,6 +157,7 @@ + @@ -196,19 +195,15 @@ - - -
  a  
AlexaClient.ConnectionChangedReason (com.amazon.aace.alexa)   
PhoneCallController.ConnectionState (com.amazon.aace.phonecontrol)   
AlexaClient.ConnectionStatus (com.amazon.aace.alexa)   
ContactUploader (com.amazon.aace.contactuploader)   
ContactUploader.ContactUploadStatus (com.amazon.aace.contactuploader)   
LocalMediaSource.ContentSelector (com.amazon.aace.alexa)   
  d  
  e  
AudioFormat.Encoding (com.amazon.aace.audio)   
AudioStream.Encoding (com.amazon.aace.audio)   
AudioFormat.Encoding (com.amazon.aace.audio)   
Engine (com.amazon.aace.core)   
EngineConfiguration (com.amazon.aace.core.config)   
EqualizerController.EqualizerBand (com.amazon.aace.alexa)   
  f  
ExternalMediaAdapter.Favorites (com.amazon.aace.alexa)   
LocalMediaSource.Favorites (com.amazon.aace.alexa)   
ExternalMediaAdapter.Favorites (com.amazon.aace.alexa)   
TemplateRuntime.FocusState (com.amazon.aace.alexa)   
  i  
ExternalMediaAdapter.Navigation (com.amazon.aace.alexa)   
Navigation (com.amazon.aace.navigation)   
NavigationConfiguration (com.amazon.aace.navigation.config)   
NetworkInfoProvider (com.amazon.aace.network)   
NetworkInfoProvider.NetworkStatus (com.amazon.aace.network)   
Notifications (com.amazon.aace.alexa)   
VehicleConfiguration (com.amazon.aace.vehicle.config)   
VehicleConfiguration.VehiclePropertyType (com.amazon.aace.vehicle.config)   
  z  
-
CarControlConfiguration.Zone (com.amazon.aace.carControl)   
-
a | c | d | e | f | i | l | m | n | p | s | t | v | z
+
a | c | d | e | f | i | l | m | n | p | s | t | v

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/deprecated.html b/docs/android/deprecated.html index e8f972cf8..56bc3d069 100644 --- a/docs/android/deprecated.html +++ b/docs/android/deprecated.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -65,25 +65,17 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type-members.html index 5b6985c6f..9deb48aa7 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type.html index cbf231ffa..bc4526672 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -117,7 +117,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state-members.html index 1b26f8e8c..35ae4ab5a 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -87,7 +87,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state.html index d3200af13..c75ddde83 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -270,7 +270,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error-members.html index 7cc3ec41e..f00185366 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -90,7 +90,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html index cfa668f33..1a9f88423 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -321,7 +321,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state-members.html index cd1a9a3e9..aefe876f1 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html index cf841488c..78bbc8d6e 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -151,7 +151,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason-members.html index 048f69bee..0c2781ceb 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -93,7 +93,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason.html index dfbcafa4c..c31896d49 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -372,7 +372,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status-members.html index 65511c7be..a8cdbac01 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status.html index a9a6a0e54..b0368e337 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_dialog_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_dialog_state-members.html index 85ded022f..75678bb8d 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_dialog_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_dialog_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_dialog_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_dialog_state.html index 935ce9f1d..91b3089ca 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_dialog_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_dialog_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -168,7 +168,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker_1_1_speaker_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker_1_1_speaker_type-members.html index 345f9428d..7617398c8 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker_1_1_speaker_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker_1_1_speaker_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker_1_1_speaker_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker_1_1_speaker_type.html index 62d6bc20a..ad379a78a 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker_1_1_speaker_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_speaker_1_1_speaker_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -117,7 +117,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity-members.html index 5d16ee755..976688e58 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity.html index a22c1eb66..48662f5e7 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -185,7 +185,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error-members.html index 3b252ffa2..a420d2c9a 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -90,7 +90,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html index 1a351178e..a985b632c 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -321,7 +321,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state-members.html index c9b9e8a12..113950123 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html index 322c32fed..c91d43a72 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -151,7 +151,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band-members.html index 1c95b81b9..a0c858b87 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band.html index 47a23cfef..c0dfdbd86 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites-members.html index 059e7ee44..b4ba9c089 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html index 28e27e520..f89ac34d1 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type-members.html index 1c7267d80..e0669b348 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type.html index f6610f515..9a101ea4c 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -185,7 +185,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation-members.html index 83b0d6e6c..d614dba7a 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation.html index 8e222dabd..95ec01c0d 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type-members.html index cc1660c9b..8665c5f04 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -91,7 +91,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html index 0b1185e5f..d9b8a4e87 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -338,7 +338,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_supported_playback_operation-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_supported_playback_operation-members.html index 3e2c88a91..8559777fc 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_supported_playback_operation-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_supported_playback_operation-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_supported_playback_operation.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_supported_playback_operation.html index 3591315e5..2f193c3b8 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_supported_playback_operation.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_supported_playback_operation.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector-members.html index 4de830716..2e944bb1b 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector.html index 8aaec4028..97d12c2be 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites-members.html index 784113e03..3b3c43780 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html index 3f0762072..5e049f823 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type-members.html index 962a65757..67c6ce438 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type.html index 42bcad361..a2ede6fc3 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -185,7 +185,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type-members.html index 66d5fec65..59d2dcb2a 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -91,7 +91,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html index 6c2d4cf51..e8d02aa3c 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -338,7 +338,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source-members.html index 687085675..5d0ae74fc 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -85,7 +85,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source.html index 0c6423190..01c5c5fb1 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -236,7 +236,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_supported_playback_operation-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_supported_playback_operation-members.html index f811a730a..100ea7fb3 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_supported_playback_operation-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_supported_playback_operation-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_supported_playback_operation.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_supported_playback_operation.html index d077a090b..7165bb647 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_supported_playback_operation.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_supported_playback_operation.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state-members.html index e0301ab38..0ab8ba8de 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state.html index cefcc8ccd..70b4908ea 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button-members.html index 87604c6c1..c91405375 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button.html index cf6b007c0..0f97bb9be 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -185,7 +185,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle-members.html index 9fc361bbd..ea997a078 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle.html index 491721c9e..76c84ef41 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -168,7 +168,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer_1_1_initiator-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer_1_1_initiator-members.html index 802019c90..fe2b5bd6a 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer_1_1_initiator-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer_1_1_initiator-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer_1_1_initiator.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer_1_1_initiator.html index a1e2367b4..daec5038f 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer_1_1_initiator.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer_1_1_initiator.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state-members.html index 2e9b44721..579a9d11f 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state.html index e06f35cc0..6970b8d67 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity-members.html index 6c506e121..21d81bdb1 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity.html index b976cd26e..e82420af3 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -185,7 +185,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event-members.html index f6fdeb4f1..3185e8d2b 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event.html index fc0d989e3..8c69af873 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -168,7 +168,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding-members.html index a48176346..b80040693 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding.html index 493b56810..df577079e 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider_1_1_audio_input_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider_1_1_audio_input_type-members.html index 435499283..8da7cf058 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider_1_1_audio_input_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider_1_1_audio_input_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider_1_1_audio_input_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider_1_1_audio_input_type.html index c15129b55..adce6a6b2 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider_1_1_audio_input_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_input_provider_1_1_audio_input_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_error-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_error-members.html index 1e37a45cc..f2d1a00a3 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_error-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_error-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_error.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_error.html index 442e8f9a9..2c013f9f9 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_error.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_error.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -168,7 +168,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state-members.html index ecb84fcc6..4976b6082 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state.html index fcfed4a30..860af0b31 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -134,7 +134,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_muted_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_muted_state-members.html index 336e95430..cfa01c7d0 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_muted_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_muted_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_muted_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_muted_state.html index 8f30d5af0..32352037b 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_muted_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_muted_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider_1_1_audio_output_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider_1_1_audio_output_type-members.html index aca2a596d..1dd1b662d 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider_1_1_audio_output_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider_1_1_audio_output_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider_1_1_audio_output_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider_1_1_audio_output_type.html index 638af4ab8..fa363ac8a 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider_1_1_audio_output_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_provider_1_1_audio_output_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding-members.html index a7ea6a9fb..cae8f69ea 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding.html index 504bea956..193695a4c 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state-members.html index b7188fa3a..a6046ebf4 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html index 5f679d3b5..e35006223 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -185,7 +185,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state_changed_reason-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state_changed_reason-members.html index 949e04375..afb0ec794 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state_changed_reason-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state_changed_reason-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state_changed_reason.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state_changed_reason.html index 1dc9da4c4..072266d0e 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state_changed_reason.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state_changed_reason.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -185,7 +185,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status-members.html deleted file mode 100644 index cb1a91a1e..000000000 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status-members.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -Alexa Auto SDK: Member List - - - - - - - - - -

-
- - - - - - - -
-
Alexa Auto SDK -  2.3.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus Member List
-
- - - -
-

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

- - diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html deleted file mode 100644 index 71570ad72..000000000 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - -Alexa Auto SDK: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus Enum Reference - - - - - - - - - -
-
- - - - - - - -
-
Alexa Auto SDK -  2.3.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus Enum Reference
-
-
- - - - - - - - - - - - - - - - - - - - -

-Public Attributes

 UPLOAD_CONTACTS_STARTED =("UPLOAD_CONTACTS_STARTED")
 
 UPLOAD_CONTACTS_UPLOADING =("UPLOAD_CONTACTS_UPLOADING")
 
 UPLOAD_CONTACTS_COMPLETED =("UPLOAD_CONTACTS_COMPLETED")
 
 UPLOAD_CONTACTS_CANCELED =("UPLOAD_CONTACTS_CANCELED")
 
 UPLOAD_CONTACTS_ERROR =("UPLOAD_CONTACTS_ERROR")
 
 REMOVE_CONTACTS_STARTED =("REMOVE_CONTACTS_STARTED")
 
 REMOVE_CONTACTS_COMPLETED =("REMOVE_CONTACTS_COMPLETED")
 
 REMOVE_CONTACTS_ERROR =("REMOVE_CONTACTS_ERROR")
 
 UNKNOWN_ERROR =("UNKNOWN_ERROR")
 
-

Detailed Description

-

Describes the status of contact uploader.

See also
aace::contactUploader::ContactUploaderEngineInterface::ContactUploadStatus
-

Member Data Documentation

- -

◆ UPLOAD_CONTACTS_STARTED

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.UPLOAD_CONTACTS_STARTED =("UPLOAD_CONTACTS_STARTED")
-
-

Uploading of contacts to Cloud has started

- -
-
- -

◆ UPLOAD_CONTACTS_UPLOADING

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.UPLOAD_CONTACTS_UPLOADING =("UPLOAD_CONTACTS_UPLOADING")
-
-

Uploading of contacts to Cloud is in progress

- -
-
- -

◆ UPLOAD_CONTACTS_COMPLETED

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.UPLOAD_CONTACTS_COMPLETED =("UPLOAD_CONTACTS_COMPLETED")
-
-

Uploading of contacts to Cloud completed.

- -
-
- -

◆ UPLOAD_CONTACTS_CANCELED

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.UPLOAD_CONTACTS_CANCELED =("UPLOAD_CONTACTS_CANCELED")
-
-

Uploading of contacts is Canceled.

- -
-
- -

◆ UPLOAD_CONTACTS_ERROR

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.UPLOAD_CONTACTS_ERROR =("UPLOAD_CONTACTS_ERROR")
-
-

Error while uploading the contacts.

- -
-
- -

◆ REMOVE_CONTACTS_STARTED

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.REMOVE_CONTACTS_STARTED =("REMOVE_CONTACTS_STARTED")
-
-

Removing the contacts from Cloud.

- -
-
- -

◆ REMOVE_CONTACTS_COMPLETED

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.REMOVE_CONTACTS_COMPLETED =("REMOVE_CONTACTS_COMPLETED")
-
-

Removed the contacts from Cloud

- -
-
- -

◆ REMOVE_CONTACTS_ERROR

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.REMOVE_CONTACTS_ERROR =("REMOVE_CONTACTS_ERROR")
-
-

Error while removing contacts from Cloud.

- -
-
- -

◆ UNKNOWN_ERROR

- -
-
- - - - -
com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.UNKNOWN_ERROR =("UNKNOWN_ERROR")
-
-

Unknown Error.

- -
-
-
- - -
-

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

- - diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1logger_1_1_logger_1_1_level-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1logger_1_1_logger_1_1_level-members.html index 1a60e58c6..d7fcb5abb 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1logger_1_1_logger_1_1_level-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1logger_1_1_logger_1_1_level-members.html @@ -23,7 +23,7 @@ Logo
Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1logger_1_1_logger_1_1_level.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1logger_1_1_logger_1_1_level.html index 60e480a71..6954eeead 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1logger_1_1_logger_1_1_level.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1logger_1_1_logger_1_1_level.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -185,7 +185,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status-members.html index 78d75a570..11fd69759 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html index 0a5092a18..9707db7cd 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -168,7 +168,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error-members.html index 010274248..b1f2e0a87 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error.html index f80977b96..1364880ca 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_error.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -169,7 +169,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state-members.html index aca8b1d97..bde6d482c 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state.html index 3e1ee3751..db90e87ae 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_call_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -194,7 +194,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property-members.html index a9e010ba8..9a757a027 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property.html index cde84cc4e..7e0290144 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_calling_device_configuration_property.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -100,7 +100,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state-members.html index d9f96d03b..0ebc43357 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state.html index e80aeca7e..ff78973bd 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -118,7 +118,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error-members.html index 381a21ff8..1cd9a57b0 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error.html index 90213680d..c05962856 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_d_t_m_f_error.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -118,7 +118,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager_1_1_property_state-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager_1_1_property_state-members.html index b7831c41e..296718a22 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager_1_1_property_state-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager_1_1_property_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager_1_1_property_state.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager_1_1_property_state.html index 9a558a728..24451e101 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager_1_1_property_state.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager_1_1_property_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -117,7 +117,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type-members.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type-members.html index c9cec84f4..e1f205f1b 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type-members.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -89,7 +89,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type.html b/docs/android/enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type.html index a361d8c8a..c265f84df 100644 --- a/docs/android/enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type.html +++ b/docs/android/enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -323,7 +323,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/functions.html b/docs/android/functions.html index fac5f9b19..4dd3c9af7 100644 --- a/docs/android/functions.html +++ b/docs/android/functions.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -100,18 +100,6 @@

- a -

  • addAssetId() : com.amazon.aace.carControl.CarControlConfiguration
  • -
  • addContact() -: com.amazon.aace.contactuploader.ContactUploader -
  • -
  • addContactsBegin() -: com.amazon.aace.contactuploader.ContactUploader -
  • -
  • addContactsCancel() -: com.amazon.aace.contactuploader.ContactUploader -
  • -
  • addContactsEnd() -: com.amazon.aace.contactuploader.ContactUploader -
  • addCustomAssetsPath() : com.amazon.aace.carControl.CarControlConfiguration
  • @@ -320,9 +308,6 @@

    - c -

    • CONTACT : com.amazon.aace.addressbook.AddressBook.AddressBookType
    • -
    • contactsUploaderStatusChanged() -: com.amazon.aace.contactuploader.ContactUploader -
    • COUNTRY_LIST : com.amazon.aace.vehicle.config.VehicleConfiguration.VehiclePropertyType
    • @@ -354,17 +339,14 @@

      - c -

      • createConsoleSinkConfig() : com.amazon.aace.logger.config.LoggerConfiguration
      • -
      • createControl() -: com.amazon.aace.carControl.CarControlConfiguration -
      • createCurlConfig() -: com.amazon.aace.alexa.config.AlexaConfiguration +: com.amazon.aace.alexa.config.AlexaConfiguration
      • createDeviceInfoConfig() : com.amazon.aace.alexa.config.AlexaConfiguration
      • createDeviceSettingsConfig() -: com.amazon.aace.alexa.config.AlexaConfiguration +: com.amazon.aace.alexa.config.AlexaConfiguration
      • createEndpoint() : com.amazon.aace.carControl.CarControlConfiguration @@ -387,6 +369,9 @@

        - c -

        • createMiscStorageConfig() : com.amazon.aace.alexa.config.AlexaConfiguration
        • +
        • createNavigationConfig() +: com.amazon.aace.navigation.config.NavigationConfiguration +
        • createNotificationsConfig() : com.amazon.aace.alexa.config.AlexaConfiguration
        • @@ -394,7 +379,7 @@

          - c -

            : com.amazon.aace.vehicle.config.VehicleConfiguration
          • createSettingsConfig() -: com.amazon.aace.alexa.config.AlexaConfiguration +: com.amazon.aace.alexa.config.AlexaConfiguration
          • createSpeakerManagerConfig() : com.amazon.aace.alexa.config.AlexaConfiguration @@ -456,9 +441,6 @@

            - d -

              : com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType , com.amazon.aace.alexa.LocalMediaSource.PlayControlType -
            • disableWakewordDetection() -: com.amazon.aace.alexa.SpeechRecognizer -
            • DISCONNECTED : com.amazon.aace.alexa.AlexaClient.ConnectionStatus , com.amazon.aace.network.NetworkInfoProvider.NetworkStatus @@ -498,9 +480,6 @@

              - e -

                : com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType , com.amazon.aace.alexa.LocalMediaSource.PlayControlType -
              • enableWakewordDetection() -: com.amazon.aace.alexa.SpeechRecognizer -
              • endOfSpeechDetected() : com.amazon.aace.alexa.SpeechRecognizer
              • @@ -626,8 +605,7 @@

                - g -

                  : com.amazon.aace.audio.AudioOutput
                • getProperty() -: com.amazon.aace.core.Engine -, com.amazon.aace.propertyManager.PropertyManager +: com.amazon.aace.propertyManager.PropertyManager
                • getRangeControllerValue() : com.amazon.aace.carControl.CarControl @@ -720,9 +698,6 @@

                  - i -

                  @@ -966,7 +941,7 @@

                  - p -

                    , com.amazon.aace.alexa.LocalMediaSource.MediaType
                  • prepare() -: com.amazon.aace.audio.AudioOutput +: com.amazon.aace.audio.AudioOutput
                  • PRESET : com.amazon.aace.alexa.LocalMediaSource.ContentSelector @@ -1011,24 +986,12 @@

                    - r -

                    • registerPlatformInterface() : com.amazon.aace.core.Engine
                    • -
                    • REMOVE_CONTACTS_COMPLETED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                    • -
                    • REMOVE_CONTACTS_ERROR -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                    • -
                    • REMOVE_CONTACTS_STARTED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                    • removeAllAlerts() : com.amazon.aace.alexa.Alerts
                    • removeDiscoveredPlayer() : com.amazon.aace.alexa.ExternalMediaAdapter
                    • -
                    • removeUploadedContacts() -: com.amazon.aace.contactuploader.ContactUploader -
                    • renderDocument() : com.amazon.aace.apl.APL
                    • @@ -1036,7 +999,7 @@

                      - r -

                        : com.amazon.aace.apl.APL
                      • renderPlayerInfo() -: com.amazon.aace.alexa.TemplateRuntime +: com.amazon.aace.alexa.TemplateRuntime
                      • renderTemplate() : com.amazon.aace.alexa.TemplateRuntime @@ -1142,8 +1105,7 @@

                        - s -

                          : com.amazon.aace.audio.AudioOutput
                        • setProperty() -: com.amazon.aace.core.Engine -, com.amazon.aace.propertyManager.PropertyManager +: com.amazon.aace.propertyManager.PropertyManager
                        • setRangeControllerValue() : com.amazon.aace.carControl.CarControl @@ -1316,7 +1278,6 @@

                          - u -

                          • UNKNOWN_ERROR : com.amazon.aace.alexa.AlexaClient.AuthError , com.amazon.aace.alexa.AuthProvider.AuthError -, com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus
                          • UNRECOVERABLE_ERROR : com.amazon.aace.alexa.AlexaClient.AuthState @@ -1327,21 +1288,6 @@

                            - u -

                              : com.amazon.aace.alexa.AlexaClient.AuthError , com.amazon.aace.alexa.AuthProvider.AuthError -
                            • UPLOAD_CONTACTS_CANCELED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                            • -
                            • UPLOAD_CONTACTS_COMPLETED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                            • -
                            • UPLOAD_CONTACTS_ERROR -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                            • -
                            • UPLOAD_CONTACTS_STARTED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                            • -
                            • UPLOAD_CONTACTS_UPLOADING -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                            • USB : com.amazon.aace.alexa.LocalMediaSource.Source
                            • @@ -1395,7 +1341,7 @@

                              - y -


                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/functions_func.html b/docs/android/functions_func.html index 44649db96..b8507c0c6 100644 --- a/docs/android/functions_func.html +++ b/docs/android/functions_func.html @@ -23,7 +23,7 @@ Logo

                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                @@ -84,18 +84,6 @@

                                - a -

                                • addAssetId() : com.amazon.aace.carControl.CarControlConfiguration
                                • -
                                • addContact() -: com.amazon.aace.contactuploader.ContactUploader -
                                • -
                                • addContactsBegin() -: com.amazon.aace.contactuploader.ContactUploader -
                                • -
                                • addContactsCancel() -: com.amazon.aace.contactuploader.ContactUploader -
                                • -
                                • addContactsEnd() -: com.amazon.aace.contactuploader.ContactUploader -
                                • addCustomAssetsPath() : com.amazon.aace.carControl.CarControlConfiguration
                                • @@ -222,9 +210,6 @@

                                  - c -

                                  • connectionStatusChanged() : com.amazon.aace.alexa.AlexaClient
                                  • -
                                  • contactsUploaderStatusChanged() -: com.amazon.aace.contactuploader.ContactUploader -
                                  • create() : com.amazon.aace.carControl.CarControlConfiguration , com.amazon.aace.core.Engine @@ -253,9 +238,6 @@

                                    - c -

                                    • createConsoleSinkConfig() : com.amazon.aace.logger.config.LoggerConfiguration
                                    • -
                                    • createControl() -: com.amazon.aace.carControl.CarControlConfiguration -
                                    • createCurlConfig() : com.amazon.aace.alexa.config.AlexaConfiguration
                                    • @@ -286,6 +268,9 @@

                                      - c -

                                      • createMiscStorageConfig() : com.amazon.aace.alexa.config.AlexaConfiguration
                                      • +
                                      • createNavigationConfig() +: com.amazon.aace.navigation.config.NavigationConfiguration +
                                      • createNotificationsConfig() : com.amazon.aace.alexa.config.AlexaConfiguration
                                      • @@ -329,9 +314,6 @@

                                        - d -

                                        • dialogStateChanged() : com.amazon.aace.alexa.AlexaClient
                                        • -
                                        • disableWakewordDetection() -: com.amazon.aace.alexa.SpeechRecognizer -
                                        • displayCardCleared() : com.amazon.aace.alexa.TemplateRuntime
                                        • @@ -342,9 +324,6 @@

                                          - d -

                                            - e -

                                              -
                                            • enableWakewordDetection() -: com.amazon.aace.alexa.SpeechRecognizer -
                                            • endOfSpeechDetected() : com.amazon.aace.alexa.SpeechRecognizer
                                            • @@ -413,8 +392,7 @@

                                              - g -

                                                : com.amazon.aace.audio.AudioOutput
                                              • getProperty() -: com.amazon.aace.core.Engine -, com.amazon.aace.propertyManager.PropertyManager +: com.amazon.aace.propertyManager.PropertyManager
                                              • getRangeControllerValue() : com.amazon.aace.carControl.CarControl @@ -462,9 +440,6 @@

                                                - i -

                                                @@ -604,9 +579,6 @@

                                                - r -

                                                • removeDiscoveredPlayer() : com.amazon.aace.alexa.ExternalMediaAdapter
                                                • -
                                                • removeUploadedContacts() -: com.amazon.aace.contactuploader.ContactUploader -
                                                • renderDocument() : com.amazon.aace.apl.APL
                                                • @@ -614,10 +586,10 @@

                                                  - r -

                                                    : com.amazon.aace.apl.APL
                                                  • renderPlayerInfo() -: com.amazon.aace.alexa.TemplateRuntime +: com.amazon.aace.alexa.TemplateRuntime
                                                  • renderTemplate() -: com.amazon.aace.alexa.TemplateRuntime +: com.amazon.aace.alexa.TemplateRuntime
                                                  • reportDiscoveredPlayers() : com.amazon.aace.alexa.ExternalMediaAdapter @@ -680,8 +652,7 @@

                                                    - s -

                                                      : com.amazon.aace.audio.AudioOutput
                                                    • setProperty() -: com.amazon.aace.core.Engine -, com.amazon.aace.propertyManager.PropertyManager +: com.amazon.aace.propertyManager.PropertyManager
                                                    • setRangeControllerValue() : com.amazon.aace.carControl.CarControl @@ -766,7 +737,7 @@

                                                      - w -


                                                        - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/functions_vars.html b/docs/android/functions_vars.html index 0e7843da2..75605591b 100644 --- a/docs/android/functions_vars.html +++ b/docs/android/functions_vars.html @@ -23,7 +23,7 @@ Logo

                                                        Alexa Auto SDK -  2.3.0 +  3.0.0
                                                        @@ -526,15 +526,6 @@

                                                        - r -

                                                        • REFRESHING_TOKEN : com.amazon.aace.cbl.CBL.CBLState
                                                        • -
                                                        • REMOVE_CONTACTS_COMPLETED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                                                        • -
                                                        • REMOVE_CONTACTS_ERROR -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                                                        • -
                                                        • REMOVE_CONTACTS_STARTED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                                                        • REPEAT : com.amazon.aace.alexa.PlaybackController.PlaybackToggle
                                                        • @@ -696,7 +687,6 @@

                                                          - u -

                                                          • UNKNOWN_ERROR : com.amazon.aace.alexa.AlexaClient.AuthError , com.amazon.aace.alexa.AuthProvider.AuthError -, com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus
                                                          • UNRECOVERABLE_ERROR : com.amazon.aace.alexa.AlexaClient.AuthState @@ -707,21 +697,6 @@

                                                            - u -

                                                              : com.amazon.aace.alexa.AlexaClient.AuthError , com.amazon.aace.alexa.AuthProvider.AuthError -
                                                            • UPLOAD_CONTACTS_CANCELED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                                                            • -
                                                            • UPLOAD_CONTACTS_COMPLETED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                                                            • -
                                                            • UPLOAD_CONTACTS_ERROR -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                                                            • -
                                                            • UPLOAD_CONTACTS_STARTED -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                                                            • -
                                                            • UPLOAD_CONTACTS_UPLOADING -: com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus -
                                                            • USB : com.amazon.aace.alexa.LocalMediaSource.Source
                                                            • @@ -764,7 +739,7 @@

                                                              - y -


                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/hierarchy.html b/docs/android/hierarchy.html index c94eb2cec..07db9ddc5 100644 --- a/docs/android/hierarchy.html +++ b/docs/android/hierarchy.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -88,32 +88,32 @@  Ccom.amazon.aace.alexa.AlexaClient.ConnectionChangedReason  Ccom.amazon.aace.phonecontrol.PhoneCallController.ConnectionState  Ccom.amazon.aace.alexa.AlexaClient.ConnectionStatus - Ccom.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus - Ccom.amazon.aace.alexa.LocalMediaSource.ContentSelector - Ccom.amazon.aace.alexa.AlexaClient.DialogState - Ccom.amazon.aace.phonecontrol.PhoneCallController.DTMFError + Ccom.amazon.aace.alexa.LocalMediaSource.ContentSelector + Ccom.amazon.aace.alexa.AlexaClient.DialogState + Ccom.amazon.aace.phonecontrol.PhoneCallController.DTMFError + Ccom.amazon.aace.audio.AudioStream.Encoding  Ccom.amazon.aace.audio.AudioFormat.Encoding - Ccom.amazon.aace.audio.AudioStream.Encoding - Ccom.amazon.aace.core.Engine - Ccom.amazon.aace.core.config.EngineConfiguration - Ccom.amazon.aace.carControl.CarControlConfiguration - Ccom.amazon.aace.alexa.EqualizerController.EqualizerBand - Ccom.amazon.maccandroid.ExampleUnitTest + Ccom.amazon.aace.core.Engine + Ccom.amazon.aace.core.config.EngineConfiguration + Ccom.amazon.aace.carControl.CarControlConfiguration + Ccom.amazon.aace.alexa.EqualizerController.EqualizerBand + Ccom.amazon.maccandroid.ExampleUnitTest + Ccom.amazon.aace.alexa.LocalMediaSource.Favorites  Ccom.amazon.aace.alexa.ExternalMediaAdapter.Favorites - Ccom.amazon.aace.alexa.LocalMediaSource.Favorites - Ccom.amazon.aace.alexa.TemplateRuntime.FocusState - Ccom.amazon.aace.alexa.Notifications.IndicatorState - Ccom.amazon.aace.alexa.SpeechRecognizer.Initiator - Ccom.amazon.aace.logger.Logger.Level - Ccom.amazon.aace.location.Location - Ccom.amazon.aace.logger.config.LoggerConfiguration - Ccom.amazon.maccandroid.MACCAndroidClient - Ccom.amazon.aace.audio.AudioOutput.MediaError - Ccom.amazon.aace.audio.AudioOutput.MediaState - Ccom.amazon.aace.alexa.ExternalMediaAdapter.MediaType - Ccom.amazon.aace.alexa.LocalMediaSource.MediaType - Ccom.amazon.aace.audio.AudioOutput.MutedState - Ccom.amazon.aace.alexa.ExternalMediaAdapter.Navigation + Ccom.amazon.aace.alexa.TemplateRuntime.FocusState + Ccom.amazon.aace.alexa.Notifications.IndicatorState + Ccom.amazon.aace.alexa.SpeechRecognizer.Initiator + Ccom.amazon.aace.logger.Logger.Level + Ccom.amazon.aace.location.Location + Ccom.amazon.aace.logger.config.LoggerConfiguration + Ccom.amazon.maccandroid.MACCAndroidClient + Ccom.amazon.aace.audio.AudioOutput.MediaError + Ccom.amazon.aace.audio.AudioOutput.MediaState + Ccom.amazon.aace.alexa.ExternalMediaAdapter.MediaType + Ccom.amazon.aace.alexa.LocalMediaSource.MediaType + Ccom.amazon.aace.audio.AudioOutput.MutedState + Ccom.amazon.aace.alexa.ExternalMediaAdapter.Navigation + Ccom.amazon.aace.navigation.config.NavigationConfiguration  Ccom.amazon.aace.network.NetworkInfoProvider.NetworkStatus  Ccom.amazon.aace.core.PlatformInterface  Ccom.amazon.aace.alexa.Alerts @@ -135,29 +135,27 @@  Ccom.amazon.aace.audio.AudioOutputProvider  Ccom.amazon.aace.carControl.CarControl  Ccom.amazon.aace.cbl.CBL - Ccom.amazon.aace.contactuploader.ContactUploader - Ccom.amazon.aace.location.LocationProvider - Ccom.amazon.aace.logger.Logger - Ccom.amazon.aace.navigation.Navigation - Ccom.amazon.aace.network.NetworkInfoProvider - Ccom.amazon.aace.phonecontrol.PhoneCallController - Ccom.amazon.aace.propertyManager.PropertyManager - Ccom.amazon.aace.alexa.PlaybackController.PlaybackButton - Ccom.amazon.aace.alexa.PlaybackController.PlaybackToggle - Ccom.amazon.aace.alexa.LocalMediaSource.PlayControlType - Ccom.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType - Ccom.amazon.aace.alexa.AudioPlayer.PlayerActivity - Ccom.amazon.aace.alexa.TemplateRuntime.PlayerActivity - Ccom.amazon.maccandroid.model.PlayerPlaybackInfo - Ccom.amazon.aace.propertyManager.PropertyManager.PropertyState - Ccom.amazon.aace.alexa.LocalMediaSource.Source - Ccom.amazon.aace.alexa.AlexaSpeaker.SpeakerType - Ccom.amazon.aace.storage.config.StorageConfiguration - Ccom.amazon.aace.alexa.LocalMediaSource.SupportedPlaybackOperation - Ccom.amazon.aace.alexa.ExternalMediaAdapter.SupportedPlaybackOperation - Ccom.amazon.aace.vehicle.config.VehicleConfiguration - Ccom.amazon.aace.vehicle.config.VehicleConfiguration.VehiclePropertyType - Ccom.amazon.aace.carControl.CarControlConfiguration.Zone + Ccom.amazon.aace.location.LocationProvider + Ccom.amazon.aace.logger.Logger + Ccom.amazon.aace.navigation.Navigation + Ccom.amazon.aace.network.NetworkInfoProvider + Ccom.amazon.aace.phonecontrol.PhoneCallController + Ccom.amazon.aace.propertyManager.PropertyManager + Ccom.amazon.aace.alexa.PlaybackController.PlaybackButton + Ccom.amazon.aace.alexa.PlaybackController.PlaybackToggle + Ccom.amazon.aace.alexa.LocalMediaSource.PlayControlType + Ccom.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType + Ccom.amazon.aace.alexa.AudioPlayer.PlayerActivity + Ccom.amazon.aace.alexa.TemplateRuntime.PlayerActivity + Ccom.amazon.maccandroid.model.PlayerPlaybackInfo + Ccom.amazon.aace.propertyManager.PropertyManager.PropertyState + Ccom.amazon.aace.alexa.LocalMediaSource.Source + Ccom.amazon.aace.alexa.AlexaSpeaker.SpeakerType + Ccom.amazon.aace.storage.config.StorageConfiguration + Ccom.amazon.aace.alexa.LocalMediaSource.SupportedPlaybackOperation + Ccom.amazon.aace.alexa.ExternalMediaAdapter.SupportedPlaybackOperation + Ccom.amazon.aace.vehicle.config.VehicleConfiguration + Ccom.amazon.aace.vehicle.config.VehicleConfiguration.VehiclePropertyType @@ -165,7 +163,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/index.html b/docs/android/index.html index fd719f58c..2320b77d1 100644 --- a/docs/android/index.html +++ b/docs/android/index.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -72,7 +72,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/pages.html b/docs/android/pages.html index 6a00f0413..29b42c8ee 100644 --- a/docs/android/pages.html +++ b/docs/android/pages.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/android/search/all_0.js b/docs/android/search/all_0.js index 7a8f6f091..79a01ae6c 100644 --- a/docs/android/search/all_0.js +++ b/docs/android/search/all_0.js @@ -14,10 +14,6 @@ var searchData= ['addactionturnoff',['addActionTurnOff',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a98708b3275291435db027d880f7072f2',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['addactionturnon',['addActionTurnOn',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#ad3a0bbf8a515d068fe48a7c83caf44c2',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['addassetid',['addAssetId',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#af72d00f7e9138424180b775b69448516',1,'com::amazon::aace::carControl::CarControlConfiguration']]], - ['addcontact',['addContact',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#a0fce3fb76d6583f04d8b29ec6ee2d967',1,'com::amazon::aace::contactuploader::ContactUploader']]], - ['addcontactsbegin',['addContactsBegin',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#ab7dd54096ec3c34f2ebc3660fd02e74c',1,'com::amazon::aace::contactuploader::ContactUploader']]], - ['addcontactscancel',['addContactsCancel',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#a4d0c4ebb24e6c791e6156ffec7aa3e42',1,'com::amazon::aace::contactuploader::ContactUploader']]], - ['addcontactsend',['addContactsEnd',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#ad2bd5b4850cac3f8b81d14c352774d63',1,'com::amazon::aace::contactuploader::ContactUploader']]], ['addcustomassetspath',['addCustomAssetsPath',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#aff07923786bbe8d78bc7f2d3722e6f11',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['adddefaultassetspath',['addDefaultAssetsPath',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a1e8f233f6757ca9d4a4b58f91da92efb',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['addmembers',['addMembers',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a8437e903eb643316bb176675b56e54d7',1,'com::amazon::aace::carControl::CarControlConfiguration']]], diff --git a/docs/android/search/all_11.js b/docs/android/search/all_11.js index b58f6b314..5174c1ecb 100644 --- a/docs/android/search/all_11.js +++ b/docs/android/search/all_11.js @@ -5,13 +5,8 @@ var searchData= ['unfavorited',['UNFAVORITED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html#a6eb5e1fa3c230f445c3ae1147bd67acd',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Favorites.UNFAVORITED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html#a07d0bc918d3898558be4025b12068c8a',1,'com.amazon.aace.alexa.LocalMediaSource.Favorites.UNFAVORITED()']]], ['uninitialized',['UNINITIALIZED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html#a6a54b74d1219d6022a21d1493f607a6b',1,'com.amazon.aace.alexa.AlexaClient.AuthState.UNINITIALIZED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html#a9e8a6803b57d45467f047d3f412ceb27',1,'com.amazon.aace.alexa.AuthProvider.AuthState.UNINITIALIZED()']]], ['unknown',['UNKNOWN',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state.html#a440225fb9b82619cf3336073764c4e80',1,'com.amazon.aace.alexa.Notifications.IndicatorState.UNKNOWN()'],['../enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event.html#affbb173f103e2dc6c9399dd6a3674902',1,'com.amazon.aace.apl.APL.ActivityEvent.UNKNOWN()'],['../enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html#a6b44a8379299aa098271ca9a9b21ca9e',1,'com.amazon.aace.network.NetworkInfoProvider.NetworkStatus.UNKNOWN()']]], - ['unknown_5ferror',['UNKNOWN_ERROR',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html#a110946e49f9624a3823d1457f5efe57b',1,'com.amazon.aace.alexa.AlexaClient.AuthError.UNKNOWN_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html#ab82213352bde9993de5bda26fbcf1486',1,'com.amazon.aace.alexa.AuthProvider.AuthError.UNKNOWN_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a13fa0980d273463079d5b9d3dc0555c8',1,'com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.UNKNOWN_ERROR()']]], + ['unknown_5ferror',['UNKNOWN_ERROR',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html#a110946e49f9624a3823d1457f5efe57b',1,'com.amazon.aace.alexa.AlexaClient.AuthError.UNKNOWN_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html#ab82213352bde9993de5bda26fbcf1486',1,'com.amazon.aace.alexa.AuthProvider.AuthError.UNKNOWN_ERROR()']]], ['unrecoverable_5ferror',['UNRECOVERABLE_ERROR',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html#a9395e797fd39967a690db2217114b43a',1,'com.amazon.aace.alexa.AlexaClient.AuthState.UNRECOVERABLE_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason.html#a24c07684a8aa086e8cab5c34e84ba245',1,'com.amazon.aace.alexa.AlexaClient.ConnectionChangedReason.UNRECOVERABLE_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html#a13dec4634da247a0a897f5e2da2ab7c1',1,'com.amazon.aace.alexa.AuthProvider.AuthState.UNRECOVERABLE_ERROR()']]], ['unsupported_5fgrant_5ftype',['UNSUPPORTED_GRANT_TYPE',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html#ae7f34009c855ab19054576a5cf8e5fb7',1,'com.amazon.aace.alexa.AlexaClient.AuthError.UNSUPPORTED_GRANT_TYPE()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html#a791e3bdd8b3ef18b34dd57d39871fa1b',1,'com.amazon.aace.alexa.AuthProvider.AuthError.UNSUPPORTED_GRANT_TYPE()']]], - ['upload_5fcontacts_5fcanceled',['UPLOAD_CONTACTS_CANCELED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a4e1f535c012040e533bc9e5f8b32138c',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['upload_5fcontacts_5fcompleted',['UPLOAD_CONTACTS_COMPLETED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#afcfbf627d12631be93f42ada7de94fbe',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['upload_5fcontacts_5ferror',['UPLOAD_CONTACTS_ERROR',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a2bbb4f15c8c3721312764fdc2a0aaf31',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['upload_5fcontacts_5fstarted',['UPLOAD_CONTACTS_STARTED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a7fdbea7744657504a3f96e94169761c8',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['upload_5fcontacts_5fuploading',['UPLOAD_CONTACTS_UPLOADING',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#ae178216446039e3c5114cfbfa646c139',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], ['usb',['USB',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source.html#a9eeb1241157772d62b8666ca203b59f8',1,'com::amazon::aace::alexa::LocalMediaSource::Source']]] ]; diff --git a/docs/android/search/all_15.html b/docs/android/search/all_15.html deleted file mode 100644 index 8afe9a033..000000000 --- a/docs/android/search/all_15.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -

                                                                -
                                                                Loading...
                                                                -
                                                                - -
                                                                Searching...
                                                                -
                                                                No Matches
                                                                - -
                                                                - - diff --git a/docs/android/search/all_15.js b/docs/android/search/all_15.js deleted file mode 100644 index 629b4d78c..000000000 --- a/docs/android/search/all_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['zone',['Zone',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone.html',1,'com::amazon::aace::carControl::CarControlConfiguration']]] -]; diff --git a/docs/android/search/all_2.js b/docs/android/search/all_2.js index 89f9ccbe5..6320f60f5 100644 --- a/docs/android/search/all_2.js +++ b/docs/android/search/all_2.js @@ -40,9 +40,6 @@ var searchData= ['connectionstatus',['ConnectionStatus',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status.html',1,'com::amazon::aace::alexa::AlexaClient']]], ['connectionstatuschanged',['connectionStatusChanged',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html#accca664acb40638ec78da0f223f767cb',1,'com::amazon::aace::alexa::AlexaClient']]], ['contact',['CONTACT',['../enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type.html#a89a2f19b935235def607476414e00651',1,'com::amazon::aace::addressbook::AddressBook::AddressBookType']]], - ['contactsuploaderstatuschanged',['contactsUploaderStatusChanged',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#a26cfcc7f66042d90f459f576fd737ca7',1,'com::amazon::aace::contactuploader::ContactUploader']]], - ['contactuploader',['ContactUploader',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html',1,'com::amazon::aace::contactuploader']]], - ['contactuploadstatus',['ContactUploadStatus',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html',1,'com::amazon::aace::contactuploader::ContactUploader']]], ['contentselector',['ContentSelector',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector.html',1,'com::amazon::aace::alexa::LocalMediaSource']]], ['country_5flist',['COUNTRY_LIST',['../enumcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration_1_1_vehicle_property_type.html#a45b9831ae7b51b1a63766c85dc8b41df',1,'com::amazon::aace::vehicle::config::VehicleConfiguration::VehiclePropertyType']]], ['create',['create',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a2b59622a96960b4e0f9bf03602d6d602',1,'com.amazon.aace.carControl.CarControlConfiguration.create()'],['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#aaa4f32da512481f26912ed76a8a6b6ab',1,'com.amazon.aace.core.Engine.create()']]], @@ -54,7 +51,6 @@ var searchData= ['createcbluserprofileconfig',['createCBLUserProfileConfig',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration.html#a94550737c0626b38f9ca1f338fd37b3f',1,'com::amazon::aace::cbl::config::CBLConfiguration']]], ['createcertifiedsenderconfig',['createCertifiedSenderConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#af747c4ec0e90eee61ae9db02f538cd5f',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], ['createconsolesinkconfig',['createConsoleSinkConfig',['../classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html#ae262e3e0a31778f9d1c2a0c6ec142608',1,'com::amazon::aace::logger::config::LoggerConfiguration']]], - ['createcontrol',['createControl',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a758d43906f870efd4d64dfb1cf796fe8',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['createcurlconfig',['createCurlConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a92aa3b5155a650a13c26c9d4a08a1216',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createCurlConfig(String certsPath)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a51647ddc0fd88c8b3e088ca5d728c1fd',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createCurlConfig(final String certsPath, final String iface)']]], ['createdeviceinfoconfig',['createDeviceInfoConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a84ab6a01839d09f978ff03bfc79d6b06',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], ['createdevicesettingsconfig',['createDeviceSettingsConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a174a365624dba9cef2db7803a352c916',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createDeviceSettingsConfig(final String databaseFilePath, final String[] locales, final String defaultLocale, final String defaultTimezone, final String[][] localeCombinations)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a1dcfef5d114ac663f3031214b45cc5ab',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createDeviceSettingsConfig(final String databaseFilePath)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#ae9758eba28e24ac7bf3685bd5ee6bec1',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createDeviceSettingsConfig(final String databaseFilePath, final String[] locales, final String defaultLocale, final String defaultTimezone)']]], @@ -65,6 +61,7 @@ var searchData= ['createlocalstorageconfig',['createLocalStorageConfig',['../classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration.html#a2f5f698b04c1106a30a9cd65d9e00a58',1,'com::amazon::aace::storage::config::StorageConfiguration']]], ['createloggerruleconfig',['createLoggerRuleConfig',['../classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html#aa81c6c0c2204b55fbe4fa9070194d3ec',1,'com.amazon.aace.logger.config.LoggerConfiguration.createLoggerRuleConfig(final String sink, final Logger.Level level, final String sourceFilter, final String tagFilter, final String messageFilter)'],['../classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html#abe7be69582a42f2f71d5623c52698eca',1,'com.amazon.aace.logger.config.LoggerConfiguration.createLoggerRuleConfig(String sink, Logger.Level level)']]], ['createmiscstorageconfig',['createMiscStorageConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a6daa8cea59a40ffc44738f07622bbb4b',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], + ['createnavigationconfig',['createNavigationConfig',['../classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration.html#a62f13d2ba1b21e4554de195083903331',1,'com::amazon::aace::navigation::config::NavigationConfiguration']]], ['createnotificationsconfig',['createNotificationsConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a8b076970882ad6c1756078cf09e9b0b4',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], ['createoperatingcountryconfig',['createOperatingCountryConfig',['../classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration.html#ade5473ebf7da427617445bc10dd771fd',1,'com::amazon::aace::vehicle::config::VehicleConfiguration']]], ['createsettingsconfig',['createSettingsConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#af676c898b520c02267d33579cdb37765',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createSettingsConfig(final String databaseFilePath, final String locale)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a82e1bc90d7cf9cd8bcbc41af797ed115',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createSettingsConfig(String databaseFilePath)']]], diff --git a/docs/android/search/all_3.js b/docs/android/search/all_3.js index 34b3d1737..3a8014581 100644 --- a/docs/android/search/all_3.js +++ b/docs/android/search/all_3.js @@ -12,7 +12,6 @@ var searchData= ['dialogstatechanged',['dialogStateChanged',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html#aa0c7e22aeb8007a30d02a0f89226886a',1,'com::amazon::aace::alexa::AlexaClient']]], ['disable_5frepeat',['DISABLE_REPEAT',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#aff4cf547e98771825fc89613325225c1',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.DISABLE_REPEAT()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#a9ab2ede3ef1d0cf9000328adf5f7b33a',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.DISABLE_REPEAT()']]], ['disable_5fshuffle',['DISABLE_SHUFFLE',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#a19ac08c56f815c3ebb6768a302655f44',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.DISABLE_SHUFFLE()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#ac6f49ab238fc96bc47d69dbc9435be7c',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.DISABLE_SHUFFLE()']]], - ['disablewakeworddetection',['disableWakewordDetection',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#acf85cb08497b64f28dc95cabbd90ea52',1,'com::amazon::aace::alexa::SpeechRecognizer']]], ['disconnected',['DISCONNECTED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status.html#a438c710b6951494260c66b5a84ee6770',1,'com.amazon.aace.alexa.AlexaClient.ConnectionStatus.DISCONNECTED()'],['../enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html#ab346b77ac36eb370ec34fa18ccf57aee',1,'com.amazon.aace.network.NetworkInfoProvider.NetworkStatus.DISCONNECTED()'],['../enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state.html#a7c23dfd53e87f06c93734e4257028c62',1,'com.amazon.aace.phonecontrol.PhoneCallController.ConnectionState.DISCONNECTED()']]], ['disconnecting',['DISCONNECTING',['../enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html#ae2986a50a60397d2a3b325c924c807f3',1,'com::amazon::aace::network::NetworkInfoProvider::NetworkStatus']]], ['displaycardcleared',['displayCardCleared',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#aecfca9188704be9df43e958f3cb2bbff',1,'com::amazon::aace::alexa::TemplateRuntime']]], diff --git a/docs/android/search/all_4.js b/docs/android/search/all_4.js index 2efc3c19e..491d5b099 100644 --- a/docs/android/search/all_4.js +++ b/docs/android/search/all_4.js @@ -3,8 +3,7 @@ var searchData= ['enable_5frepeat',['ENABLE_REPEAT',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#a2e80e52267f8a98a61bcab946fa2dc12',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.ENABLE_REPEAT()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#a3e7d49a2835f638cf02b1ad4e38a8ade',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.ENABLE_REPEAT()']]], ['enable_5frepeat_5fone',['ENABLE_REPEAT_ONE',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#ab28e78d85f3d5076ef448b2938628c8e',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.ENABLE_REPEAT_ONE()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#acdd97bc64b6882c3b107d8bc625c00d3',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.ENABLE_REPEAT_ONE()']]], ['enable_5fshuffle',['ENABLE_SHUFFLE',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#ae1837ad65d699f429ccf8def94f4b66b',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.ENABLE_SHUFFLE()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#a3b1fd897ad28be840af4e37f91bf4f87',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.ENABLE_SHUFFLE()']]], - ['enablewakeworddetection',['enableWakewordDetection',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#a0deee93d537185fac5422de414a38945',1,'com::amazon::aace::alexa::SpeechRecognizer']]], - ['encoding',['Encoding',['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding.html',1,'com.amazon.aace.audio.AudioFormat.Encoding'],['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding.html',1,'com.amazon.aace.audio.AudioStream.Encoding']]], + ['encoding',['Encoding',['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding.html',1,'com.amazon.aace.audio.AudioStream.Encoding'],['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding.html',1,'com.amazon.aace.audio.AudioFormat.Encoding']]], ['endofspeechdetected',['endOfSpeechDetected',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#a59f998dabf28a7db3d87e2b9350a221b',1,'com::amazon::aace::alexa::SpeechRecognizer']]], ['engine',['Engine',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html',1,'com::amazon::aace::core']]], ['engineconfiguration',['EngineConfiguration',['../classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration.html',1,'com::amazon::aace::core::config']]], diff --git a/docs/android/search/all_5.js b/docs/android/search/all_5.js index 20ae11249..04c4f9836 100644 --- a/docs/android/search/all_5.js +++ b/docs/android/search/all_5.js @@ -5,7 +5,7 @@ var searchData= ['fast_5fforward',['FAST_FORWARD',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#a5940da64a23acbb1d4ad06ebcd7d1ae0',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.FAST_FORWARD()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#a8b249de0f2af740577cec549d85e9f6a',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.FAST_FORWARD()']]], ['favorite',['FAVORITE',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#a4f3e5f738216980dcdc241ccfb8f7003',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.FAVORITE()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#a196249d60a7cb59cd94620b8f0e260f4',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.FAVORITE()']]], ['favorited',['FAVORITED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html#a3018bbec0092449c3dc292361381da8d',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Favorites.FAVORITED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html#a5fd7cb41c0f679a7f8fc337366b24f1e',1,'com.amazon.aace.alexa.LocalMediaSource.Favorites.FAVORITED()']]], - ['favorites',['Favorites',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Favorites'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html',1,'com.amazon.aace.alexa.LocalMediaSource.Favorites']]], + ['favorites',['Favorites',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html',1,'com.amazon.aace.alexa.LocalMediaSource.Favorites'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Favorites']]], ['finished',['FINISHED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity.html#a51053e7c19f8f4db8d438dc487d79c8d',1,'com.amazon.aace.alexa.AudioPlayer.PlayerActivity.FINISHED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity.html#a755964b192b078e77c0d99fe5cb7b783',1,'com.amazon.aace.alexa.TemplateRuntime.PlayerActivity.FINISHED()']]], ['fm_5fradio',['FM_RADIO',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source.html#a43bb0a1cc755913e36e62826c46ef891',1,'com::amazon::aace::alexa::LocalMediaSource::Source']]], ['focus_5fentered_5fbackground',['FOCUS_ENTERED_BACKGROUND',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state.html#a08664b1cbc2de62c1a869adad68b597d',1,'com::amazon::aace::alexa::Alerts::AlertState']]], diff --git a/docs/android/search/all_6.js b/docs/android/search/all_6.js index 8a04ceb42..13e726e2f 100644 --- a/docs/android/search/all_6.js +++ b/docs/android/search/all_6.js @@ -19,7 +19,7 @@ var searchData= ['getplayerduration',['getPlayerDuration',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player.html#a3ddd0246911b32d798dad3dae3e7e64d',1,'com::amazon::aace::alexa::AudioPlayer']]], ['getplayerposition',['getPlayerPosition',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player.html#ac5af34b211180066c0a72d768800dc0d',1,'com::amazon::aace::alexa::AudioPlayer']]], ['getposition',['getPosition',['../classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html#affc2aadf7fe81a6a9463152ae51420f8',1,'com::amazon::aace::audio::AudioOutput']]], - ['getproperty',['getProperty',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#a9aa96efbfcb7b0132917957bccb85159',1,'com.amazon.aace.core.Engine.getProperty()'],['../classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html#ae18af547c39b0c8e2a763e34d988f4a2',1,'com.amazon.aace.propertyManager.PropertyManager.getProperty()']]], + ['getproperty',['getProperty',['../classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html#ae18af547c39b0c8e2a763e34d988f4a2',1,'com::amazon::aace::propertyManager::PropertyManager']]], ['getrangecontrollervalue',['getRangeControllerValue',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#ae694da83885a8ab8c5c481ac06f382a4',1,'com::amazon::aace::carControl::CarControl']]], ['getrefreshtoken',['getRefreshToken',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html#aa7a91ec3198415d309d3a5d061cb974f',1,'com::amazon::aace::cbl::CBL']]], ['getsource',['getSource',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source.html#ab8cf2993bd0dce8a71cf147a08fbe2cb',1,'com::amazon::aace::alexa::LocalMediaSource']]], diff --git a/docs/android/search/all_8.js b/docs/android/search/all_8.js index e3e4070a2..fe705d2f0 100644 --- a/docs/android/search/all_8.js +++ b/docs/android/search/all_8.js @@ -15,6 +15,5 @@ var searchData= ['invalid_5frequest',['INVALID_REQUEST',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html#ab6accdb3d0f7a66cf60cecdaf453bae8',1,'com.amazon.aace.alexa.AlexaClient.AuthError.INVALID_REQUEST()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html#a2b45e1388e8814930d49fb51abe08a38',1,'com.amazon.aace.alexa.AuthProvider.AuthError.INVALID_REQUEST()']]], ['invalid_5fvalue',['INVALID_VALUE',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html#ab45ae7cf9d114422efc8209f4f943c4d',1,'com.amazon.aace.alexa.AlexaClient.AuthError.INVALID_VALUE()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html#ac75e969852f0fb136ea74743f76baf85',1,'com.amazon.aace.alexa.AuthProvider.AuthError.INVALID_VALUE()']]], ['ispowercontrolleron',['isPowerControllerOn',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#a9ab19b4f3930027cfa8d88b02ac8355c',1,'com::amazon::aace::carControl::CarControl']]], - ['istogglecontrolleron',['isToggleControllerOn',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#a19c74c8a8b397a9ca79a6ca313cff2b6',1,'com::amazon::aace::carControl::CarControl']]], - ['iswakeworddetectionenabled',['isWakewordDetectionEnabled',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#af0d4c212de01891b3647b2bf18a59df6',1,'com::amazon::aace::alexa::SpeechRecognizer']]] + ['istogglecontrolleron',['isToggleControllerOn',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#a19c74c8a8b397a9ca79a6ca313cff2b6',1,'com::amazon::aace::carControl::CarControl']]] ]; diff --git a/docs/android/search/all_b.js b/docs/android/search/all_b.js index 8293d0a20..14e59f572 100644 --- a/docs/android/search/all_b.js +++ b/docs/android/search/all_b.js @@ -1,6 +1,7 @@ var searchData= [ ['navigation',['Navigation',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation.html',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Navigation'],['../classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html',1,'com.amazon.aace.navigation.Navigation'],['../enumcom_1_1amazon_1_1aace_1_1addressbook_1_1_address_book_1_1_address_book_type.html#ad0ae1089ea7eddfe17308effbb3fa5a0',1,'com.amazon.aace.addressbook.AddressBook.AddressBookType.NAVIGATION()']]], + ['navigationconfiguration',['NavigationConfiguration',['../classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration.html',1,'com::amazon::aace::navigation::config']]], ['navigationerror',['navigationError',['../classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html#af554852edcf3c872474896fef22a6403',1,'com::amazon::aace::navigation::Navigation']]], ['navigationevent',['navigationEvent',['../classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html#a6920b2f0e9a84e290c16acac2f86ae93',1,'com::amazon::aace::navigation::Navigation']]], ['networkinfoprovider',['NetworkInfoProvider',['../classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider.html',1,'com::amazon::aace::network']]], diff --git a/docs/android/search/all_d.js b/docs/android/search/all_d.js index 25ee59e5f..74b0344f0 100644 --- a/docs/android/search/all_d.js +++ b/docs/android/search/all_d.js @@ -7,7 +7,7 @@ var searchData= ['phonecallcontroller',['PhoneCallController',['../classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html',1,'com::amazon::aace::phonecontrol']]], ['ping_5ftimedout',['PING_TIMEDOUT',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason.html#a21694df85e4806fb1312f0c1ef472f3d',1,'com::amazon::aace::alexa::AlexaClient::ConnectionChangedReason']]], ['platforminterface',['PlatformInterface',['../classcom_1_1amazon_1_1aace_1_1core_1_1_platform_interface.html',1,'com::amazon::aace::core']]], - ['play',['PLAY',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button.html#aa13250d142489889e25587c5b6661ad6',1,'com.amazon.aace.alexa.PlaybackController.PlaybackButton.PLAY()'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html#a4e6f48d186f9e329cc23e7e27af1fe22',1,'com.amazon.aace.alexa.ExternalMediaAdapter.play()'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source.html#ac3b7c0af177039a95960a43e8c94ddc0',1,'com.amazon.aace.alexa.LocalMediaSource.play()'],['../classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html#ab832b921a38be3faa8729a6a7f45b033',1,'com.amazon.aace.audio.AudioOutput.play()']]], + ['play',['play',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html#a4e6f48d186f9e329cc23e7e27af1fe22',1,'com.amazon.aace.alexa.ExternalMediaAdapter.play()'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source.html#ac3b7c0af177039a95960a43e8c94ddc0',1,'com.amazon.aace.alexa.LocalMediaSource.play()'],['../classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html#ab832b921a38be3faa8729a6a7f45b033',1,'com.amazon.aace.audio.AudioOutput.play()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button.html#aa13250d142489889e25587c5b6661ad6',1,'com.amazon.aace.alexa.PlaybackController.PlaybackButton.PLAY()']]], ['playbackbutton',['PlaybackButton',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_button.html',1,'com::amazon::aace::alexa::PlaybackController']]], ['playbackcontroller',['PlaybackController',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller.html',1,'com::amazon::aace::alexa']]], ['playbacktoggle',['PlaybackToggle',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle.html',1,'com::amazon::aace::alexa::PlaybackController']]], diff --git a/docs/android/search/all_e.js b/docs/android/search/all_e.js index 8d819c723..9bac19df5 100644 --- a/docs/android/search/all_e.js +++ b/docs/android/search/all_e.js @@ -7,16 +7,12 @@ var searchData= ['refreshed',['REFRESHED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html#abcd39f34f475ff1506abd332133e7ab9',1,'com.amazon.aace.alexa.AlexaClient.AuthState.REFRESHED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html#ad0dacf1dbc99ddf4c923863a6ce3f038',1,'com.amazon.aace.alexa.AuthProvider.AuthState.REFRESHED()']]], ['refreshing_5ftoken',['REFRESHING_TOKEN',['../enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html#afbb19a70e90574677a52d0e5ae13fb75',1,'com::amazon::aace::cbl::CBL::CBLState']]], ['registerplatforminterface',['registerPlatformInterface',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#ae4f3c98ac03db8b6f8aa0a33d88586b9',1,'com::amazon::aace::core::Engine']]], - ['remove_5fcontacts_5fcompleted',['REMOVE_CONTACTS_COMPLETED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#acc5c9c5df1aef958949f477bf5850c3d',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['remove_5fcontacts_5ferror',['REMOVE_CONTACTS_ERROR',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a75051f2fd58e1a6eddae5e70c4a73d40',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['remove_5fcontacts_5fstarted',['REMOVE_CONTACTS_STARTED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a1069aed51f8709040ceb84e978f2a7a4',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], ['removeallalerts',['removeAllAlerts',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts.html#abb9f0c260a01fa735ec0424f36b9c3ed',1,'com::amazon::aace::alexa::Alerts']]], ['removediscoveredplayer',['removeDiscoveredPlayer',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html#ae34e390c93b76497b86db5cdcd16fda6',1,'com::amazon::aace::alexa::ExternalMediaAdapter']]], - ['removeuploadedcontacts',['removeUploadedContacts',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#a2051f55d69963b829f7e52378e77f6ff',1,'com::amazon::aace::contactuploader::ContactUploader']]], ['renderdocument',['renderDocument',['../classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html#ad7a2d8bcd734b02486ccced4656df947',1,'com::amazon::aace::apl::APL']]], ['renderdocumentresult',['renderDocumentResult',['../classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html#a6a4248122416663bf1e4412f99fd429d',1,'com::amazon::aace::apl::APL']]], - ['renderplayerinfo',['renderPlayerInfo',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a485b27cafa223d145a1808326446f13b',1,'com.amazon.aace.alexa.TemplateRuntime.renderPlayerInfo(String payload)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a09010f2bbdf49bbd579108d7c405e040',1,'com.amazon.aace.alexa.TemplateRuntime.renderPlayerInfo(String payload, PlayerActivity audioPlayerState, long offset, FocusState focusState)']]], - ['rendertemplate',['renderTemplate',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a4c8189b23f28853714a99f3e0f1e8404',1,'com.amazon.aace.alexa.TemplateRuntime.renderTemplate(String payload)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a2b47479f51a5998559dc2d7e9b33fdbe',1,'com.amazon.aace.alexa.TemplateRuntime.renderTemplate(String payload, FocusState focusState)']]], + ['renderplayerinfo',['renderPlayerInfo',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a09010f2bbdf49bbd579108d7c405e040',1,'com::amazon::aace::alexa::TemplateRuntime']]], + ['rendertemplate',['renderTemplate',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a2b47479f51a5998559dc2d7e9b33fdbe',1,'com::amazon::aace::alexa::TemplateRuntime']]], ['repeat',['REPEAT',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle.html#a5b6191bde99908b57e7a49f42a9c44d6',1,'com::amazon::aace::alexa::PlaybackController::PlaybackToggle']]], ['reportdiscoveredplayers',['reportDiscoveredPlayers',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html#ac35c5760ab1c2cfca05f59eb0fdfa62b',1,'com::amazon::aace::alexa::ExternalMediaAdapter']]], ['requesting_5fcode_5fpair',['REQUESTING_CODE_PAIR',['../enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html#a80ff59d65698a4bbf3d1c00ade4a82a2',1,'com::amazon::aace::cbl::CBL::CBLState']]], diff --git a/docs/android/search/all_f.js b/docs/android/search/all_f.js index 12a395197..4a26c0a58 100644 --- a/docs/android/search/all_f.js +++ b/docs/android/search/all_f.js @@ -21,7 +21,7 @@ var searchData= ['setindicator',['setIndicator',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications.html#ab83e0f63cbd01de0c1fb2cf0b331b9cf',1,'com::amazon::aace::alexa::Notifications']]], ['setmodecontrollervalue',['setModeControllerValue',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#a0336838d257867216acfae83ebcb6796',1,'com::amazon::aace::carControl::CarControl']]], ['setposition',['setPosition',['../classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html#a228c6e8079d5782e1e7d9b21a925638d',1,'com::amazon::aace::audio::AudioOutput']]], - ['setproperty',['setProperty',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#a2739fa7b37aa1c292d5a55c6e0127189',1,'com.amazon.aace.core.Engine.setProperty()'],['../classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html#a6a6b6d34ba96850c38f1aa3d40786c7d',1,'com.amazon.aace.propertyManager.PropertyManager.setProperty()']]], + ['setproperty',['setProperty',['../classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html#a6a6b6d34ba96850c38f1aa3d40786c7d',1,'com::amazon::aace::propertyManager::PropertyManager']]], ['setrangecontrollervalue',['setRangeControllerValue',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#afe04323771ca2cbbc44de5ecb93c38ce',1,'com::amazon::aace::carControl::CarControl']]], ['setrefreshtoken',['setRefreshToken',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html#ad320c677bafca842107daa2419bbc675',1,'com::amazon::aace::cbl::CBL']]], ['setuserprofile',['setUserProfile',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html#a18753a6d6d002bc4188de1a00beba9e5',1,'com::amazon::aace::cbl::CBL']]], @@ -45,7 +45,7 @@ var searchData= ['starting',['STARTING',['../enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html#a9e1ac933921d766207b455f3a2e7d9f1',1,'com::amazon::aace::cbl::CBL::CBLState']]], ['startnavigation',['startNavigation',['../classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html#a93fd177c707c9075348883824c7dcc0b',1,'com::amazon::aace::navigation::Navigation']]], ['station',['STATION',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_media_type.html#abaf69899cd9c1923e968b7f9ceb3abcd',1,'com.amazon.aace.alexa.ExternalMediaAdapter.MediaType.STATION()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_media_type.html#a952425c84c795ae0890d141f89943531',1,'com.amazon.aace.alexa.LocalMediaSource.MediaType.STATION()']]], - ['stop',['stop',['../classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html#a93328cd0e726f19b596a18343418082c',1,'com.amazon.aace.audio.AudioOutput.stop()'],['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#af3f1799a40b40389cdb3c03a4b518c28',1,'com.amazon.aace.core.Engine.stop()'],['../classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html#a6b16e1f163c1ba5732cca98e507f0220',1,'com.amazon.aace.phonecontrol.PhoneCallController.stop()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#a8849e1e147ccccb1608e7546159550ed',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.STOP()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#a4cce624af67a1cb61e357d4da036ac0f',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.STOP()']]], + ['stop',['STOP',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_play_control_type.html#a8849e1e147ccccb1608e7546159550ed',1,'com.amazon.aace.alexa.ExternalMediaAdapter.PlayControlType.STOP()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_play_control_type.html#a4cce624af67a1cb61e357d4da036ac0f',1,'com.amazon.aace.alexa.LocalMediaSource.PlayControlType.STOP()'],['../classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html#a93328cd0e726f19b596a18343418082c',1,'com.amazon.aace.audio.AudioOutput.stop()'],['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#af3f1799a40b40389cdb3c03a4b518c28',1,'com.amazon.aace.core.Engine.stop()'],['../classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html#a6b16e1f163c1ba5732cca98e507f0220',1,'com.amazon.aace.phonecontrol.PhoneCallController.stop()']]], ['stopcapture',['stopCapture',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#a9c043bac65f630eed854a2e48182144c',1,'com::amazon::aace::alexa::SpeechRecognizer']]], ['stopforegroundactivity',['stopForegroundActivity',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html#a5205acb15d66b99404896253611d657f',1,'com::amazon::aace::alexa::AlexaClient']]], ['stopped',['STOPPED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state.html#a00ef2e9f819a785f05c3254fc032954f',1,'com.amazon.aace.alexa.Alerts.AlertState.STOPPED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player_1_1_player_activity.html#a0bb54b0208ad695e194e484d0156b108',1,'com.amazon.aace.alexa.AudioPlayer.PlayerActivity.STOPPED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_player_activity.html#a38c414c5c9a298d0fd08cb6bb6e4b60c',1,'com.amazon.aace.alexa.TemplateRuntime.PlayerActivity.STOPPED()'],['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output_1_1_media_state.html#a798d30c76cd7f4d9af4e9bd4ca43a16d',1,'com.amazon.aace.audio.AudioOutput.MediaState.STOPPED()']]], diff --git a/docs/android/search/classes_1.js b/docs/android/search/classes_1.js index 259e68ffe..08879d5c6 100644 --- a/docs/android/search/classes_1.js +++ b/docs/android/search/classes_1.js @@ -12,7 +12,5 @@ var searchData= ['connectionchangedreason',['ConnectionChangedReason',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason.html',1,'com::amazon::aace::alexa::AlexaClient']]], ['connectionstate',['ConnectionState',['../enumcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller_1_1_connection_state.html',1,'com::amazon::aace::phonecontrol::PhoneCallController']]], ['connectionstatus',['ConnectionStatus',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_status.html',1,'com::amazon::aace::alexa::AlexaClient']]], - ['contactuploader',['ContactUploader',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html',1,'com::amazon::aace::contactuploader']]], - ['contactuploadstatus',['ContactUploadStatus',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html',1,'com::amazon::aace::contactuploader::ContactUploader']]], ['contentselector',['ContentSelector',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_content_selector.html',1,'com::amazon::aace::alexa::LocalMediaSource']]] ]; diff --git a/docs/android/search/classes_3.js b/docs/android/search/classes_3.js index 61f07decf..17deba5ce 100644 --- a/docs/android/search/classes_3.js +++ b/docs/android/search/classes_3.js @@ -1,6 +1,6 @@ var searchData= [ - ['encoding',['Encoding',['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding.html',1,'com.amazon.aace.audio.AudioFormat.Encoding'],['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding.html',1,'com.amazon.aace.audio.AudioStream.Encoding']]], + ['encoding',['Encoding',['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_stream_1_1_encoding.html',1,'com.amazon.aace.audio.AudioStream.Encoding'],['../enumcom_1_1amazon_1_1aace_1_1audio_1_1_audio_format_1_1_encoding.html',1,'com.amazon.aace.audio.AudioFormat.Encoding']]], ['engine',['Engine',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html',1,'com::amazon::aace::core']]], ['engineconfiguration',['EngineConfiguration',['../classcom_1_1amazon_1_1aace_1_1core_1_1config_1_1_engine_configuration.html',1,'com::amazon::aace::core::config']]], ['equalizerband',['EqualizerBand',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_equalizer_controller_1_1_equalizer_band.html',1,'com::amazon::aace::alexa::EqualizerController']]], diff --git a/docs/android/search/classes_4.js b/docs/android/search/classes_4.js index 2679eedc3..bdcfc40fb 100644 --- a/docs/android/search/classes_4.js +++ b/docs/android/search/classes_4.js @@ -1,5 +1,5 @@ var searchData= [ - ['favorites',['Favorites',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Favorites'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html',1,'com.amazon.aace.alexa.LocalMediaSource.Favorites']]], + ['favorites',['Favorites',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html',1,'com.amazon.aace.alexa.LocalMediaSource.Favorites'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Favorites']]], ['focusstate',['FocusState',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime_1_1_focus_state.html',1,'com::amazon::aace::alexa::TemplateRuntime']]] ]; diff --git a/docs/android/search/classes_8.js b/docs/android/search/classes_8.js index b5404ca86..3e6698f4e 100644 --- a/docs/android/search/classes_8.js +++ b/docs/android/search/classes_8.js @@ -1,6 +1,7 @@ var searchData= [ ['navigation',['Navigation',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_navigation.html',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Navigation'],['../classcom_1_1amazon_1_1aace_1_1navigation_1_1_navigation.html',1,'com.amazon.aace.navigation.Navigation']]], + ['navigationconfiguration',['NavigationConfiguration',['../classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration.html',1,'com::amazon::aace::navigation::config']]], ['networkinfoprovider',['NetworkInfoProvider',['../classcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider.html',1,'com::amazon::aace::network']]], ['networkstatus',['NetworkStatus',['../enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html',1,'com::amazon::aace::network::NetworkInfoProvider']]], ['notifications',['Notifications',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications.html',1,'com::amazon::aace::alexa']]] diff --git a/docs/android/search/classes_d.html b/docs/android/search/classes_d.html deleted file mode 100644 index d4a7ed7ad..000000000 --- a/docs/android/search/classes_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
                                                                -
                                                                Loading...
                                                                -
                                                                - -
                                                                Searching...
                                                                -
                                                                No Matches
                                                                - -
                                                                - - diff --git a/docs/android/search/classes_d.js b/docs/android/search/classes_d.js deleted file mode 100644 index 629b4d78c..000000000 --- a/docs/android/search/classes_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['zone',['Zone',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration_1_1_zone.html',1,'com::amazon::aace::carControl::CarControlConfiguration']]] -]; diff --git a/docs/android/search/functions_0.js b/docs/android/search/functions_0.js index 3dbb64fce..b72ca3095 100644 --- a/docs/android/search/functions_0.js +++ b/docs/android/search/functions_0.js @@ -7,10 +7,6 @@ var searchData= ['addactionturnoff',['addActionTurnOff',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a98708b3275291435db027d880f7072f2',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['addactionturnon',['addActionTurnOn',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#ad3a0bbf8a515d068fe48a7c83caf44c2',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['addassetid',['addAssetId',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#af72d00f7e9138424180b775b69448516',1,'com::amazon::aace::carControl::CarControlConfiguration']]], - ['addcontact',['addContact',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#a0fce3fb76d6583f04d8b29ec6ee2d967',1,'com::amazon::aace::contactuploader::ContactUploader']]], - ['addcontactsbegin',['addContactsBegin',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#ab7dd54096ec3c34f2ebc3660fd02e74c',1,'com::amazon::aace::contactuploader::ContactUploader']]], - ['addcontactscancel',['addContactsCancel',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#a4d0c4ebb24e6c791e6156ffec7aa3e42',1,'com::amazon::aace::contactuploader::ContactUploader']]], - ['addcontactsend',['addContactsEnd',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#ad2bd5b4850cac3f8b81d14c352774d63',1,'com::amazon::aace::contactuploader::ContactUploader']]], ['addcustomassetspath',['addCustomAssetsPath',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#aff07923786bbe8d78bc7f2d3722e6f11',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['adddefaultassetspath',['addDefaultAssetsPath',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a1e8f233f6757ca9d4a4b58f91da92efb',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['addmembers',['addMembers',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a8437e903eb643316bb176675b56e54d7',1,'com::amazon::aace::carControl::CarControlConfiguration']]], diff --git a/docs/android/search/functions_2.js b/docs/android/search/functions_2.js index 510818729..fbd954903 100644 --- a/docs/android/search/functions_2.js +++ b/docs/android/search/functions_2.js @@ -16,7 +16,6 @@ var searchData= ['configure',['configure',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#a16b0f5a7c12c7b0629194ef5f60874c2',1,'com::amazon::aace::core::Engine']]], ['connectionstatechanged',['connectionStateChanged',['../classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html#a941fcb1da744bc9d254bc1657942aba5',1,'com::amazon::aace::phonecontrol::PhoneCallController']]], ['connectionstatuschanged',['connectionStatusChanged',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html#accca664acb40638ec78da0f223f767cb',1,'com::amazon::aace::alexa::AlexaClient']]], - ['contactsuploaderstatuschanged',['contactsUploaderStatusChanged',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#a26cfcc7f66042d90f459f576fd737ca7',1,'com::amazon::aace::contactuploader::ContactUploader']]], ['create',['create',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a2b59622a96960b4e0f9bf03602d6d602',1,'com.amazon.aace.carControl.CarControlConfiguration.create()'],['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#aaa4f32da512481f26912ed76a8a6b6ab',1,'com.amazon.aace.core.Engine.create()']]], ['createalertsconfig',['createAlertsConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#ab7ff3ff245ce78fd1c578031c2856959',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], ['createalexapresentationtimeoutconfig',['createAlexaPresentationTimeoutConfig',['../classcom_1_1amazon_1_1aace_1_1apl_1_1config_1_1_a_p_l_configuration.html#ad894310b1978f5a3e35bc4477218b48b',1,'com::amazon::aace::apl::config::APLConfiguration']]], @@ -26,7 +25,6 @@ var searchData= ['createcbluserprofileconfig',['createCBLUserProfileConfig',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1config_1_1_c_b_l_configuration.html#a94550737c0626b38f9ca1f338fd37b3f',1,'com::amazon::aace::cbl::config::CBLConfiguration']]], ['createcertifiedsenderconfig',['createCertifiedSenderConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#af747c4ec0e90eee61ae9db02f538cd5f',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], ['createconsolesinkconfig',['createConsoleSinkConfig',['../classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html#ae262e3e0a31778f9d1c2a0c6ec142608',1,'com::amazon::aace::logger::config::LoggerConfiguration']]], - ['createcontrol',['createControl',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control_configuration.html#a758d43906f870efd4d64dfb1cf796fe8',1,'com::amazon::aace::carControl::CarControlConfiguration']]], ['createcurlconfig',['createCurlConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a92aa3b5155a650a13c26c9d4a08a1216',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createCurlConfig(String certsPath)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a51647ddc0fd88c8b3e088ca5d728c1fd',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createCurlConfig(final String certsPath, final String iface)']]], ['createdeviceinfoconfig',['createDeviceInfoConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a84ab6a01839d09f978ff03bfc79d6b06',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], ['createdevicesettingsconfig',['createDeviceSettingsConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a174a365624dba9cef2db7803a352c916',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createDeviceSettingsConfig(final String databaseFilePath, final String[] locales, final String defaultLocale, final String defaultTimezone, final String[][] localeCombinations)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a1dcfef5d114ac663f3031214b45cc5ab',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createDeviceSettingsConfig(final String databaseFilePath)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#ae9758eba28e24ac7bf3685bd5ee6bec1',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createDeviceSettingsConfig(final String databaseFilePath, final String[] locales, final String defaultLocale, final String defaultTimezone)']]], @@ -37,6 +35,7 @@ var searchData= ['createlocalstorageconfig',['createLocalStorageConfig',['../classcom_1_1amazon_1_1aace_1_1storage_1_1config_1_1_storage_configuration.html#a2f5f698b04c1106a30a9cd65d9e00a58',1,'com::amazon::aace::storage::config::StorageConfiguration']]], ['createloggerruleconfig',['createLoggerRuleConfig',['../classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html#aa81c6c0c2204b55fbe4fa9070194d3ec',1,'com.amazon.aace.logger.config.LoggerConfiguration.createLoggerRuleConfig(final String sink, final Logger.Level level, final String sourceFilter, final String tagFilter, final String messageFilter)'],['../classcom_1_1amazon_1_1aace_1_1logger_1_1config_1_1_logger_configuration.html#abe7be69582a42f2f71d5623c52698eca',1,'com.amazon.aace.logger.config.LoggerConfiguration.createLoggerRuleConfig(String sink, Logger.Level level)']]], ['createmiscstorageconfig',['createMiscStorageConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a6daa8cea59a40ffc44738f07622bbb4b',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], + ['createnavigationconfig',['createNavigationConfig',['../classcom_1_1amazon_1_1aace_1_1navigation_1_1config_1_1_navigation_configuration.html#a62f13d2ba1b21e4554de195083903331',1,'com::amazon::aace::navigation::config::NavigationConfiguration']]], ['createnotificationsconfig',['createNotificationsConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a8b076970882ad6c1756078cf09e9b0b4',1,'com::amazon::aace::alexa::config::AlexaConfiguration']]], ['createoperatingcountryconfig',['createOperatingCountryConfig',['../classcom_1_1amazon_1_1aace_1_1vehicle_1_1config_1_1_vehicle_configuration.html#ade5473ebf7da427617445bc10dd771fd',1,'com::amazon::aace::vehicle::config::VehicleConfiguration']]], ['createsettingsconfig',['createSettingsConfig',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#af676c898b520c02267d33579cdb37765',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createSettingsConfig(final String databaseFilePath, final String locale)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1config_1_1_alexa_configuration.html#a82e1bc90d7cf9cd8bcbc41af797ed115',1,'com.amazon.aace.alexa.config.AlexaConfiguration.createSettingsConfig(String databaseFilePath)']]], diff --git a/docs/android/search/functions_3.js b/docs/android/search/functions_3.js index ee7eae9d4..7bb9972df 100644 --- a/docs/android/search/functions_3.js +++ b/docs/android/search/functions_3.js @@ -3,7 +3,6 @@ var searchData= ['deviceconfigurationupdated',['deviceConfigurationUpdated',['../classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html#ad7d3413ded20b937afc728931005c122',1,'com::amazon::aace::phonecontrol::PhoneCallController']]], ['dial',['dial',['../classcom_1_1amazon_1_1aace_1_1phonecontrol_1_1_phone_call_controller.html#a01d791710c2d299ca213b7723b593b0d',1,'com::amazon::aace::phonecontrol::PhoneCallController']]], ['dialogstatechanged',['dialogStateChanged',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client.html#aa0c7e22aeb8007a30d02a0f89226886a',1,'com::amazon::aace::alexa::AlexaClient']]], - ['disablewakeworddetection',['disableWakewordDetection',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#acf85cb08497b64f28dc95cabbd90ea52',1,'com::amazon::aace::alexa::SpeechRecognizer']]], ['displaycardcleared',['displayCardCleared',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#aecfca9188704be9df43e958f3cb2bbff',1,'com::amazon::aace::alexa::TemplateRuntime']]], ['donotdisturbchanged',['doNotDisturbChanged',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_do_not_disturb.html#a5f1b4303a59cfec7db0c79e8c3716331',1,'com::amazon::aace::alexa::DoNotDisturb']]] ]; diff --git a/docs/android/search/functions_4.js b/docs/android/search/functions_4.js index bdba18703..ae6b4f47a 100644 --- a/docs/android/search/functions_4.js +++ b/docs/android/search/functions_4.js @@ -1,6 +1,5 @@ var searchData= [ - ['enablewakeworddetection',['enableWakewordDetection',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#a0deee93d537185fac5422de414a38945',1,'com::amazon::aace::alexa::SpeechRecognizer']]], ['endofspeechdetected',['endOfSpeechDetected',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#a59f998dabf28a7db3d87e2b9350a221b',1,'com::amazon::aace::alexa::SpeechRecognizer']]], ['executecommands',['executeCommands',['../classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html#aaebb36d48655e30799879fa2293743b2',1,'com::amazon::aace::apl::APL']]], ['executecommandsresult',['executeCommandsResult',['../classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html#a2f2a74dffec7943fec77108cfda62f09',1,'com::amazon::aace::apl::APL']]] diff --git a/docs/android/search/functions_5.js b/docs/android/search/functions_5.js index 9ca68e87b..92286c70e 100644 --- a/docs/android/search/functions_5.js +++ b/docs/android/search/functions_5.js @@ -18,7 +18,7 @@ var searchData= ['getplayerduration',['getPlayerDuration',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player.html#a3ddd0246911b32d798dad3dae3e7e64d',1,'com::amazon::aace::alexa::AudioPlayer']]], ['getplayerposition',['getPlayerPosition',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_audio_player.html#ac5af34b211180066c0a72d768800dc0d',1,'com::amazon::aace::alexa::AudioPlayer']]], ['getposition',['getPosition',['../classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html#affc2aadf7fe81a6a9463152ae51420f8',1,'com::amazon::aace::audio::AudioOutput']]], - ['getproperty',['getProperty',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#a9aa96efbfcb7b0132917957bccb85159',1,'com.amazon.aace.core.Engine.getProperty()'],['../classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html#ae18af547c39b0c8e2a763e34d988f4a2',1,'com.amazon.aace.propertyManager.PropertyManager.getProperty()']]], + ['getproperty',['getProperty',['../classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html#ae18af547c39b0c8e2a763e34d988f4a2',1,'com::amazon::aace::propertyManager::PropertyManager']]], ['getrangecontrollervalue',['getRangeControllerValue',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#ae694da83885a8ab8c5c481ac06f382a4',1,'com::amazon::aace::carControl::CarControl']]], ['getrefreshtoken',['getRefreshToken',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html#aa7a91ec3198415d309d3a5d061cb974f',1,'com::amazon::aace::cbl::CBL']]], ['getsource',['getSource',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source.html#ab8cf2993bd0dce8a71cf147a08fbe2cb',1,'com::amazon::aace::alexa::LocalMediaSource']]], diff --git a/docs/android/search/functions_7.js b/docs/android/search/functions_7.js index 54342e5b2..68608562b 100644 --- a/docs/android/search/functions_7.js +++ b/docs/android/search/functions_7.js @@ -3,6 +3,5 @@ var searchData= ['initandrundiscovery',['initAndRunDiscovery',['../classcom_1_1amazon_1_1maccandroid_1_1_m_a_c_c_android_client.html#a4d1acf7c53ec5508c9769ef40e31aa79',1,'com::amazon::maccandroid::MACCAndroidClient']]], ['interruptcommandsequence',['interruptCommandSequence',['../classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html#a47a3fbfd7b24158b225fe376d0559e5a',1,'com::amazon::aace::apl::APL']]], ['ispowercontrolleron',['isPowerControllerOn',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#a9ab19b4f3930027cfa8d88b02ac8355c',1,'com::amazon::aace::carControl::CarControl']]], - ['istogglecontrolleron',['isToggleControllerOn',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#a19c74c8a8b397a9ca79a6ca313cff2b6',1,'com::amazon::aace::carControl::CarControl']]], - ['iswakeworddetectionenabled',['isWakewordDetectionEnabled',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_speech_recognizer.html#af0d4c212de01891b3647b2bf18a59df6',1,'com::amazon::aace::alexa::SpeechRecognizer']]] + ['istogglecontrolleron',['isToggleControllerOn',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#a19c74c8a8b397a9ca79a6ca313cff2b6',1,'com::amazon::aace::carControl::CarControl']]] ]; diff --git a/docs/android/search/functions_d.js b/docs/android/search/functions_d.js index dd42e4e1e..d60a02bb9 100644 --- a/docs/android/search/functions_d.js +++ b/docs/android/search/functions_d.js @@ -4,11 +4,10 @@ var searchData= ['registerplatforminterface',['registerPlatformInterface',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#ae4f3c98ac03db8b6f8aa0a33d88586b9',1,'com::amazon::aace::core::Engine']]], ['removeallalerts',['removeAllAlerts',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts.html#abb9f0c260a01fa735ec0424f36b9c3ed',1,'com::amazon::aace::alexa::Alerts']]], ['removediscoveredplayer',['removeDiscoveredPlayer',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html#ae34e390c93b76497b86db5cdcd16fda6',1,'com::amazon::aace::alexa::ExternalMediaAdapter']]], - ['removeuploadedcontacts',['removeUploadedContacts',['../classcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader.html#a2051f55d69963b829f7e52378e77f6ff',1,'com::amazon::aace::contactuploader::ContactUploader']]], ['renderdocument',['renderDocument',['../classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html#ad7a2d8bcd734b02486ccced4656df947',1,'com::amazon::aace::apl::APL']]], ['renderdocumentresult',['renderDocumentResult',['../classcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l.html#a6a4248122416663bf1e4412f99fd429d',1,'com::amazon::aace::apl::APL']]], - ['renderplayerinfo',['renderPlayerInfo',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a485b27cafa223d145a1808326446f13b',1,'com.amazon.aace.alexa.TemplateRuntime.renderPlayerInfo(String payload)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a09010f2bbdf49bbd579108d7c405e040',1,'com.amazon.aace.alexa.TemplateRuntime.renderPlayerInfo(String payload, PlayerActivity audioPlayerState, long offset, FocusState focusState)']]], - ['rendertemplate',['renderTemplate',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a4c8189b23f28853714a99f3e0f1e8404',1,'com.amazon.aace.alexa.TemplateRuntime.renderTemplate(String payload)'],['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a2b47479f51a5998559dc2d7e9b33fdbe',1,'com.amazon.aace.alexa.TemplateRuntime.renderTemplate(String payload, FocusState focusState)']]], + ['renderplayerinfo',['renderPlayerInfo',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a09010f2bbdf49bbd579108d7c405e040',1,'com::amazon::aace::alexa::TemplateRuntime']]], + ['rendertemplate',['renderTemplate',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_template_runtime.html#a2b47479f51a5998559dc2d7e9b33fdbe',1,'com::amazon::aace::alexa::TemplateRuntime']]], ['reportdiscoveredplayers',['reportDiscoveredPlayers',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html#ac35c5760ab1c2cfca05f59eb0fdfa62b',1,'com::amazon::aace::alexa::ExternalMediaAdapter']]], ['requesttoken',['requestToken',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter.html#a70408cbfd6cf421643434928d4619511',1,'com::amazon::aace::alexa::ExternalMediaAdapter']]], ['reset',['reset',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html#a438e7b454cdfca08bf2b24795f73650b',1,'com::amazon::aace::cbl::CBL']]], diff --git a/docs/android/search/functions_e.js b/docs/android/search/functions_e.js index 0b2af9a8d..440a27ce4 100644 --- a/docs/android/search/functions_e.js +++ b/docs/android/search/functions_e.js @@ -14,7 +14,7 @@ var searchData= ['setindicator',['setIndicator',['../classcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications.html#ab83e0f63cbd01de0c1fb2cf0b331b9cf',1,'com::amazon::aace::alexa::Notifications']]], ['setmodecontrollervalue',['setModeControllerValue',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#a0336838d257867216acfae83ebcb6796',1,'com::amazon::aace::carControl::CarControl']]], ['setposition',['setPosition',['../classcom_1_1amazon_1_1aace_1_1audio_1_1_audio_output.html#a228c6e8079d5782e1e7d9b21a925638d',1,'com::amazon::aace::audio::AudioOutput']]], - ['setproperty',['setProperty',['../classcom_1_1amazon_1_1aace_1_1core_1_1_engine.html#a2739fa7b37aa1c292d5a55c6e0127189',1,'com.amazon.aace.core.Engine.setProperty()'],['../classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html#a6a6b6d34ba96850c38f1aa3d40786c7d',1,'com.amazon.aace.propertyManager.PropertyManager.setProperty()']]], + ['setproperty',['setProperty',['../classcom_1_1amazon_1_1aace_1_1property_manager_1_1_property_manager.html#a6a6b6d34ba96850c38f1aa3d40786c7d',1,'com::amazon::aace::propertyManager::PropertyManager']]], ['setrangecontrollervalue',['setRangeControllerValue',['../classcom_1_1amazon_1_1aace_1_1car_control_1_1_car_control.html#afe04323771ca2cbbc44de5ecb93c38ce',1,'com::amazon::aace::carControl::CarControl']]], ['setrefreshtoken',['setRefreshToken',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html#ad320c677bafca842107daa2419bbc675',1,'com::amazon::aace::cbl::CBL']]], ['setuserprofile',['setUserProfile',['../classcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l.html#a18753a6d6d002bc4188de1a00beba9e5',1,'com::amazon::aace::cbl::CBL']]], diff --git a/docs/android/search/searchdata.js b/docs/android/search/searchdata.js index 1d6590c27..cb71b41b3 100644 --- a/docs/android/search/searchdata.js +++ b/docs/android/search/searchdata.js @@ -1,7 +1,7 @@ var indexSectionsWithContent = { - 0: "abcdefghilmnoprstuvwyz", - 1: "acdefilmnpstvz", + 0: "abcdefghilmnoprstuvwy", + 1: "acdefilmnpstv", 2: "abcdeghilmnoprstvw", 3: "abcdefghilmnoprstuvwy", 4: "ad" diff --git a/docs/android/search/variables_11.js b/docs/android/search/variables_11.js index b58f6b314..5174c1ecb 100644 --- a/docs/android/search/variables_11.js +++ b/docs/android/search/variables_11.js @@ -5,13 +5,8 @@ var searchData= ['unfavorited',['UNFAVORITED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_external_media_adapter_1_1_favorites.html#a6eb5e1fa3c230f445c3ae1147bd67acd',1,'com.amazon.aace.alexa.ExternalMediaAdapter.Favorites.UNFAVORITED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_favorites.html#a07d0bc918d3898558be4025b12068c8a',1,'com.amazon.aace.alexa.LocalMediaSource.Favorites.UNFAVORITED()']]], ['uninitialized',['UNINITIALIZED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html#a6a54b74d1219d6022a21d1493f607a6b',1,'com.amazon.aace.alexa.AlexaClient.AuthState.UNINITIALIZED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html#a9e8a6803b57d45467f047d3f412ceb27',1,'com.amazon.aace.alexa.AuthProvider.AuthState.UNINITIALIZED()']]], ['unknown',['UNKNOWN',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_notifications_1_1_indicator_state.html#a440225fb9b82619cf3336073764c4e80',1,'com.amazon.aace.alexa.Notifications.IndicatorState.UNKNOWN()'],['../enumcom_1_1amazon_1_1aace_1_1apl_1_1_a_p_l_1_1_activity_event.html#affbb173f103e2dc6c9399dd6a3674902',1,'com.amazon.aace.apl.APL.ActivityEvent.UNKNOWN()'],['../enumcom_1_1amazon_1_1aace_1_1network_1_1_network_info_provider_1_1_network_status.html#a6b44a8379299aa098271ca9a9b21ca9e',1,'com.amazon.aace.network.NetworkInfoProvider.NetworkStatus.UNKNOWN()']]], - ['unknown_5ferror',['UNKNOWN_ERROR',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html#a110946e49f9624a3823d1457f5efe57b',1,'com.amazon.aace.alexa.AlexaClient.AuthError.UNKNOWN_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html#ab82213352bde9993de5bda26fbcf1486',1,'com.amazon.aace.alexa.AuthProvider.AuthError.UNKNOWN_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a13fa0980d273463079d5b9d3dc0555c8',1,'com.amazon.aace.contactuploader.ContactUploader.ContactUploadStatus.UNKNOWN_ERROR()']]], + ['unknown_5ferror',['UNKNOWN_ERROR',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html#a110946e49f9624a3823d1457f5efe57b',1,'com.amazon.aace.alexa.AlexaClient.AuthError.UNKNOWN_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html#ab82213352bde9993de5bda26fbcf1486',1,'com.amazon.aace.alexa.AuthProvider.AuthError.UNKNOWN_ERROR()']]], ['unrecoverable_5ferror',['UNRECOVERABLE_ERROR',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html#a9395e797fd39967a690db2217114b43a',1,'com.amazon.aace.alexa.AlexaClient.AuthState.UNRECOVERABLE_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_connection_changed_reason.html#a24c07684a8aa086e8cab5c34e84ba245',1,'com.amazon.aace.alexa.AlexaClient.ConnectionChangedReason.UNRECOVERABLE_ERROR()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html#a13dec4634da247a0a897f5e2da2ab7c1',1,'com.amazon.aace.alexa.AuthProvider.AuthState.UNRECOVERABLE_ERROR()']]], ['unsupported_5fgrant_5ftype',['UNSUPPORTED_GRANT_TYPE',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_error.html#ae7f34009c855ab19054576a5cf8e5fb7',1,'com.amazon.aace.alexa.AlexaClient.AuthError.UNSUPPORTED_GRANT_TYPE()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_error.html#a791e3bdd8b3ef18b34dd57d39871fa1b',1,'com.amazon.aace.alexa.AuthProvider.AuthError.UNSUPPORTED_GRANT_TYPE()']]], - ['upload_5fcontacts_5fcanceled',['UPLOAD_CONTACTS_CANCELED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a4e1f535c012040e533bc9e5f8b32138c',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['upload_5fcontacts_5fcompleted',['UPLOAD_CONTACTS_COMPLETED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#afcfbf627d12631be93f42ada7de94fbe',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['upload_5fcontacts_5ferror',['UPLOAD_CONTACTS_ERROR',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a2bbb4f15c8c3721312764fdc2a0aaf31',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['upload_5fcontacts_5fstarted',['UPLOAD_CONTACTS_STARTED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a7fdbea7744657504a3f96e94169761c8',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['upload_5fcontacts_5fuploading',['UPLOAD_CONTACTS_UPLOADING',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#ae178216446039e3c5114cfbfa646c139',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], ['usb',['USB',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_local_media_source_1_1_source.html#a9eeb1241157772d62b8666ca203b59f8',1,'com::amazon::aace::alexa::LocalMediaSource::Source']]] ]; diff --git a/docs/android/search/variables_e.js b/docs/android/search/variables_e.js index f10604edd..06aea229f 100644 --- a/docs/android/search/variables_e.js +++ b/docs/android/search/variables_e.js @@ -5,9 +5,6 @@ var searchData= ['ready',['READY',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alerts_1_1_alert_state.html#a808b9e372a43813f1cc465ca4cf2a558',1,'com::amazon::aace::alexa::Alerts::AlertState']]], ['refreshed',['REFRESHED',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_alexa_client_1_1_auth_state.html#abcd39f34f475ff1506abd332133e7ab9',1,'com.amazon.aace.alexa.AlexaClient.AuthState.REFRESHED()'],['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_auth_provider_1_1_auth_state.html#ad0dacf1dbc99ddf4c923863a6ce3f038',1,'com.amazon.aace.alexa.AuthProvider.AuthState.REFRESHED()']]], ['refreshing_5ftoken',['REFRESHING_TOKEN',['../enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html#afbb19a70e90574677a52d0e5ae13fb75',1,'com::amazon::aace::cbl::CBL::CBLState']]], - ['remove_5fcontacts_5fcompleted',['REMOVE_CONTACTS_COMPLETED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#acc5c9c5df1aef958949f477bf5850c3d',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['remove_5fcontacts_5ferror',['REMOVE_CONTACTS_ERROR',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a75051f2fd58e1a6eddae5e70c4a73d40',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], - ['remove_5fcontacts_5fstarted',['REMOVE_CONTACTS_STARTED',['../enumcom_1_1amazon_1_1aace_1_1contactuploader_1_1_contact_uploader_1_1_contact_upload_status.html#a1069aed51f8709040ceb84e978f2a7a4',1,'com::amazon::aace::contactuploader::ContactUploader::ContactUploadStatus']]], ['repeat',['REPEAT',['../enumcom_1_1amazon_1_1aace_1_1alexa_1_1_playback_controller_1_1_playback_toggle.html#a5b6191bde99908b57e7a49f42a9c44d6',1,'com::amazon::aace::alexa::PlaybackController::PlaybackToggle']]], ['requesting_5fcode_5fpair',['REQUESTING_CODE_PAIR',['../enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html#a80ff59d65698a4bbf3d1c00ade4a82a2',1,'com::amazon::aace::cbl::CBL::CBLState']]], ['requesting_5ftoken',['REQUESTING_TOKEN',['../enumcom_1_1amazon_1_1aace_1_1cbl_1_1_c_b_l_1_1_c_b_l_state.html#a555c83bcacee077d86e04dbf79524d09',1,'com::amazon::aace::cbl::CBL::CBLState']]], diff --git a/docs/cpp/_a_p_l_8h_source.html b/docs/cpp/_a_p_l_8h_source.html index 4ed325b8c..5b87247af 100644 --- a/docs/cpp/_a_p_l_8h_source.html +++ b/docs/cpp/_a_p_l_8h_source.html @@ -23,7 +23,7 @@ Logo
                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -89,7 +89,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_a_p_l_configuration_8h_source.html b/docs/cpp/_a_p_l_configuration_8h_source.html index e1ce9aed9..197a4b918 100644 --- a/docs/cpp/_a_p_l_configuration_8h_source.html +++ b/docs/cpp/_a_p_l_configuration_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -79,7 +79,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_a_p_l_engine_interface_8h_source.html b/docs/cpp/_a_p_l_engine_interface_8h_source.html index 2f5b6a188..0f78c9588 100644 --- a/docs/cpp/_a_p_l_engine_interface_8h_source.html +++ b/docs/cpp/_a_p_l_engine_interface_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_address_book_8h_source.html b/docs/cpp/_address_book_8h_source.html index 240f2eee2..5d6628300 100644 --- a/docs/cpp/_address_book_8h_source.html +++ b/docs/cpp/_address_book_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -76,7 +76,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_address_book_engine_interface_8h_source.html b/docs/cpp/_address_book_engine_interface_8h_source.html index 6b74a0a0a..0ffb32e4e 100644 --- a/docs/cpp/_address_book_engine_interface_8h_source.html +++ b/docs/cpp/_address_book_engine_interface_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_alerts_8h_source.html b/docs/cpp/_alerts_8h_source.html index 1be648006..8906ed9b8 100644 --- a/docs/cpp/_alerts_8h_source.html +++ b/docs/cpp/_alerts_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -93,7 +93,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_alexa_client_8h_source.html b/docs/cpp/_alexa_client_8h_source.html index 601013c81..cc7ac9272 100644 --- a/docs/cpp/_alexa_client_8h_source.html +++ b/docs/cpp/_alexa_client_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -76,10 +76,10 @@
                                                                ConnectionStatus
                                                                Definition: AlexaClient.h:96
                                                                -
                                                                AuthState
                                                                Definition: AlexaEngineInterfaces.h:205
                                                                +
                                                                AuthState
                                                                Definition: AlexaEngineInterfaces.h:203
                                                                Definition: PlatformInterface.h:29
                                                                -
                                                                AuthError
                                                                Definition: AlexaEngineInterfaces.h:231
                                                                +
                                                                AuthError
                                                                Definition: AlexaEngineInterfaces.h:229
                                                                DialogState
                                                                Definition: AlexaClient.h:40
                                                                Definition: AddressBook.h:26
                                                                @@ -111,7 +111,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_alexa_configuration_8h_source.html b/docs/cpp/_alexa_configuration_8h_source.html index 5da2b7b59..b59c0abba 100644 --- a/docs/cpp/_alexa_configuration_8h_source.html +++ b/docs/cpp/_alexa_configuration_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -80,7 +80,7 @@
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createExternalMediaPlayerConfig(const std::string &agent)
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createAlertsConfig(const std::string &databaseFilePath)
                                                                std::pair< TemplateRuntimeTimeoutType, std::chrono::milliseconds > TemplateRuntimeTimeout
                                                                Definition: AlexaConfiguration.h:360
                                                                -
                                                                std::pair< EqualizerBand, int > EqualizerBandLevel
                                                                Definition: AlexaEngineInterfaces.h:462
                                                                +
                                                                std::pair< EqualizerBand, int > EqualizerBandLevel
                                                                Definition: AlexaEngineInterfaces.h:460
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createSystemConfig(uint32_t firmwareVersion)
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createTemplateRuntimeTimeoutConfig(const std::vector< TemplateRuntimeTimeout > &timeoutList)
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createSpeechRecognizerConfig(const std::string &encoderName)
                                                                @@ -90,7 +90,7 @@
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createCurlConfig(const std::string &certsPath, const std::string &iface="")
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createSpeakerManagerConfig(bool enabled)
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createDeviceSettingsConfig(const std::string &databaseFilePath, const std::vector< std::string > &locales={"en-US", "en-GB", "de-DE", "en-IN", "en-CA", "ja-JP", "en-AU", "fr-FR", "it-IT", "es-ES", "es-MX", "fr-CA", "es-US", "hi-IN", "pt-BR"}, const std::string &defaultLocale="en-US", const std::string &defaultTimezone="America/Vancouver", const std::vector< std::vector< std::string >> &localeCombinations={})
                                                                -
                                                                EqualizerBand
                                                                Definition: AlexaEngineInterfaces.h:449
                                                                +
                                                                EqualizerBand
                                                                Definition: AlexaEngineInterfaces.h:447
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createNotificationsConfig(const std::string &databaseFilePath)
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createCapabilitiesDelegateConfig(const std::string &databaseFilePath)
                                                                @@ -98,7 +98,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_alexa_engine_interfaces_8h_source.html b/docs/cpp/_alexa_engine_interfaces_8h_source.html index 7aded92a9..481f3ad02 100644 --- a/docs/cpp/_alexa_engine_interfaces_8h_source.html +++ b/docs/cpp/_alexa_engine_interfaces_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,45 +68,45 @@
                                                                AlexaEngineInterfaces.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_ALEXA_ENGINE_INTERFACES_H
                                                                17 #define AACE_ALEXA_ALEXA_ENGINE_INTERFACES_H
                                                                18 
                                                                19 #include <fstream>
                                                                20 #include <iostream>
                                                                21 #include <string>
                                                                22 #include <vector>
                                                                23 #include <memory>
                                                                24 #include <limits>
                                                                25 
                                                                28 namespace aace {
                                                                29 namespace alexa {
                                                                30 
                                                                35 public:
                                                                39  enum class SpeakerType {
                                                                40 
                                                                45 
                                                                50  };
                                                                51 
                                                                52  virtual void onLocalSetVolume(SpeakerType type, int8_t volume) = 0;
                                                                53  virtual void onLocalAdjustVolume(SpeakerType type, int8_t delta) = 0;
                                                                54  virtual void onLocalSetMute(SpeakerType type, bool mute) = 0;
                                                                55 };
                                                                56 
                                                                57 inline std::ostream& operator<<(std::ostream& stream, const AlexaSpeakerEngineInterface::SpeakerType& type) {
                                                                58  switch (type) {
                                                                60  stream << "ALEXA_VOLUME";
                                                                61  break;
                                                                63  stream << "ALERTS_VOLUME";
                                                                64  break;
                                                                65  }
                                                                66  return stream;
                                                                67 }
                                                                68 
                                                                73 public:
                                                                77  enum class Initiator {
                                                                78 
                                                                82  HOLD_TO_TALK,
                                                                86  TAP_TO_TALK,
                                                                90  WAKEWORD
                                                                91  };
                                                                92 
                                                                93  /*
                                                                94  * Defines an unspecified value for the speech recognizer's audio index.
                                                                95  */
                                                                96  static constexpr uint64_t UNSPECIFIED_INDEX = std::numeric_limits<uint64_t>::max();
                                                                97 
                                                                98  virtual bool onStartCapture(
                                                                99  Initiator initiator,
                                                                100  uint64_t keywordBegin,
                                                                101  uint64_t keywordEnd,
                                                                102  const std::string& keyword) = 0;
                                                                103  virtual bool onStopCapture() = 0;
                                                                104  virtual bool enableWakewordDetection() = 0;
                                                                105  virtual bool disableWakewordDetection() = 0;
                                                                106 };
                                                                107 
                                                                108 inline std::ostream& operator<<(std::ostream& stream, const SpeechRecognizerEngineInterface::Initiator& initiator) {
                                                                109  switch (initiator) {
                                                                111  stream << "HOLD_TO_TALK";
                                                                112  break;
                                                                114  stream << "TAP_TO_TALK";
                                                                115  break;
                                                                117  stream << "WAKEWORD";
                                                                118  break;
                                                                119  }
                                                                120  return stream;
                                                                121 }
                                                                122 
                                                                127 public:
                                                                128  virtual void onLocalStop() = 0;
                                                                129  virtual void removeAllAlerts() = 0;
                                                                130 };
                                                                131 
                                                                136 public:
                                                                140  enum class PlaybackButton {
                                                                144  PLAY,
                                                                148  PAUSE,
                                                                152  NEXT,
                                                                156  PREVIOUS,
                                                                160  SKIP_FORWARD,
                                                                164  SKIP_BACKWARD
                                                                165  };
                                                                166 
                                                                170  enum class PlaybackToggle {
                                                                174  SHUFFLE,
                                                                178  LOOP,
                                                                182  REPEAT,
                                                                186  THUMBS_UP,
                                                                190  THUMBS_DOWN
                                                                191  };
                                                                192 
                                                                193  virtual void onButtonPressed(PlaybackButton button) = 0;
                                                                194  virtual void onTogglePressed(PlaybackToggle toggle, bool action) = 0;
                                                                195 };
                                                                196 
                                                                201 public:
                                                                205  enum class AuthState {
                                                                206 
                                                                210  UNINITIALIZED,
                                                                211 
                                                                215  REFRESHED,
                                                                216 
                                                                220  EXPIRED,
                                                                221 
                                                                225  UNRECOVERABLE_ERROR
                                                                226  };
                                                                227 
                                                                231  enum class AuthError {
                                                                232 
                                                                236  NO_ERROR,
                                                                237 
                                                                241  UNKNOWN_ERROR,
                                                                242 
                                                                246  AUTHORIZATION_FAILED,
                                                                247 
                                                                251  UNAUTHORIZED_CLIENT,
                                                                252 
                                                                256  SERVER_ERROR,
                                                                257 
                                                                261  INVALID_REQUEST,
                                                                262 
                                                                266  INVALID_VALUE,
                                                                267 
                                                                271  AUTHORIZATION_EXPIRED,
                                                                272 
                                                                276  UNSUPPORTED_GRANT_TYPE,
                                                                277 
                                                                281  INVALID_CODE_PAIR,
                                                                282 
                                                                286  AUTHORIZATION_PENDING,
                                                                287 
                                                                291  SLOW_DOWN,
                                                                292 
                                                                296  INTERNAL_ERROR,
                                                                297 
                                                                301  INVALID_CBL_CLIENT_ID
                                                                302  };
                                                                303 
                                                                304  virtual void onAuthStateChanged(AuthState state, AuthError error) = 0;
                                                                305 };
                                                                306 
                                                                307 inline std::ostream& operator<<(std::ostream& stream, const AuthProviderEngineInterface::AuthState& state) {
                                                                308  switch (state) {
                                                                310  stream << "UNINITIALIZED";
                                                                311  break;
                                                                313  stream << "REFRESHED";
                                                                314  break;
                                                                316  stream << "EXPIRED";
                                                                317  break;
                                                                319  stream << "UNRECOVERABLE_ERROR";
                                                                320  break;
                                                                321  }
                                                                322  return stream;
                                                                323 }
                                                                324 
                                                                325 inline std::ostream& operator<<(std::ostream& stream, const AuthProviderEngineInterface::AuthError& error) {
                                                                326  switch (error) {
                                                                328  stream << "NO_ERROR";
                                                                329  break;
                                                                331  stream << "UNKNOWN_ERROR";
                                                                332  break;
                                                                334  stream << "AUTHORIZATION_FAILED";
                                                                335  break;
                                                                337  stream << "UNAUTHORIZED_CLIENT";
                                                                338  break;
                                                                340  stream << "SERVER_ERROR";
                                                                341  break;
                                                                343  stream << "INVALID_REQUEST";
                                                                344  break;
                                                                346  stream << "INVALID_VALUE";
                                                                347  break;
                                                                349  stream << "AUTHORIZATION_EXPIRED";
                                                                350  break;
                                                                352  stream << "UNSUPPORTED_GRANT_TYPE";
                                                                353  break;
                                                                355  stream << "INVALID_CODE_PAIR";
                                                                356  break;
                                                                358  stream << "AUTHORIZATION_PENDING";
                                                                359  break;
                                                                361  stream << "SLOW_DOWN";
                                                                362  break;
                                                                364  stream << "INTERNAL_ERROR";
                                                                365  break;
                                                                367  stream << "INVALID_CBL_CLIENT_ID";
                                                                368  break;
                                                                369  }
                                                                370  return stream;
                                                                371 }
                                                                372 
                                                                377 public:
                                                                382  public:
                                                                384  std::string localPlayerId;
                                                                386  std::string spiVersion;
                                                                392  std::string validationMethod;
                                                                398  std::vector<std::string> validationData;
                                                                399  };
                                                                400 
                                                                401  virtual void onReportDiscoveredPlayers(const std::vector<DiscoveredPlayerInfo>& discoveredPlayers) = 0;
                                                                402  virtual void onRequestToken(const std::string& localPlayerId) = 0;
                                                                403  virtual void onLoginComplete(const std::string& localPlayerId) = 0;
                                                                404  virtual void onLogoutComplete(const std::string& localPlayerId) = 0;
                                                                405  virtual void onPlayerEvent(const std::string& localPlayerId, const std::string& eventName) = 0;
                                                                406  virtual void onPlayerError(
                                                                407  const std::string& localPlayerId,
                                                                408  const std::string& errorName,
                                                                409  long code,
                                                                410  const std::string& description,
                                                                411  bool fatal) = 0;
                                                                412  virtual void onSetFocus(const std::string& playerId) = 0;
                                                                413  virtual void onRemoveDiscoveredPlayer(const std::string& localPlayerId) = 0;
                                                                414 };
                                                                415 
                                                                420 public:
                                                                421  virtual void onPlayerEvent(const std::string& eventName) = 0;
                                                                422  virtual void onPlayerError(const std::string& errorName, long code, const std::string& description, bool fatal) = 0;
                                                                423  virtual void onSetFocus(bool focusAcquire = true) = 0;
                                                                424 };
                                                                425 
                                                                430 public:
                                                                438  virtual bool onDoNotDisturbChanged(const bool doNotDisturb) = 0;
                                                                439 };
                                                                440 
                                                                445 public:
                                                                449  enum class EqualizerBand {
                                                                451  BASS,
                                                                453  MIDRANGE,
                                                                455  TREBLE
                                                                456  };
                                                                457 
                                                                462  using EqualizerBandLevel = std::pair<EqualizerBand, int>;
                                                                463 
                                                                471  virtual void onLocalSetBandLevels(const std::vector<EqualizerBandLevel>& bandLevels) = 0;
                                                                472 
                                                                482  virtual void onLocalAdjustBandLevels(const std::vector<EqualizerBandLevel>& bandAdjustments) = 0;
                                                                483 
                                                                490  virtual void onLocalResetBands(const std::vector<EqualizerBand>& bands) = 0;
                                                                491 };
                                                                492 
                                                                500  switch (band) {
                                                                502  return "BASS";
                                                                504  return "MIDRANGE";
                                                                506  return "TREBLE";
                                                                507  }
                                                                508  return "UNKNOWN";
                                                                509 }
                                                                510 
                                                                518 inline std::ostream& operator<<(std::ostream& stream, const EqualizerControllerEngineInterface::EqualizerBand& band) {
                                                                519  stream << equalizerBandToString(band);
                                                                520  return stream;
                                                                521 }
                                                                522 
                                                                527 public:
                                                                536  virtual int64_t onGetPlayerPosition() = 0;
                                                                537 
                                                                544  virtual int64_t onGetPlayerDuration() = 0;
                                                                545 };
                                                                546 
                                                                551 public:
                                                                556  virtual void onDisplayCardCleared() = 0;
                                                                557 };
                                                                558 
                                                                563 public:
                                                                564  virtual void onStopForegroundActivity() = 0;
                                                                565 };
                                                                566 
                                                                567 } // namespace alexa
                                                                568 } // namespace aace
                                                                569 
                                                                570 #endif // AACE_ALEXA_ALEXA_ENGINE_INTERFACES_H
                                                                Definition: AlexaEngineInterfaces.h:429
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_ALEXA_ENGINE_INTERFACES_H
                                                                17 #define AACE_ALEXA_ALEXA_ENGINE_INTERFACES_H
                                                                18 
                                                                19 #include <fstream>
                                                                20 #include <iostream>
                                                                21 #include <string>
                                                                22 #include <vector>
                                                                23 #include <memory>
                                                                24 #include <limits>
                                                                25 
                                                                28 namespace aace {
                                                                29 namespace alexa {
                                                                30 
                                                                35 public:
                                                                39  enum class SpeakerType {
                                                                40 
                                                                45 
                                                                50  };
                                                                51 
                                                                52  virtual void onLocalSetVolume(SpeakerType type, int8_t volume) = 0;
                                                                53  virtual void onLocalAdjustVolume(SpeakerType type, int8_t delta) = 0;
                                                                54  virtual void onLocalSetMute(SpeakerType type, bool mute) = 0;
                                                                55 };
                                                                56 
                                                                57 inline std::ostream& operator<<(std::ostream& stream, const AlexaSpeakerEngineInterface::SpeakerType& type) {
                                                                58  switch (type) {
                                                                60  stream << "ALEXA_VOLUME";
                                                                61  break;
                                                                63  stream << "ALERTS_VOLUME";
                                                                64  break;
                                                                65  }
                                                                66  return stream;
                                                                67 }
                                                                68 
                                                                73 public:
                                                                77  enum class Initiator {
                                                                78 
                                                                82  HOLD_TO_TALK,
                                                                86  TAP_TO_TALK,
                                                                90  WAKEWORD
                                                                91  };
                                                                92 
                                                                93  /*
                                                                94  * Defines an unspecified value for the speech recognizer's audio index.
                                                                95  */
                                                                96  static constexpr uint64_t UNSPECIFIED_INDEX = std::numeric_limits<uint64_t>::max();
                                                                97 
                                                                98  virtual bool onStartCapture(
                                                                99  Initiator initiator,
                                                                100  uint64_t keywordBegin,
                                                                101  uint64_t keywordEnd,
                                                                102  const std::string& keyword) = 0;
                                                                103  virtual bool onStopCapture() = 0;
                                                                104 };
                                                                105 
                                                                106 inline std::ostream& operator<<(std::ostream& stream, const SpeechRecognizerEngineInterface::Initiator& initiator) {
                                                                107  switch (initiator) {
                                                                109  stream << "HOLD_TO_TALK";
                                                                110  break;
                                                                112  stream << "TAP_TO_TALK";
                                                                113  break;
                                                                115  stream << "WAKEWORD";
                                                                116  break;
                                                                117  }
                                                                118  return stream;
                                                                119 }
                                                                120 
                                                                125 public:
                                                                126  virtual void onLocalStop() = 0;
                                                                127  virtual void removeAllAlerts() = 0;
                                                                128 };
                                                                129 
                                                                134 public:
                                                                138  enum class PlaybackButton {
                                                                142  PLAY,
                                                                146  PAUSE,
                                                                150  NEXT,
                                                                154  PREVIOUS,
                                                                158  SKIP_FORWARD,
                                                                162  SKIP_BACKWARD
                                                                163  };
                                                                164 
                                                                168  enum class PlaybackToggle {
                                                                172  SHUFFLE,
                                                                176  LOOP,
                                                                180  REPEAT,
                                                                184  THUMBS_UP,
                                                                188  THUMBS_DOWN
                                                                189  };
                                                                190 
                                                                191  virtual void onButtonPressed(PlaybackButton button) = 0;
                                                                192  virtual void onTogglePressed(PlaybackToggle toggle, bool action) = 0;
                                                                193 };
                                                                194 
                                                                199 public:
                                                                203  enum class AuthState {
                                                                204 
                                                                208  UNINITIALIZED,
                                                                209 
                                                                213  REFRESHED,
                                                                214 
                                                                218  EXPIRED,
                                                                219 
                                                                223  UNRECOVERABLE_ERROR
                                                                224  };
                                                                225 
                                                                229  enum class AuthError {
                                                                230 
                                                                234  NO_ERROR,
                                                                235 
                                                                239  UNKNOWN_ERROR,
                                                                240 
                                                                244  AUTHORIZATION_FAILED,
                                                                245 
                                                                249  UNAUTHORIZED_CLIENT,
                                                                250 
                                                                254  SERVER_ERROR,
                                                                255 
                                                                259  INVALID_REQUEST,
                                                                260 
                                                                264  INVALID_VALUE,
                                                                265 
                                                                269  AUTHORIZATION_EXPIRED,
                                                                270 
                                                                274  UNSUPPORTED_GRANT_TYPE,
                                                                275 
                                                                279  INVALID_CODE_PAIR,
                                                                280 
                                                                284  AUTHORIZATION_PENDING,
                                                                285 
                                                                289  SLOW_DOWN,
                                                                290 
                                                                294  INTERNAL_ERROR,
                                                                295 
                                                                299  INVALID_CBL_CLIENT_ID
                                                                300  };
                                                                301 
                                                                302  virtual void onAuthStateChanged(AuthState state, AuthError error) = 0;
                                                                303 };
                                                                304 
                                                                305 inline std::ostream& operator<<(std::ostream& stream, const AuthProviderEngineInterface::AuthState& state) {
                                                                306  switch (state) {
                                                                308  stream << "UNINITIALIZED";
                                                                309  break;
                                                                311  stream << "REFRESHED";
                                                                312  break;
                                                                314  stream << "EXPIRED";
                                                                315  break;
                                                                317  stream << "UNRECOVERABLE_ERROR";
                                                                318  break;
                                                                319  }
                                                                320  return stream;
                                                                321 }
                                                                322 
                                                                323 inline std::ostream& operator<<(std::ostream& stream, const AuthProviderEngineInterface::AuthError& error) {
                                                                324  switch (error) {
                                                                326  stream << "NO_ERROR";
                                                                327  break;
                                                                329  stream << "UNKNOWN_ERROR";
                                                                330  break;
                                                                332  stream << "AUTHORIZATION_FAILED";
                                                                333  break;
                                                                335  stream << "UNAUTHORIZED_CLIENT";
                                                                336  break;
                                                                338  stream << "SERVER_ERROR";
                                                                339  break;
                                                                341  stream << "INVALID_REQUEST";
                                                                342  break;
                                                                344  stream << "INVALID_VALUE";
                                                                345  break;
                                                                347  stream << "AUTHORIZATION_EXPIRED";
                                                                348  break;
                                                                350  stream << "UNSUPPORTED_GRANT_TYPE";
                                                                351  break;
                                                                353  stream << "INVALID_CODE_PAIR";
                                                                354  break;
                                                                356  stream << "AUTHORIZATION_PENDING";
                                                                357  break;
                                                                359  stream << "SLOW_DOWN";
                                                                360  break;
                                                                362  stream << "INTERNAL_ERROR";
                                                                363  break;
                                                                365  stream << "INVALID_CBL_CLIENT_ID";
                                                                366  break;
                                                                367  }
                                                                368  return stream;
                                                                369 }
                                                                370 
                                                                375 public:
                                                                380  public:
                                                                382  std::string localPlayerId;
                                                                384  std::string spiVersion;
                                                                390  std::string validationMethod;
                                                                396  std::vector<std::string> validationData;
                                                                397  };
                                                                398 
                                                                399  virtual void onReportDiscoveredPlayers(const std::vector<DiscoveredPlayerInfo>& discoveredPlayers) = 0;
                                                                400  virtual void onRequestToken(const std::string& localPlayerId) = 0;
                                                                401  virtual void onLoginComplete(const std::string& localPlayerId) = 0;
                                                                402  virtual void onLogoutComplete(const std::string& localPlayerId) = 0;
                                                                403  virtual void onPlayerEvent(const std::string& localPlayerId, const std::string& eventName) = 0;
                                                                404  virtual void onPlayerError(
                                                                405  const std::string& localPlayerId,
                                                                406  const std::string& errorName,
                                                                407  long code,
                                                                408  const std::string& description,
                                                                409  bool fatal) = 0;
                                                                410  virtual void onSetFocus(const std::string& playerId) = 0;
                                                                411  virtual void onRemoveDiscoveredPlayer(const std::string& localPlayerId) = 0;
                                                                412 };
                                                                413 
                                                                418 public:
                                                                419  virtual void onPlayerEvent(const std::string& eventName) = 0;
                                                                420  virtual void onPlayerError(const std::string& errorName, long code, const std::string& description, bool fatal) = 0;
                                                                421  virtual void onSetFocus(bool focusAcquire = true) = 0;
                                                                422 };
                                                                423 
                                                                428 public:
                                                                436  virtual bool onDoNotDisturbChanged(const bool doNotDisturb) = 0;
                                                                437 };
                                                                438 
                                                                443 public:
                                                                447  enum class EqualizerBand {
                                                                449  BASS,
                                                                451  MIDRANGE,
                                                                453  TREBLE
                                                                454  };
                                                                455 
                                                                460  using EqualizerBandLevel = std::pair<EqualizerBand, int>;
                                                                461 
                                                                469  virtual void onLocalSetBandLevels(const std::vector<EqualizerBandLevel>& bandLevels) = 0;
                                                                470 
                                                                480  virtual void onLocalAdjustBandLevels(const std::vector<EqualizerBandLevel>& bandAdjustments) = 0;
                                                                481 
                                                                488  virtual void onLocalResetBands(const std::vector<EqualizerBand>& bands) = 0;
                                                                489 };
                                                                490 
                                                                498  switch (band) {
                                                                500  return "BASS";
                                                                502  return "MIDRANGE";
                                                                504  return "TREBLE";
                                                                505  }
                                                                506  return "UNKNOWN";
                                                                507 }
                                                                508 
                                                                516 inline std::ostream& operator<<(std::ostream& stream, const EqualizerControllerEngineInterface::EqualizerBand& band) {
                                                                517  stream << equalizerBandToString(band);
                                                                518  return stream;
                                                                519 }
                                                                520 
                                                                525 public:
                                                                534  virtual int64_t onGetPlayerPosition() = 0;
                                                                535 
                                                                542  virtual int64_t onGetPlayerDuration() = 0;
                                                                543 };
                                                                544 
                                                                549 public:
                                                                554  virtual void onDisplayCardCleared() = 0;
                                                                555 };
                                                                556 
                                                                561 public:
                                                                562  virtual void onStopForegroundActivity() = 0;
                                                                563 };
                                                                564 
                                                                565 } // namespace alexa
                                                                566 } // namespace aace
                                                                567 
                                                                568 #endif // AACE_ALEXA_ALEXA_ENGINE_INTERFACES_H
                                                                Definition: AlexaEngineInterfaces.h:427
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:562
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:560
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:419
                                                                -
                                                                AuthState
                                                                Definition: AlexaEngineInterfaces.h:205
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:417
                                                                +
                                                                AuthState
                                                                Definition: AlexaEngineInterfaces.h:203
                                                                Definition: AlexaEngineInterfaces.h:72
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:444
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:126
                                                                -
                                                                AuthError
                                                                Definition: AlexaEngineInterfaces.h:231
                                                                -
                                                                PlaybackButton
                                                                Definition: AlexaEngineInterfaces.h:140
                                                                -
                                                                std::vector< std::string > validationData
                                                                Definition: AlexaEngineInterfaces.h:398
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:526
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:442
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:124
                                                                +
                                                                AuthError
                                                                Definition: AlexaEngineInterfaces.h:229
                                                                +
                                                                PlaybackButton
                                                                Definition: AlexaEngineInterfaces.h:138
                                                                +
                                                                std::vector< std::string > validationData
                                                                Definition: AlexaEngineInterfaces.h:396
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:524
                                                                - + -
                                                                std::string equalizerBandToString(const EqualizerControllerEngineInterface::EqualizerBand &band)
                                                                Definition: AlexaEngineInterfaces.h:499
                                                                +
                                                                std::string equalizerBandToString(const EqualizerControllerEngineInterface::EqualizerBand &band)
                                                                Definition: AlexaEngineInterfaces.h:497
                                                                Definition: AddressBook.h:26
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:376
                                                                -
                                                                std::string localPlayerId
                                                                The opaque token that uniquely identifies the local external player app.
                                                                Definition: AlexaEngineInterfaces.h:384
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:135
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:374
                                                                +
                                                                std::string localPlayerId
                                                                The opaque token that uniquely identifies the local external player app.
                                                                Definition: AlexaEngineInterfaces.h:382
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:133
                                                                -
                                                                std::pair< EqualizerBand, int > EqualizerBandLevel
                                                                Definition: AlexaEngineInterfaces.h:462
                                                                -
                                                                std::string validationMethod
                                                                Definition: AlexaEngineInterfaces.h:392
                                                                +
                                                                std::pair< EqualizerBand, int > EqualizerBandLevel
                                                                Definition: AlexaEngineInterfaces.h:460
                                                                +
                                                                std::string validationMethod
                                                                Definition: AlexaEngineInterfaces.h:390
                                                                -
                                                                PlaybackToggle
                                                                Definition: AlexaEngineInterfaces.h:170
                                                                +
                                                                PlaybackToggle
                                                                Definition: AlexaEngineInterfaces.h:168
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:550
                                                                -
                                                                std::string spiVersion
                                                                The only spiVersion that currently exists is "1.0".
                                                                Definition: AlexaEngineInterfaces.h:386
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:548
                                                                +
                                                                std::string spiVersion
                                                                The only spiVersion that currently exists is "1.0".
                                                                Definition: AlexaEngineInterfaces.h:384
                                                                -
                                                                Definition: AlexaEngineInterfaces.h:200
                                                                +
                                                                Definition: AlexaEngineInterfaces.h:198
                                                                SpeakerType
                                                                Definition: AlexaEngineInterfaces.h:39
                                                                @@ -119,14 +119,14 @@
                                                                Definition: AlexaEngineInterfaces.h:34
                                                                -
                                                                EqualizerBand
                                                                Definition: AlexaEngineInterfaces.h:449
                                                                +
                                                                EqualizerBand
                                                                Definition: AlexaEngineInterfaces.h:447

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_alexa_properties_8h_source.html b/docs/cpp/_alexa_properties_8h_source.html index 7a6bec0cc..6e40b4137 100644 --- a/docs/cpp/_alexa_properties_8h_source.html +++ b/docs/cpp/_alexa_properties_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,13 +68,13 @@
                                                                AlexaProperties.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_PROPERTY_ALEXA_PROPERTIES_H
                                                                17 #define AACE_ALEXA_PROPERTY_ALEXA_PROPERTIES_H
                                                                18 
                                                                21 namespace aace {
                                                                22 namespace alexa {
                                                                23 namespace property {
                                                                24 
                                                                31 static const std::string WAKEWORD_SUPPORTED = "aace.alexa.wakewordSupported";
                                                                32 
                                                                39 static const std::string FIRMWARE_VERSION = "aace.alexa.system.firmwareVersion";
                                                                40 
                                                                49 static const std::string LOCALE = "aace.alexa.setting.locale";
                                                                50 
                                                                67 static const std::string SUPPORTED_LOCALES = "aace.alexa.supportedLocales";
                                                                68 
                                                                74 static const std::string COUNTRY_SUPPORTED = "aace.alexa.countrySupported";
                                                                75 
                                                                84 static const std::string WAKEWORD_ENABLED = "aace.alexa.wakewordEnabled";
                                                                85 
                                                                93 static const std::string TIMEZONE = "aace.alexa.timezone";
                                                                94 
                                                                95 } // namespace property
                                                                96 } // namespace alexa
                                                                97 } // namespace aace
                                                                98 
                                                                99 #endif // AACE_ALEXA_PROPERTY_ALEXA_PROPERTIES_H
                                                                Definition: AddressBook.h:26
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_PROPERTY_ALEXA_PROPERTIES_H
                                                                17 #define AACE_ALEXA_PROPERTY_ALEXA_PROPERTIES_H
                                                                18 
                                                                21 namespace aace {
                                                                22 namespace alexa {
                                                                23 namespace property {
                                                                24 
                                                                31 static const std::string WAKEWORD_SUPPORTED = "aace.alexa.wakewordSupported";
                                                                32 
                                                                39 static const std::string FIRMWARE_VERSION = "aace.alexa.system.firmwareVersion";
                                                                40 
                                                                49 static const std::string LOCALE = "aace.alexa.setting.locale";
                                                                50 
                                                                56 static const std::string COUNTRY_SUPPORTED = "aace.alexa.countrySupported";
                                                                57 
                                                                66 static const std::string WAKEWORD_ENABLED = "aace.alexa.wakewordEnabled";
                                                                67 
                                                                75 static const std::string TIMEZONE = "aace.alexa.timezone";
                                                                76 
                                                                77 } // namespace property
                                                                78 } // namespace alexa
                                                                79 } // namespace aace
                                                                80 
                                                                81 #endif // AACE_ALEXA_PROPERTY_ALEXA_PROPERTIES_H
                                                                Definition: AddressBook.h:26

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_alexa_speaker_8h_source.html b/docs/cpp/_alexa_speaker_8h_source.html index 8ea4fa56f..719f6e070 100644 --- a/docs/cpp/_alexa_speaker_8h_source.html +++ b/docs/cpp/_alexa_speaker_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -81,7 +81,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_audio_engine_interfaces_8h_source.html b/docs/cpp/_audio_engine_interfaces_8h_source.html index ceb83db0b..edfe04748 100644 --- a/docs/cpp/_audio_engine_interfaces_8h_source.html +++ b/docs/cpp/_audio_engine_interfaces_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -76,7 +76,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_audio_format_8h_source.html b/docs/cpp/_audio_format_8h_source.html index 928b638d3..a37a74a2c 100644 --- a/docs/cpp/_audio_format_8h_source.html +++ b/docs/cpp/_audio_format_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_audio_input_8h_source.html b/docs/cpp/_audio_input_8h_source.html index 0abc6d811..f24ac1434 100644 --- a/docs/cpp/_audio_input_8h_source.html +++ b/docs/cpp/_audio_input_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_audio_input_provider_8h_source.html b/docs/cpp/_audio_input_provider_8h_source.html index 36404b481..0bd5552a7 100644 --- a/docs/cpp/_audio_input_provider_8h_source.html +++ b/docs/cpp/_audio_input_provider_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -75,7 +75,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_audio_output_8h_source.html b/docs/cpp/_audio_output_8h_source.html index c4fbc33e3..27b3672dc 100644 --- a/docs/cpp/_audio_output_8h_source.html +++ b/docs/cpp/_audio_output_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -92,7 +92,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_audio_output_provider_8h_source.html b/docs/cpp/_audio_output_provider_8h_source.html index ca2a5573d..e0a55dd2b 100644 --- a/docs/cpp/_audio_output_provider_8h_source.html +++ b/docs/cpp/_audio_output_provider_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -75,7 +75,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_audio_player_8h_source.html b/docs/cpp/_audio_player_8h_source.html index d35aefdb8..7a4dd9471 100644 --- a/docs/cpp/_audio_player_8h_source.html +++ b/docs/cpp/_audio_player_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -81,7 +81,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_audio_stream_8h_source.html b/docs/cpp/_audio_stream_8h_source.html index fac8bd975..76e3a9550 100644 --- a/docs/cpp/_audio_stream_8h_source.html +++ b/docs/cpp/_audio_stream_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -79,7 +79,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_auth_provider_8h_source.html b/docs/cpp/_auth_provider_8h_source.html index 0ed82c041..31470c4ee 100644 --- a/docs/cpp/_auth_provider_8h_source.html +++ b/docs/cpp/_auth_provider_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -69,9 +69,9 @@
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_AUTH_PROVIDER_H
                                                                17 #define AACE_ALEXA_AUTH_PROVIDER_H
                                                                18 
                                                                19 #include <string>
                                                                20 
                                                                21 #include "AACE/Core/PlatformInterface.h"
                                                                22 #include "AlexaEngineInterfaces.h"
                                                                23 
                                                                26 namespace aace {
                                                                27 namespace alexa {
                                                                28 
                                                                34 protected:
                                                                35  AuthProvider() = default;
                                                                36 
                                                                37 public:
                                                                43 
                                                                49 
                                                                50  virtual ~AuthProvider();
                                                                51 
                                                                58  virtual std::string getAuthToken() = 0;
                                                                59 
                                                                65  virtual AuthState getAuthState() = 0;
                                                                66 
                                                                74  virtual void authFailure(const std::string& token){};
                                                                75 
                                                                82  void authStateChanged(AuthState authState, AuthError authError);
                                                                83 
                                                                90  void setEngineInterface(std::shared_ptr<AuthProviderEngineInterface> authProviderEngineInterface);
                                                                91 
                                                                92 private:
                                                                93  std::weak_ptr<AuthProviderEngineInterface> m_authProviderEngineInterface;
                                                                94 };
                                                                95 
                                                                96 } // namespace alexa
                                                                97 } // namespace aace
                                                                98 
                                                                99 #endif // AACE_ALEXA_AUTH_PROVIDER_H
                                                                virtual std::string getAuthToken()=0
                                                                -
                                                                AuthState
                                                                Definition: AlexaEngineInterfaces.h:205
                                                                +
                                                                AuthState
                                                                Definition: AlexaEngineInterfaces.h:203
                                                                Definition: PlatformInterface.h:29
                                                                -
                                                                AuthError
                                                                Definition: AlexaEngineInterfaces.h:231
                                                                +
                                                                AuthError
                                                                Definition: AlexaEngineInterfaces.h:229
                                                                Definition: AddressBook.h:26
                                                                void authStateChanged(AuthState authState, AuthError authError)
                                                                Definition: AuthProvider.cpp:23
                                                                virtual AuthState getAuthState()=0
                                                                @@ -82,7 +82,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_c_b_l_8h_source.html b/docs/cpp/_c_b_l_8h_source.html index 4bfbd8aae..194b24c41 100644 --- a/docs/cpp/_c_b_l_8h_source.html +++ b/docs/cpp/_c_b_l_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -98,7 +98,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_c_b_l_configuration_8h_source.html b/docs/cpp/_c_b_l_configuration_8h_source.html index f2529a589..b4c63d2ab 100644 --- a/docs/cpp/_c_b_l_configuration_8h_source.html +++ b/docs/cpp/_c_b_l_configuration_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -77,7 +77,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_c_b_l_engine_interface_8h_source.html b/docs/cpp/_c_b_l_engine_interface_8h_source.html index 9e9d081ea..7642c5f38 100644 --- a/docs/cpp/_c_b_l_engine_interface_8h_source.html +++ b/docs/cpp/_c_b_l_engine_interface_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_car_control_8h_source.html b/docs/cpp/_car_control_8h_source.html index 5333dd386..2b3d24e5e 100644 --- a/docs/cpp/_car_control_8h_source.html +++ b/docs/cpp/_car_control_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -90,7 +90,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_car_control_assets_8h_source.html b/docs/cpp/_car_control_assets_8h_source.html index 12edb962c..dd744e7c8 100644 --- a/docs/cpp/_car_control_assets_8h_source.html +++ b/docs/cpp/_car_control_assets_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,13 +68,13 @@
                                                                CarControlAssets.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_CAR_CONTROL_CAR_CONTROL_ASSETS_H
                                                                17 #define AACE_CAR_CONTROL_CAR_CONTROL_ASSETS_H
                                                                18 
                                                                21 #include <string>
                                                                22 
                                                                23 namespace aace {
                                                                24 namespace carControl {
                                                                25 namespace assets {
                                                                26 namespace alexa {
                                                                27 
                                                                28 namespace device {
                                                                29 static const std::string AIR_CONDITIONER = "Alexa.Automotive.DeviceName.AirConditioner";
                                                                30 static const std::string AMBIENT_LIGHT = "Alexa.Automotive.DeviceName.AmbientLight";
                                                                31 static const std::string AVM_CAMERA = "Alexa.Automotive.DeviceName.AVMCamera";
                                                                32 static const std::string ARMREST = "Alexa.Automotive.DeviceName.Armrest";
                                                                33 static const std::string CABIN_LIGHT = "Alexa.Automotive.DeviceName.CabinLight";
                                                                34 static const std::string CAMERA_360 = "Alexa.Automotive.DeviceName.360Camera";
                                                                35 static const std::string CAR = "Alexa.Automotive.DeviceName.Car";
                                                                36 static const std::string CHARGE_DOOR = "Alexa.Automotive.DeviceName.ChargeDoor";
                                                                37 static const std::string CLIMATE_CONTROL = "Alexa.Automotive.DeviceName.ClimateControl";
                                                                38 static const std::string COOLER = "Alexa.Automotive.DeviceName.Cooler";
                                                                39 static const std::string CUP_HOLDER = "Alexa.Automotive.DeviceName.CupHolder";
                                                                40 static const std::string DISPLAY = "Alexa.Automotive.DeviceName.Display";
                                                                41 static const std::string DISPLAY_SCREEN = "Alexa.Automotive.DeviceName.DisplayScreen";
                                                                42 static const std::string DOME_LIGHT = "Alexa.Automotive.DeviceName.DomeLight";
                                                                43 static const std::string DRIVER_SEAT = "Alexa.Automotive.DeviceName.DriverSeat";
                                                                44 static const std::string FAN = "Alexa.Automotive.DeviceName.Fan";
                                                                45 static const std::string FOG_LIGHT = "Alexa.Automotive.DeviceName.FogLight";
                                                                46 static const std::string GAS_DOOR = "Alexa.Automotive.DeviceName.GasDoor";
                                                                47 static const std::string HAZARD_LIGHTS = "Alexa.Automotive.DeviceName.HazardLights";
                                                                48 static const std::string HEADLIGHT = "Alexa.Automotive.DeviceName.Headlight";
                                                                49 static const std::string HEATER = "Alexa.Automotive.DeviceName.Heater";
                                                                50 static const std::string HIGH_BEAM = "Alexa.Automotive.DeviceName.HighBeam";
                                                                51 static const std::string HOOD = "Alexa.Automotive.DeviceName.Hood";
                                                                52 static const std::string HUD = "Alexa.Automotive.DeviceName.HUD";
                                                                53 static const std::string INFO_SCREEN = "Alexa.Automotive.DeviceName.InfoScreen";
                                                                54 static const std::string LEFT_SEAT = "Alexa.Automotive.DeviceName.LeftSeat";
                                                                55 static const std::string LIGHT = "Alexa.Automotive.DeviceName.Light";
                                                                56 static const std::string MOONROOF = "Alexa.Automotive.DeviceName.Moonroof";
                                                                57 static const std::string PARKING_LIGHTS = "Alexa.Automotive.DeviceName.ParkingLights";
                                                                58 static const std::string PASSENGER_SEAT = "Alexa.Automotive.DeviceName.PassengerSeat";
                                                                59 static const std::string READING_LIGHT = "Alexa.Automotive.DeviceName.ReadingLight";
                                                                60 static const std::string RIGHT_SEAT = "Alexa.Automotive.DeviceName.RightSeat";
                                                                61 static const std::string SEAT = "Alexa.Automotive.DeviceName.Seat";
                                                                62 static const std::string SEAT_HEATER = "Alexa.Automotive.DeviceName.SeatHeater";
                                                                63 static const std::string STEERING_WHEEL = "Alexa.Automotive.DeviceName.SteeringWheel";
                                                                64 static const std::string SUNROOF = "Alexa.Automotive.DeviceName.Sunroof";
                                                                65 static const std::string SUNSHADE = "Alexa.Automotive.DeviceName.Sunshade";
                                                                66 static const std::string TAILGATE = "Alexa.Automotive.DeviceName.Tailgate";
                                                                67 static const std::string TRUNK = "Alexa.Automotive.DeviceName.Trunk";
                                                                68 static const std::string TRUNK_LIGHT = "Alexa.Automotive.DeviceName.TrunkLight";
                                                                69 static const std::string VENT = "Alexa.Automotive.DeviceName.Vent";
                                                                70 static const std::string WINDOW = "Alexa.Automotive.DeviceName.Window";
                                                                71 static const std::string WINDSHIELD = "Alexa.Automotive.DeviceName.Windshield";
                                                                72 static const std::string WINDSHIELD_WIPERS = "Alexa.Automotive.DeviceName.WindshieldWipers";
                                                                73 } // namespace device
                                                                74 
                                                                75 namespace location {
                                                                76 static const std::string ALL = "Alexa.Automotive.Location.All";
                                                                77 static const std::string DRIVER = "Alexa.Automotive.Location.Driver";
                                                                78 static const std::string DRIVER_ROW = "Alexa.Automotive.Location.DriverRow";
                                                                79 static const std::string FIRST_ROW = "Alexa.Automotive.Location.FirstRow";
                                                                80 static const std::string FOURTH_ROW = "Alexa.Automotive.Location.FourthRow";
                                                                81 static const std::string FRONT = "Alexa.Automotive.Location.Front";
                                                                82 static const std::string FRONT_LEFT = "Alexa.Automotive.Location.FrontLeft";
                                                                83 static const std::string FRONT_RIGHT = "Alexa.Automotive.Location.FrontRight";
                                                                84 static const std::string LEFT = "Alexa.Automotive.Location.Left";
                                                                85 static const std::string PASSENGER = "Alexa.Automotive.Location.Passenger";
                                                                86 static const std::string PASSENGER_ROW = "Alexa.Automotive.Location.PassengerRow";
                                                                87 static const std::string REAR = "Alexa.Automotive.Location.Rear";
                                                                88 static const std::string REAR_LEFT = "Alexa.Automotive.Location.RearLeft";
                                                                89 static const std::string REAR_RIGHT = "Alexa.Automotive.Location.RearRight";
                                                                90 static const std::string REAR_DRIVER = "Alexa.Automotive.Location.RearDriver";
                                                                91 static const std::string REAR_PASSENGER = "Alexa.Automotive.Location.RearPassenger";
                                                                92 static const std::string RIGHT = "Alexa.Automotive.Location.Right";
                                                                93 static const std::string SECOND_ROW = "Alexa.Automotive.Location.SecondRow";
                                                                94 static const std::string THIRD_ROW = "Alexa.Automotive.Location.ThirdRow";
                                                                95 } // namespace location
                                                                96 
                                                                97 namespace setting {
                                                                98 static const std::string AIR_RECIRCULATION = "Alexa.Automotive.Setting.AirRecirculation";
                                                                99 static const std::string AUTO = "Alexa.Automotive.Setting.Auto";
                                                                100 static const std::string AUTO_BRAKE_HOLD = "Alexa.Automotive.Setting.AutoBrakeHold";
                                                                101 static const std::string BLUETOOTH_PAGE = "Alexa.Automotive.Setting.BluetoothPage";
                                                                102 static const std::string BODY_VENTS = "Alexa.Automotive.Setting.BodyVents";
                                                                103 static const std::string BRIGHTNESS = "Alexa.Automotive.Setting.Brightness";
                                                                104 static const std::string CHILD_DOOR_LOCK = "Alexa.Automotive.Setting.ChildDoorLock";
                                                                105 static const std::string CLIMATE_SYNC = "Alexa.Automotive.Setting.ClimateSync";
                                                                106 static const std::string COLOR = "Alexa.Automotive.Setting.Color";
                                                                107 static const std::string COOLING = "Alexa.Automotive.Setting.Cooling";
                                                                108 static const std::string CRUISE_CONTROL = "Alexa.Automotive.Setting.CruiseControl";
                                                                109 static const std::string DEFOG = "Alexa.Automotive.Setting.Defog";
                                                                110 static const std::string DEFROST = "Alexa.Automotive.Setting.Defrost";
                                                                111 static const std::string DIRECTION = "Alexa.Automotive.Setting.Direction";
                                                                112 static const std::string DRIVE_MODE = "Alexa.Automotive.Setting.DriveMode";
                                                                113 static const std::string ECONOMY = "Alexa.Automotive.Setting.Economy";
                                                                114 static const std::string FAN_SPEED = "Alexa.Automotive.Setting.FanSpeed";
                                                                115 static const std::string FLOOR_VENTS = "Alexa.Automotive.Setting.FloorVents";
                                                                116 static const std::string HEAT = "Alexa.Automotive.Setting.Heat";
                                                                117 static const std::string HEIGHT = "Alexa.Automotive.Setting.Height";
                                                                118 static const std::string HILL_ASSIST = "Alexa.Automotive.Setting.HillAssist";
                                                                119 static const std::string INFO_PAGE = "Alexa.Automotive.Setting.InfoPage";
                                                                120 static const std::string INTENSITY = "Alexa.Automotive.Setting.Intensity";
                                                                121 static const std::string LANE_ASSIST = "Alexa.Automotive.Setting.LaneAssist";
                                                                122 static const std::string MANUAL = "Alexa.Automotive.Setting.Manual";
                                                                123 static const std::string MAX_AIR_CONDITIONING = "Alexa.Automotive.Setting.MaxAirConditioning";
                                                                124 static const std::string MIX_VENTS = "Alexa.Automotive.Setting.MixVents";
                                                                125 static const std::string MODE = "Alexa.Automotive.Setting.Mode";
                                                                126 static const std::string NAVIGATION_PAGE = "Alexa.Automotive.Setting.NavigationPage";
                                                                127 static const std::string OPENNESS = "Alexa.Automotive.Setting.Openness";
                                                                128 static const std::string PARKING_BRAKE = "Alexa.Automotive.Setting.ParkingBrake";
                                                                129 static const std::string POSITION = "Alexa.Automotive.Setting.Position";
                                                                130 static const std::string PRE_COLLISION_BRAKE = "Alexa.Automotive.Setting.PreCollisionBrake";
                                                                131 static const std::string RADIO_PAGE = "Alexa.Automotive.Setting.RadioPage";
                                                                132 static const std::string SATELLITE_RADIO_PAGE = "Alexa.Automotive.Setting.SatelliteRadioPage";
                                                                133 static const std::string SERVICE_PAGE = "Alexa.Automotive.Setting.ServicePage";
                                                                134 static const std::string SETTINGS_PAGE = "Alexa.Automotive.Setting.SettingsPage";
                                                                135 static const std::string SPEED = "Alexa.Automotive.Setting.Speed";
                                                                136 static const std::string STORED_POSITION = "Alexa.Automotive.Setting.StoredPosition";
                                                                137 static const std::string SWAY_WARNING = "Alexa.Automotive.Setting.SwayWarning";
                                                                138 static const std::string TEMPERATURE = "Alexa.Automotive.Setting.Temperature";
                                                                139 static const std::string TOWING_MODE = "Alexa.Automotive.Setting.TowingMode";
                                                                140 static const std::string TRACTION_CONTROL = "Alexa.Automotive.Setting.TractionControl";
                                                                141 static const std::string WINDOW_LOCK = "Alexa.Automotive.Setting.WindowLock";
                                                                142 static const std::string WINDSHIELD_VENTS = "Alexa.Automotive.Setting.WindshieldVents";
                                                                143 } // namespace setting
                                                                144 
                                                                145 namespace unit {
                                                                146 static const std::string CELSIUS = "Alexa.Unit.Temperature.Celsius";
                                                                147 static const std::string FAHRENHEIT = "Alexa.Unit.Temperature.Fahrenheit";
                                                                148 static const std::string PERCENT = "Alexa.Unit.Percent";
                                                                149 } // namespace unit
                                                                150 
                                                                151 namespace color {
                                                                152 static const std::string BLUE = "Alexa.Automotive.Value.Blue";
                                                                153 static const std::string GREEN = "Alexa.Automotive.Value.Green";
                                                                154 static const std::string INDIGO = "Alexa.Automotive.Value.Indigo";
                                                                155 static const std::string ORANGE = "Alexa.Automotive.Value.Orange";
                                                                156 static const std::string RED = "Alexa.Automotive.Value.Red";
                                                                157 static const std::string VIOLET = "Alexa.Automotive.Value.Violet";
                                                                158 static const std::string WHITE = "Alexa.Automotive.Value.White";
                                                                159 static const std::string YELLOW = "Alexa.Automotive.Value.Yellow";
                                                                160 } // namespace color
                                                                161 
                                                                162 namespace value {
                                                                163 static const std::string ALERTS_PAGE = "Alexa.Automotive.Value.AlertsPage";
                                                                164 static const std::string BLUETOOTH_PAGE = "Alexa.Automotive.Value.BluetoothPage";
                                                                165 static const std::string CLOSED = "Alexa.Automotive.Value.Closed";
                                                                166 static const std::string COMFORT = "Alexa.Automotive.Value.Comfort";
                                                                167 static const std::string CONTACTS_PAGE = "Alexa.Automotive.Value.ContactsPage";
                                                                168 static const std::string CONTROLS_PAGE = "Alexa.Automotive.Value.ControlsPage";
                                                                169 static const std::string DRIVER_VIEW = "Alexa.Automotive.Value.DriverView";
                                                                170 static const std::string DYNAMIC_COORDINATOR_PAGE = "Alexa.Automotive.Value.DynamicCoordinatorPage";
                                                                171 static const std::string FOUR_WD_AUTO = "Alexa.Automotive.Value.4WDAuto";
                                                                172 static const std::string FOUR_WD_HIGH = "Alexa.Automotive.Value.4WDHigh";
                                                                173 static const std::string FOUR_WD_LOW = "Alexa.Automotive.Value.4WDLow";
                                                                174 static const std::string FRONT_VIEW = "Alexa.Automotive.Value.FrontView";
                                                                175 static const std::string FULL = "Alexa.Automotive.Value.Full";
                                                                176 static const std::string GPS_PAGE = "Alexa.Automotive.Value.GPSPage";
                                                                177 static const std::string HALF = "Alexa.Automotive.Value.Half";
                                                                178 static const std::string HIGH = "Alexa.Automotive.Value.High";
                                                                179 static const std::string HOME_PAGE = "Alexa.Automotive.Value.HomePage";
                                                                180 static const std::string INFORMATION_PAGE = "Alexa.Automotive.Value.InformationPage";
                                                                181 static const std::string INSIDE_AIR = "Alexa.Automotive.Value.InsideAir";
                                                                182 static const std::string INTERMITTENT = "Alexa.Automotive.Value.Intermittent";
                                                                183 static const std::string LOW = "Alexa.Automotive.Value.Low";
                                                                184 static const std::string MAXIMUM = "Alexa.Automotive.Value.Maximum";
                                                                185 static const std::string MEDIUM = "Alexa.Automotive.Value.Medium";
                                                                186 static const std::string MINIMUM = "Alexa.Automotive.Value.Minimum";
                                                                187 static const std::string MULTIMEDIA_PAGE = "Alexa.Automotive.Value.MultimediaPage";
                                                                188 static const std::string MUSIC_PAGE = "Alexa.Automotive.Value.MusicPage";
                                                                189 static const std::string NAVIGATION_PAGE = "Alexa.Automotive.Value.NavigationPage";
                                                                190 static const std::string NORMAL = "Alexa.Automotive.Value.Normal";
                                                                191 static const std::string NOTIFICATIONS_PAGE = "Alexa.Automotive.Value.NotificationsPage";
                                                                192 static const std::string OPEN = "Alexa.Automotive.Value.Open";
                                                                193 static const std::string OPTIMAL = "Alexa.Automotive.Value.Optimal";
                                                                194 static const std::string OUTSIDE_AIR = "Alexa.Automotive.Value.OutsideAir";
                                                                195 static const std::string PASSENGER_VIEW = "Alexa.Automotive.Value.PassengerView";
                                                                196 static const std::string PERFORMANCE_PAGE = "Alexa.Automotive.Value.PerformancePage";
                                                                197 static const std::string POSITION_ONE = "Alexa.Automotive.Value.PositionOne";
                                                                198 static const std::string POSITION_THREE = "Alexa.Automotive.Value.PositionThree";
                                                                199 static const std::string POSITION_TWO = "Alexa.Automotive.Value.PositionTwo";
                                                                200 static const std::string RADIO_PAGE = "Alexa.Automotive.Value.RadioPage";
                                                                201 static const std::string REAR_VIEW = "Alexa.Automotive.Value.RearView";
                                                                202 static const std::string SATELLITE_RADIO_PAGE = "Alexa.Automotive.Value.SatelliteRadioPage";
                                                                203 static const std::string SERVICE_PAGE = "Alexa.Automotive.Value.ServicePage";
                                                                204 static const std::string SETTINGS_PAGE = "Alexa.Automotive.Value.SettingsPage";
                                                                205 static const std::string SPORT = "Alexa.Automotive.Value.Sport";
                                                                206 static const std::string SPORT_PLUS = "Alexa.Automotive.Value.SportPlus";
                                                                207 static const std::string TELEPHONE_PAGE = "Alexa.Automotive.Value.TelephonePage";
                                                                208 static const std::string VEHICLE_STATUS_PAGE = "Alexa.Automotive.Value.VehicleStatusPage";
                                                                209 } // namespace value
                                                                210 
                                                                211 } // namespace alexa
                                                                212 } // namespace assets
                                                                213 } // namespace carControl
                                                                214 } // namespace aace
                                                                215 
                                                                216 #endif // AACE_CAR_CONTROL_CAR_CONTROL_ASSETS_H
                                                                Definition: AddressBook.h:26
                                                                +
                                                                1 /*
                                                                2  * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_CAR_CONTROL_CAR_CONTROL_ASSETS_H
                                                                17 #define AACE_CAR_CONTROL_CAR_CONTROL_ASSETS_H
                                                                18 
                                                                21 #include <string>
                                                                22 
                                                                23 namespace aace {
                                                                24 namespace carControl {
                                                                25 namespace assets {
                                                                26 namespace alexa {
                                                                27 
                                                                28 namespace device {
                                                                29 static const std::string AIR_CONDITIONER = "Alexa.Automotive.DeviceName.AirConditioner";
                                                                30 static const std::string AMBIENT_LIGHT = "Alexa.Automotive.DeviceName.AmbientLight";
                                                                31 static const std::string AVM_CAMERA = "Alexa.Automotive.DeviceName.AVMCamera";
                                                                32 static const std::string ARMREST = "Alexa.Automotive.DeviceName.Armrest";
                                                                33 static const std::string CABIN_LIGHT = "Alexa.Automotive.DeviceName.CabinLight";
                                                                34 static const std::string CAMERA_360 = "Alexa.Automotive.DeviceName.360Camera";
                                                                35 static const std::string CAR = "Alexa.Automotive.DeviceName.Car";
                                                                36 static const std::string CHARGE_DOOR = "Alexa.Automotive.DeviceName.ChargeDoor";
                                                                37 static const std::string CLIMATE_CONTROL = "Alexa.Automotive.DeviceName.ClimateControl";
                                                                38 static const std::string COOLER = "Alexa.Automotive.DeviceName.Cooler";
                                                                39 static const std::string CUP_HOLDER = "Alexa.Automotive.DeviceName.CupHolder";
                                                                40 static const std::string DISPLAY = "Alexa.Automotive.DeviceName.Display";
                                                                41 static const std::string DISPLAY_SCREEN = "Alexa.Automotive.DeviceName.DisplayScreen";
                                                                42 static const std::string DOME_LIGHT = "Alexa.Automotive.DeviceName.DomeLight";
                                                                43 static const std::string FAN = "Alexa.Automotive.DeviceName.Fan";
                                                                44 static const std::string FOG_LIGHT = "Alexa.Automotive.DeviceName.FogLight";
                                                                45 static const std::string GAS_DOOR = "Alexa.Automotive.DeviceName.GasDoor";
                                                                46 static const std::string HAZARD_LIGHTS = "Alexa.Automotive.DeviceName.HazardLights";
                                                                47 static const std::string HEADLIGHT = "Alexa.Automotive.DeviceName.Headlight";
                                                                48 static const std::string HEATER = "Alexa.Automotive.DeviceName.Heater";
                                                                49 static const std::string HIGH_BEAM = "Alexa.Automotive.DeviceName.HighBeam";
                                                                50 static const std::string HOOD = "Alexa.Automotive.DeviceName.Hood";
                                                                51 static const std::string HUD = "Alexa.Automotive.DeviceName.HUD";
                                                                52 static const std::string INFO_SCREEN = "Alexa.Automotive.DeviceName.InfoScreen";
                                                                53 static const std::string LIGHT = "Alexa.Automotive.DeviceName.Light";
                                                                54 static const std::string MOONROOF = "Alexa.Automotive.DeviceName.Moonroof";
                                                                55 static const std::string PARKING_LIGHTS = "Alexa.Automotive.DeviceName.ParkingLights";
                                                                56 static const std::string READING_LIGHT = "Alexa.Automotive.DeviceName.ReadingLight";
                                                                57 static const std::string SEAT = "Alexa.Automotive.DeviceName.Seat";
                                                                58 static const std::string SEAT_HEATER = "Alexa.Automotive.DeviceName.SeatHeater";
                                                                59 static const std::string STEERING_WHEEL = "Alexa.Automotive.DeviceName.SteeringWheel";
                                                                60 static const std::string SUNROOF = "Alexa.Automotive.DeviceName.Sunroof";
                                                                61 static const std::string SUNSHADE = "Alexa.Automotive.DeviceName.Sunshade";
                                                                62 static const std::string TAILGATE = "Alexa.Automotive.DeviceName.Tailgate";
                                                                63 static const std::string TRUNK = "Alexa.Automotive.DeviceName.Trunk";
                                                                64 static const std::string TRUNK_LIGHT = "Alexa.Automotive.DeviceName.TrunkLight";
                                                                65 static const std::string VENT = "Alexa.Automotive.DeviceName.Vent";
                                                                66 static const std::string WINDOW = "Alexa.Automotive.DeviceName.Window";
                                                                67 static const std::string WINDSHIELD = "Alexa.Automotive.DeviceName.Windshield";
                                                                68 static const std::string WINDSHIELD_WIPERS = "Alexa.Automotive.DeviceName.WindshieldWipers";
                                                                69 } // namespace device
                                                                70 
                                                                71 namespace location {
                                                                72 static const std::string ALL = "Alexa.Automotive.Location.All";
                                                                73 static const std::string DRIVER = "Alexa.Automotive.Location.Driver";
                                                                74 static const std::string DRIVER_ROW = "Alexa.Automotive.Location.DriverRow";
                                                                75 static const std::string FIRST_ROW = "Alexa.Automotive.Location.FirstRow";
                                                                76 static const std::string FOURTH_ROW = "Alexa.Automotive.Location.FourthRow";
                                                                77 static const std::string FRONT = "Alexa.Automotive.Location.Front";
                                                                78 static const std::string FRONT_LEFT = "Alexa.Automotive.Location.FrontLeft";
                                                                79 static const std::string FRONT_RIGHT = "Alexa.Automotive.Location.FrontRight";
                                                                80 static const std::string LEFT = "Alexa.Automotive.Location.Left";
                                                                81 static const std::string PASSENGER = "Alexa.Automotive.Location.Passenger";
                                                                82 static const std::string PASSENGER_ROW = "Alexa.Automotive.Location.PassengerRow";
                                                                83 static const std::string REAR = "Alexa.Automotive.Location.Rear";
                                                                84 static const std::string REAR_LEFT = "Alexa.Automotive.Location.RearLeft";
                                                                85 static const std::string REAR_RIGHT = "Alexa.Automotive.Location.RearRight";
                                                                86 static const std::string REAR_DRIVER = "Alexa.Automotive.Location.RearDriver";
                                                                87 static const std::string REAR_PASSENGER = "Alexa.Automotive.Location.RearPassenger";
                                                                88 static const std::string RIGHT = "Alexa.Automotive.Location.Right";
                                                                89 static const std::string SECOND_ROW = "Alexa.Automotive.Location.SecondRow";
                                                                90 static const std::string THIRD_ROW = "Alexa.Automotive.Location.ThirdRow";
                                                                91 } // namespace location
                                                                92 
                                                                93 namespace setting {
                                                                94 static const std::string AIR_RECIRCULATION = "Alexa.Automotive.Setting.AirRecirculation";
                                                                95 static const std::string AUTO = "Alexa.Automotive.Setting.Auto";
                                                                96 static const std::string AUTO_BRAKE_HOLD = "Alexa.Automotive.Setting.AutoBrakeHold";
                                                                97 static const std::string BLUETOOTH_PAGE = "Alexa.Automotive.Setting.BluetoothPage";
                                                                98 static const std::string BODY_VENTS = "Alexa.Automotive.Setting.BodyVents";
                                                                99 static const std::string BRIGHTNESS = "Alexa.Automotive.Setting.Brightness";
                                                                100 static const std::string CHILD_DOOR_LOCK = "Alexa.Automotive.Setting.ChildDoorLock";
                                                                101 static const std::string CLIMATE_SYNC = "Alexa.Automotive.Setting.ClimateSync";
                                                                102 static const std::string COLOR = "Alexa.Automotive.Setting.Color";
                                                                103 static const std::string COOLING = "Alexa.Automotive.Setting.Cooling";
                                                                104 static const std::string CRUISE_CONTROL = "Alexa.Automotive.Setting.CruiseControl";
                                                                105 static const std::string DEFOG = "Alexa.Automotive.Setting.Defog";
                                                                106 static const std::string DEFROST = "Alexa.Automotive.Setting.Defrost";
                                                                107 static const std::string DIRECTION = "Alexa.Automotive.Setting.Direction";
                                                                108 static const std::string DRIVE_MODE = "Alexa.Automotive.Setting.DriveMode";
                                                                109 static const std::string ECONOMY = "Alexa.Automotive.Setting.Economy";
                                                                110 static const std::string FAN_SPEED = "Alexa.Automotive.Setting.FanSpeed";
                                                                111 static const std::string FLOOR_VENTS = "Alexa.Automotive.Setting.FloorVents";
                                                                112 static const std::string HEAT = "Alexa.Automotive.Setting.Heat";
                                                                113 static const std::string HEIGHT = "Alexa.Automotive.Setting.Height";
                                                                114 static const std::string HILL_ASSIST = "Alexa.Automotive.Setting.HillAssist";
                                                                115 static const std::string INFO_PAGE = "Alexa.Automotive.Setting.InfoPage";
                                                                116 static const std::string INTENSITY = "Alexa.Automotive.Setting.Intensity";
                                                                117 static const std::string LANE_ASSIST = "Alexa.Automotive.Setting.LaneAssist";
                                                                118 static const std::string MANUAL = "Alexa.Automotive.Setting.Manual";
                                                                119 static const std::string MAX_AIR_CONDITIONING = "Alexa.Automotive.Setting.MaxAirConditioning";
                                                                120 static const std::string MIX_VENTS = "Alexa.Automotive.Setting.MixVents";
                                                                121 static const std::string MODE = "Alexa.Automotive.Setting.Mode";
                                                                122 static const std::string NAVIGATION_PAGE = "Alexa.Automotive.Setting.NavigationPage";
                                                                123 static const std::string OPENNESS = "Alexa.Automotive.Setting.Openness";
                                                                124 static const std::string PARKING_BRAKE = "Alexa.Automotive.Setting.ParkingBrake";
                                                                125 static const std::string POSITION = "Alexa.Automotive.Setting.Position";
                                                                126 static const std::string PRE_COLLISION_BRAKE = "Alexa.Automotive.Setting.PreCollisionBrake";
                                                                127 static const std::string RADIO_PAGE = "Alexa.Automotive.Setting.RadioPage";
                                                                128 static const std::string SATELLITE_RADIO_PAGE = "Alexa.Automotive.Setting.SatelliteRadioPage";
                                                                129 static const std::string SERVICE_PAGE = "Alexa.Automotive.Setting.ServicePage";
                                                                130 static const std::string SETTINGS_PAGE = "Alexa.Automotive.Setting.SettingsPage";
                                                                131 static const std::string SPEED = "Alexa.Automotive.Setting.Speed";
                                                                132 static const std::string STORED_POSITION = "Alexa.Automotive.Setting.StoredPosition";
                                                                133 static const std::string SWAY_WARNING = "Alexa.Automotive.Setting.SwayWarning";
                                                                134 static const std::string TEMPERATURE = "Alexa.Automotive.Setting.Temperature";
                                                                135 static const std::string TOWING_MODE = "Alexa.Automotive.Setting.TowingMode";
                                                                136 static const std::string TRACTION_CONTROL = "Alexa.Automotive.Setting.TractionControl";
                                                                137 static const std::string WINDOW_LOCK = "Alexa.Automotive.Setting.WindowLock";
                                                                138 static const std::string WINDSHIELD_VENTS = "Alexa.Automotive.Setting.WindshieldVents";
                                                                139 } // namespace setting
                                                                140 
                                                                141 namespace unit {
                                                                142 static const std::string CELSIUS = "Alexa.Unit.Temperature.Celsius";
                                                                143 static const std::string FAHRENHEIT = "Alexa.Unit.Temperature.Fahrenheit";
                                                                144 static const std::string PERCENT = "Alexa.Unit.Percent";
                                                                145 } // namespace unit
                                                                146 
                                                                147 namespace color {
                                                                148 static const std::string BLUE = "Alexa.Automotive.Value.Blue";
                                                                149 static const std::string GREEN = "Alexa.Automotive.Value.Green";
                                                                150 static const std::string INDIGO = "Alexa.Automotive.Value.Indigo";
                                                                151 static const std::string ORANGE = "Alexa.Automotive.Value.Orange";
                                                                152 static const std::string RED = "Alexa.Automotive.Value.Red";
                                                                153 static const std::string VIOLET = "Alexa.Automotive.Value.Violet";
                                                                154 static const std::string WHITE = "Alexa.Automotive.Value.White";
                                                                155 static const std::string YELLOW = "Alexa.Automotive.Value.Yellow";
                                                                156 } // namespace color
                                                                157 
                                                                158 namespace value {
                                                                159 static const std::string ALERTS_PAGE = "Alexa.Automotive.Value.AlertsPage";
                                                                160 static const std::string BLUETOOTH_PAGE = "Alexa.Automotive.Value.BluetoothPage";
                                                                161 static const std::string CLOSED = "Alexa.Automotive.Value.Closed";
                                                                162 static const std::string COMFORT = "Alexa.Automotive.Value.Comfort";
                                                                163 static const std::string CONTACTS_PAGE = "Alexa.Automotive.Value.ContactsPage";
                                                                164 static const std::string CONTROLS_PAGE = "Alexa.Automotive.Value.ControlsPage";
                                                                165 static const std::string DRIVER_VIEW = "Alexa.Automotive.Value.DriverView";
                                                                166 static const std::string DYNAMIC_COORDINATOR_PAGE = "Alexa.Automotive.Value.DynamicCoordinatorPage";
                                                                167 static const std::string FOUR_WD_AUTO = "Alexa.Automotive.Value.4WDAuto";
                                                                168 static const std::string FOUR_WD_HIGH = "Alexa.Automotive.Value.4WDHigh";
                                                                169 static const std::string FOUR_WD_LOW = "Alexa.Automotive.Value.4WDLow";
                                                                170 static const std::string FRONT_VIEW = "Alexa.Automotive.Value.FrontView";
                                                                171 static const std::string FULL = "Alexa.Automotive.Value.Full";
                                                                172 static const std::string GPS_PAGE = "Alexa.Automotive.Value.GPSPage";
                                                                173 static const std::string HALF = "Alexa.Automotive.Value.Half";
                                                                174 static const std::string HIGH = "Alexa.Automotive.Value.High";
                                                                175 static const std::string HOME_PAGE = "Alexa.Automotive.Value.HomePage";
                                                                176 static const std::string INFORMATION_PAGE = "Alexa.Automotive.Value.InformationPage";
                                                                177 static const std::string INSIDE_AIR = "Alexa.Automotive.Value.InsideAir";
                                                                178 static const std::string INTERMITTENT = "Alexa.Automotive.Value.Intermittent";
                                                                179 static const std::string LOW = "Alexa.Automotive.Value.Low";
                                                                180 static const std::string MAXIMUM = "Alexa.Automotive.Value.Maximum";
                                                                181 static const std::string MEDIUM = "Alexa.Automotive.Value.Medium";
                                                                182 static const std::string MINIMUM = "Alexa.Automotive.Value.Minimum";
                                                                183 static const std::string MULTIMEDIA_PAGE = "Alexa.Automotive.Value.MultimediaPage";
                                                                184 static const std::string MUSIC_PAGE = "Alexa.Automotive.Value.MusicPage";
                                                                185 static const std::string NAVIGATION_PAGE = "Alexa.Automotive.Value.NavigationPage";
                                                                186 static const std::string NORMAL = "Alexa.Automotive.Value.Normal";
                                                                187 static const std::string NOTIFICATIONS_PAGE = "Alexa.Automotive.Value.NotificationsPage";
                                                                188 static const std::string OPEN = "Alexa.Automotive.Value.Open";
                                                                189 static const std::string OPTIMAL = "Alexa.Automotive.Value.Optimal";
                                                                190 static const std::string OUTSIDE_AIR = "Alexa.Automotive.Value.OutsideAir";
                                                                191 static const std::string PASSENGER_VIEW = "Alexa.Automotive.Value.PassengerView";
                                                                192 static const std::string PERFORMANCE_PAGE = "Alexa.Automotive.Value.PerformancePage";
                                                                193 static const std::string POSITION_ONE = "Alexa.Automotive.Value.PositionOne";
                                                                194 static const std::string POSITION_THREE = "Alexa.Automotive.Value.PositionThree";
                                                                195 static const std::string POSITION_TWO = "Alexa.Automotive.Value.PositionTwo";
                                                                196 static const std::string RADIO_PAGE = "Alexa.Automotive.Value.RadioPage";
                                                                197 static const std::string REAR_VIEW = "Alexa.Automotive.Value.RearView";
                                                                198 static const std::string SATELLITE_RADIO_PAGE = "Alexa.Automotive.Value.SatelliteRadioPage";
                                                                199 static const std::string SERVICE_PAGE = "Alexa.Automotive.Value.ServicePage";
                                                                200 static const std::string SETTINGS_PAGE = "Alexa.Automotive.Value.SettingsPage";
                                                                201 static const std::string SPORT = "Alexa.Automotive.Value.Sport";
                                                                202 static const std::string SPORT_PLUS = "Alexa.Automotive.Value.SportPlus";
                                                                203 static const std::string TELEPHONE_PAGE = "Alexa.Automotive.Value.TelephonePage";
                                                                204 static const std::string VEHICLE_STATUS_PAGE = "Alexa.Automotive.Value.VehicleStatusPage";
                                                                205 } // namespace value
                                                                206 
                                                                207 } // namespace alexa
                                                                208 } // namespace assets
                                                                209 } // namespace carControl
                                                                210 } // namespace aace
                                                                211 
                                                                212 #endif // AACE_CAR_CONTROL_CAR_CONTROL_ASSETS_H
                                                                Definition: AddressBook.h:26

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_car_control_configuration_8h_source.html b/docs/cpp/_car_control_configuration_8h_source.html index dedf12bca..bc45714ff 100644 --- a/docs/cpp/_car_control_configuration_8h_source.html +++ b/docs/cpp/_car_control_configuration_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,15 +68,15 @@
                                                                CarControlConfiguration.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_CAR_CONTROL_CAR_CONTROL_CONFIGURATION_H
                                                                17 #define AACE_CAR_CONTROL_CAR_CONTROL_CONFIGURATION_H
                                                                18 
                                                                21 #include <string>
                                                                22 #include <vector>
                                                                23 #include "AACE/CarControl/CarControl.h"
                                                                24 #include "AACE/Core/EngineConfiguration.h"
                                                                25 
                                                                26 namespace aace {
                                                                27 namespace carControl {
                                                                28 namespace config {
                                                                29 
                                                                40 namespace zone {
                                                                41 static const std::string ALL = "zone.all";
                                                                42 static const std::string DRIVER = "zone.driver";
                                                                43 static const std::string DRIVER_ROW = "zone.driver.row";
                                                                44 static const std::string FIRST_ROW = "zone.first.row";
                                                                45 static const std::string FOURTH_ROW = "zone.fourth.row";
                                                                46 static const std::string FRONT = "zone.front";
                                                                47 static const std::string PASSENGER = "zone.passenger";
                                                                48 static const std::string PASSENGER_ROW = "zone.passenger.row";
                                                                49 static const std::string REAR = "zone.rear";
                                                                50 static const std::string REAR_DRIVER = "zone.rear.driver";
                                                                51 static const std::string REAR_PASSENGER = "zone.rear.passenger";
                                                                52 static const std::string SECOND_ROW = "zone.second.row";
                                                                53 static const std::string THIRD_ROW = "zone.third.row";
                                                                54 } // namespace zone
                                                                55 
                                                                65 namespace action {
                                                                67 static const std::string CLOSE = "Alexa.Actions.Close";
                                                                69 static const std::string LOWER = "Alexa.Actions.Lower";
                                                                71 static const std::string OPEN = "Alexa.Actions.Open";
                                                                73 static const std::string RAISE = "Alexa.Actions.Raise";
                                                                74 } // namespace action
                                                                75 
                                                                253 public:
                                                                257  static std::shared_ptr<CarControlConfiguration> create();
                                                                258 
                                                                272  virtual CarControlConfiguration& createEndpoint(const std::string& endpointId) = 0;
                                                                273 
                                                                296  virtual CarControlConfiguration& createControl(
                                                                297  const std::string& controlId,
                                                                298  const std::string& zoneId = zone::ALL) = 0;
                                                                299 
                                                                314  virtual CarControlConfiguration& addAssetId(const std::string& assetId) = 0;
                                                                315 
                                                                325  virtual CarControlConfiguration& addPowerController(bool retrievable) = 0;
                                                                326 
                                                                339  virtual CarControlConfiguration& addToggleController(const std::string& instanceId, bool retrievable) = 0;
                                                                340 
                                                                353  virtual CarControlConfiguration& addActionTurnOn(const std::vector<std::string>& actions) = 0;
                                                                354 
                                                                367  virtual CarControlConfiguration& addActionTurnOff(const std::vector<std::string>& actions) = 0;
                                                                368 
                                                                385  virtual CarControlConfiguration& addRangeController(
                                                                386  const std::string& instanceId,
                                                                387  bool retrievable,
                                                                388  double minimum,
                                                                389  double maximum,
                                                                390  double precision,
                                                                391  const std::string& unit = "") = 0;
                                                                392 
                                                                400  virtual CarControlConfiguration& addPreset(double value) = 0;
                                                                401 
                                                                416  virtual CarControlConfiguration& addActionSetRange(const std::vector<std::string>& actions, double value) = 0;
                                                                417 
                                                                432  virtual CarControlConfiguration& addActionAdjustRange(const std::vector<std::string>& actions, double delta) = 0;
                                                                433 
                                                                447  virtual CarControlConfiguration& addModeController(
                                                                448  const std::string& instanceId,
                                                                449  bool retrievable,
                                                                450  bool ordered) = 0;
                                                                451 
                                                                460  virtual CarControlConfiguration& addValue(const std::string& value) = 0;
                                                                461 
                                                                476  virtual CarControlConfiguration& addActionSetMode(
                                                                477  const std::vector<std::string>& actions,
                                                                478  const std::string& value) = 0;
                                                                479 
                                                                496  virtual CarControlConfiguration& addActionAdjustMode(const std::vector<std::string>& actions, int delta) = 0;
                                                                497 
                                                                505  virtual CarControlConfiguration& createZone(const std::string& zoneId) = 0;
                                                                506 
                                                                518  virtual CarControlConfiguration& addMembers(const std::vector<std::string>& endpointIds) = 0;
                                                                519 
                                                                529  virtual CarControlConfiguration& setDefaultZone(const std::string& zoneId) = 0;
                                                                530 
                                                                541  virtual CarControlConfiguration& addDefaultAssetsPath(const std::string& path) = 0;
                                                                542 
                                                                550  virtual CarControlConfiguration& addCustomAssetsPath(const std::string& path) = 0;
                                                                551 };
                                                                552 
                                                                553 } // namespace config
                                                                554 } // namespace carControl
                                                                555 } // namespace aace
                                                                556 
                                                                557 #endif // AACE_CAR_CONTROL_CAR_CONTROL_CONFIGURATION_H
                                                                Definition: AddressBook.h:26
                                                                +
                                                                1 /*
                                                                2  * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_CAR_CONTROL_CAR_CONTROL_CONFIGURATION_H
                                                                17 #define AACE_CAR_CONTROL_CAR_CONTROL_CONFIGURATION_H
                                                                18 
                                                                21 #include <string>
                                                                22 #include <vector>
                                                                23 #include "AACE/CarControl/CarControl.h"
                                                                24 #include "AACE/Core/EngineConfiguration.h"
                                                                25 
                                                                26 namespace aace {
                                                                27 namespace carControl {
                                                                28 namespace config {
                                                                29 
                                                                39 namespace action {
                                                                41 static const std::string CLOSE = "Alexa.Actions.Close";
                                                                43 static const std::string LOWER = "Alexa.Actions.Lower";
                                                                45 static const std::string OPEN = "Alexa.Actions.Open";
                                                                47 static const std::string RAISE = "Alexa.Actions.Raise";
                                                                48 } // namespace action
                                                                49 
                                                                227 public:
                                                                231  static std::shared_ptr<CarControlConfiguration> create();
                                                                232 
                                                                246  virtual CarControlConfiguration& createEndpoint(const std::string& endpointId) = 0;
                                                                247 
                                                                262  virtual CarControlConfiguration& addAssetId(const std::string& assetId) = 0;
                                                                263 
                                                                273  virtual CarControlConfiguration& addPowerController(bool retrievable) = 0;
                                                                274 
                                                                287  virtual CarControlConfiguration& addToggleController(const std::string& instanceId, bool retrievable) = 0;
                                                                288 
                                                                301  virtual CarControlConfiguration& addActionTurnOn(const std::vector<std::string>& actions) = 0;
                                                                302 
                                                                315  virtual CarControlConfiguration& addActionTurnOff(const std::vector<std::string>& actions) = 0;
                                                                316 
                                                                333  virtual CarControlConfiguration& addRangeController(
                                                                334  const std::string& instanceId,
                                                                335  bool retrievable,
                                                                336  double minimum,
                                                                337  double maximum,
                                                                338  double precision,
                                                                339  const std::string& unit = "") = 0;
                                                                340 
                                                                348  virtual CarControlConfiguration& addPreset(double value) = 0;
                                                                349 
                                                                364  virtual CarControlConfiguration& addActionSetRange(const std::vector<std::string>& actions, double value) = 0;
                                                                365 
                                                                380  virtual CarControlConfiguration& addActionAdjustRange(const std::vector<std::string>& actions, double delta) = 0;
                                                                381 
                                                                395  virtual CarControlConfiguration& addModeController(
                                                                396  const std::string& instanceId,
                                                                397  bool retrievable,
                                                                398  bool ordered) = 0;
                                                                399 
                                                                408  virtual CarControlConfiguration& addValue(const std::string& value) = 0;
                                                                409 
                                                                424  virtual CarControlConfiguration& addActionSetMode(
                                                                425  const std::vector<std::string>& actions,
                                                                426  const std::string& value) = 0;
                                                                427 
                                                                444  virtual CarControlConfiguration& addActionAdjustMode(const std::vector<std::string>& actions, int delta) = 0;
                                                                445 
                                                                453  virtual CarControlConfiguration& createZone(const std::string& zoneId) = 0;
                                                                454 
                                                                464  virtual CarControlConfiguration& addMembers(const std::vector<std::string>& endpointIds) = 0;
                                                                465 
                                                                475  virtual CarControlConfiguration& setDefaultZone(const std::string& zoneId) = 0;
                                                                476 
                                                                487  virtual CarControlConfiguration& addDefaultAssetsPath(const std::string& path) = 0;
                                                                488 
                                                                496  virtual CarControlConfiguration& addCustomAssetsPath(const std::string& path) = 0;
                                                                497 };
                                                                498 
                                                                499 } // namespace config
                                                                500 } // namespace carControl
                                                                501 } // namespace aace
                                                                502 
                                                                503 #endif // AACE_CAR_CONTROL_CAR_CONTROL_CONFIGURATION_H
                                                                Definition: AddressBook.h:26
                                                                Definition: EngineConfiguration.h:35
                                                                -
                                                                Definition: CarControlConfiguration.h:252
                                                                +
                                                                Definition: CarControlConfiguration.h:226

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_contact_uploader_8h_source.html b/docs/cpp/_contact_uploader_8h_source.html deleted file mode 100644 index e8dfe0164..000000000 --- a/docs/cpp/_contact_uploader_8h_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -Alexa Auto SDK: ContactUploader.h Source File - - - - - - - - - -

                                                                -
                                                                - - - - - - - -
                                                                -
                                                                Alexa Auto SDK -  2.3.0 -
                                                                -
                                                                -
                                                                - - - - - - - - -
                                                                -
                                                                - - -
                                                                - -
                                                                - - -
                                                                -
                                                                -
                                                                -
                                                                ContactUploader.h
                                                                -
                                                                -
                                                                -
                                                                1 /*
                                                                2  * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_CONTACTUPLOADER_CONTACTUPLOADER_H
                                                                17 #define AACE_CONTACTUPLOADER_CONTACTUPLOADER_H
                                                                18 
                                                                19 #include "AACE/Core/PlatformInterface.h"
                                                                20 #include "ContactUploaderEngineInterface.h"
                                                                21 
                                                                24 namespace aace {
                                                                25 namespace contactUploader {
                                                                26 
                                                                36 protected:
                                                                37  ContactUploader() = default;
                                                                38 
                                                                39 public:
                                                                40  virtual ~ContactUploader();
                                                                41 
                                                                46  using ContactUploaderStatus = aace::contactUploader::ContactUploaderEngineInterface::ContactUploaderStatus;
                                                                47 
                                                                57  bool addContactsBegin();
                                                                58 
                                                                68  bool addContactsEnd();
                                                                69 
                                                                80  bool addContactsCancel();
                                                                81 
                                                                117  bool addContact(const std::string& contact);
                                                                118 
                                                                129  bool removeUploadedContacts();
                                                                130 
                                                                138  virtual void contactsUploaderStatusChanged(ContactUploaderStatus status, const std::string& info) = 0;
                                                                139 
                                                                146  void setEngineInterface(std::shared_ptr<ContactUploaderEngineInterface> contactUploaderEngineInterface);
                                                                147 
                                                                148 private:
                                                                149  std::shared_ptr<ContactUploaderEngineInterface> m_contactUploaderEngineInterface;
                                                                150 };
                                                                151 
                                                                152 } // namespace contactUploader
                                                                153 } // namespace aace
                                                                154 
                                                                155 #endif // AACE_CONTACTUPLOADER_CONTACTUPLOADER_H
                                                                Definition: PlatformInterface.h:29
                                                                -
                                                                Definition: ContactUploader.h:35
                                                                -
                                                                Definition: AddressBook.h:26
                                                                -
                                                                bool removeUploadedContacts()
                                                                Definition: ContactUploader.cpp:49
                                                                -
                                                                bool addContactsBegin()
                                                                Definition: ContactUploader.cpp:21
                                                                -
                                                                bool addContactsEnd()
                                                                Definition: ContactUploader.cpp:28
                                                                -
                                                                bool addContact(const std::string &contact)
                                                                Definition: ContactUploader.cpp:42
                                                                -
                                                                bool addContactsCancel()
                                                                Definition: ContactUploader.cpp:35
                                                                -
                                                                virtual void contactsUploaderStatusChanged(ContactUploaderStatus status, const std::string &info)=0
                                                                -
                                                                - - -
                                                                -

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

                                                                - - diff --git a/docs/cpp/_contact_uploader_engine_interface_8h_source.html b/docs/cpp/_contact_uploader_engine_interface_8h_source.html deleted file mode 100644 index 32cdecee1..000000000 --- a/docs/cpp/_contact_uploader_engine_interface_8h_source.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -Alexa Auto SDK: ContactUploaderEngineInterface.h Source File - - - - - - - - - -
                                                                -
                                                                - - - - - - - -
                                                                -
                                                                Alexa Auto SDK -  2.3.0 -
                                                                -
                                                                -
                                                                - - - - - - - - -
                                                                -
                                                                - - -
                                                                - -
                                                                - - -
                                                                -
                                                                -
                                                                -
                                                                ContactUploaderEngineInterface.h
                                                                -
                                                                -
                                                                -
                                                                1 /*
                                                                2  * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_CONTACTUPLOADER_CONTACTUPLOADER_ENGINE_INTERFACE_H
                                                                17 #define AACE_CONTACTUPLOADER_CONTACTUPLOADER_ENGINE_INTERFACE_H
                                                                18 
                                                                19 #include <iostream>
                                                                20 
                                                                21 #include "AACE/Core/PlatformInterface.h"
                                                                22 #include "ContactUploaderEngineInterface.h"
                                                                23 
                                                                26 namespace aace {
                                                                27 namespace contactUploader {
                                                                28 
                                                                29 class ContactUploaderEngineInterface {
                                                                30 public:
                                                                34  enum class ContactUploaderStatus {
                                                                38  UPLOAD_CONTACTS_STARTED,
                                                                39 
                                                                43  UPLOAD_CONTACTS_UPLOADING,
                                                                44 
                                                                64  UPLOAD_CONTACTS_COMPLETED,
                                                                65 
                                                                69  UPLOAD_CONTACTS_CANCELED,
                                                                70 
                                                                74  UPLOAD_CONTACTS_ERROR,
                                                                75 
                                                                79  REMOVE_CONTACTS_STARTED,
                                                                80 
                                                                84  REMOVE_CONTACTS_COMPLETED,
                                                                85 
                                                                89  REMOVE_CONTACTS_ERROR,
                                                                90 
                                                                94  UNKNOWN_ERROR
                                                                95 
                                                                96  };
                                                                97 
                                                                98  virtual bool onAddContactsBegin() = 0;
                                                                99  virtual bool onAddContactsEnd() = 0;
                                                                100  virtual bool onAddContactsCancel() = 0;
                                                                101  virtual bool onAddContact(const std::string& contact) = 0;
                                                                102  virtual bool onRemoveUploadedContacts() = 0;
                                                                103 };
                                                                104 
                                                                105 inline std::ostream& operator<<(
                                                                106  std::ostream& stream,
                                                                107  const ContactUploaderEngineInterface::ContactUploaderStatus& status) {
                                                                108  switch (status) {
                                                                109  case ContactUploaderEngineInterface::ContactUploaderStatus::UPLOAD_CONTACTS_STARTED:
                                                                110  stream << "UPLOAD_CONTACTS_STARTED";
                                                                111  break;
                                                                112  case ContactUploaderEngineInterface::ContactUploaderStatus::UPLOAD_CONTACTS_UPLOADING:
                                                                113  stream << "UPLOAD_CONTACTS_UPLOADING";
                                                                114  break;
                                                                115  case ContactUploaderEngineInterface::ContactUploaderStatus::UPLOAD_CONTACTS_COMPLETED:
                                                                116  stream << "UPLOAD_CONTACTS_COMPLETED";
                                                                117  break;
                                                                118  case ContactUploaderEngineInterface::ContactUploaderStatus::UPLOAD_CONTACTS_CANCELED:
                                                                119  stream << "UPLOAD_CONTACTS_CANCELED";
                                                                120  break;
                                                                121  case ContactUploaderEngineInterface::ContactUploaderStatus::UPLOAD_CONTACTS_ERROR:
                                                                122  stream << "UPLOAD_CONTACTS_ERROR";
                                                                123  break;
                                                                124  case ContactUploaderEngineInterface::ContactUploaderStatus::REMOVE_CONTACTS_STARTED:
                                                                125  stream << "REMOVE_CONTACTS_STARTED";
                                                                126  break;
                                                                127  case ContactUploaderEngineInterface::ContactUploaderStatus::REMOVE_CONTACTS_COMPLETED:
                                                                128  stream << "REMOVE_CONTACTS_COMPLETED";
                                                                129  break;
                                                                130  case ContactUploaderEngineInterface::ContactUploaderStatus::REMOVE_CONTACTS_ERROR:
                                                                131  stream << "REMOVE_CONTACTS_ERROR";
                                                                132  break;
                                                                133  case ContactUploaderEngineInterface::ContactUploaderStatus::UNKNOWN_ERROR:
                                                                134  stream << "UNKNOWN_ERROR";
                                                                135  break;
                                                                136  }
                                                                137  return stream;
                                                                138 }
                                                                139 
                                                                140 } // namespace contactUploader
                                                                141 } // namespace aace
                                                                142 
                                                                143 #endif // AACE_CONTACTUPLOADER_CONTACTUPLOADER_ENGINE_INTERFACE_H
                                                                Definition: AddressBook.h:26
                                                                -
                                                                - - -
                                                                -

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

                                                                - - diff --git a/docs/cpp/_core_properties_8h_source.html b/docs/cpp/_core_properties_8h_source.html index f4125418a..53731cb77 100644 --- a/docs/cpp/_core_properties_8h_source.html +++ b/docs/cpp/_core_properties_8h_source.html @@ -23,7 +23,7 @@ Logo
                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_do_not_disturb_8h_source.html b/docs/cpp/_do_not_disturb_8h_source.html index 4dd94541c..0ab1bcb14 100644 --- a/docs/cpp/_do_not_disturb_8h_source.html +++ b/docs/cpp/_do_not_disturb_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -78,7 +78,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_engine_8h_source.html b/docs/cpp/_engine_8h_source.html index 5eb36741a..3c39de7fc 100644 --- a/docs/cpp/_engine_8h_source.html +++ b/docs/cpp/_engine_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,21 +68,19 @@
                                                                Engine.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_CORE_ENGINE_H
                                                                17 #define AACE_CORE_ENGINE_H
                                                                18 
                                                                19 #include <vector>
                                                                20 #include <memory>
                                                                21 
                                                                22 #include "PlatformInterface.h"
                                                                23 #include "EngineConfiguration.h"
                                                                24 
                                                                27 namespace aace {
                                                                28 namespace core {
                                                                29 
                                                                36 class Engine {
                                                                37 public:
                                                                38  static std::shared_ptr<Engine> create();
                                                                39 
                                                                40  virtual ~Engine() = default;
                                                                41 
                                                                49  virtual bool configure(
                                                                50  std::initializer_list<std::shared_ptr<aace::core::config::EngineConfiguration>> configurationList) = 0;
                                                                51 
                                                                59  virtual bool configure(std::vector<std::shared_ptr<aace::core::config::EngineConfiguration>> configurationList) = 0;
                                                                60 
                                                                67  virtual bool configure(std::shared_ptr<aace::core::config::EngineConfiguration> configuration) = 0;
                                                                68 
                                                                76  virtual bool start() = 0;
                                                                77 
                                                                85  virtual bool stop() = 0;
                                                                86 
                                                                92  virtual bool shutdown() = 0;
                                                                93 
                                                                108  virtual bool setProperty(const std::string& key, const std::string& value) = 0;
                                                                109 
                                                                124  virtual std::string getProperty(const std::string& key) = 0;
                                                                125 
                                                                136  virtual bool registerPlatformInterface(std::shared_ptr<aace::core::PlatformInterface> platformInterface) = 0;
                                                                137 
                                                                149  virtual bool registerPlatformInterface(
                                                                150  std::initializer_list<std::shared_ptr<aace::core::PlatformInterface>> platformInterfaceList) = 0;
                                                                151 };
                                                                152 
                                                                153 } // namespace core
                                                                154 } // namespace aace
                                                                155 
                                                                156 #endif // AACE_CORE_ENGINE_H
                                                                virtual std::string getProperty(const std::string &key)=0
                                                                -
                                                                virtual bool stop()=0
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_CORE_ENGINE_H
                                                                17 #define AACE_CORE_ENGINE_H
                                                                18 
                                                                19 #include <vector>
                                                                20 #include <memory>
                                                                21 
                                                                22 #include "PlatformInterface.h"
                                                                23 #include "EngineConfiguration.h"
                                                                24 
                                                                27 namespace aace {
                                                                28 namespace core {
                                                                29 
                                                                36 class Engine {
                                                                37 public:
                                                                38  static std::shared_ptr<Engine> create();
                                                                39 
                                                                40  virtual ~Engine() = default;
                                                                41 
                                                                49  virtual bool configure(
                                                                50  std::initializer_list<std::shared_ptr<aace::core::config::EngineConfiguration>> configurationList) = 0;
                                                                51 
                                                                59  virtual bool configure(std::vector<std::shared_ptr<aace::core::config::EngineConfiguration>> configurationList) = 0;
                                                                60 
                                                                67  virtual bool configure(std::shared_ptr<aace::core::config::EngineConfiguration> configuration) = 0;
                                                                68 
                                                                76  virtual bool start() = 0;
                                                                77 
                                                                85  virtual bool stop() = 0;
                                                                86 
                                                                92  virtual bool shutdown() = 0;
                                                                93 
                                                                104  virtual bool registerPlatformInterface(std::shared_ptr<aace::core::PlatformInterface> platformInterface) = 0;
                                                                105 
                                                                117  virtual bool registerPlatformInterface(
                                                                118  std::initializer_list<std::shared_ptr<aace::core::PlatformInterface>> platformInterfaceList) = 0;
                                                                119 };
                                                                120 
                                                                121 } // namespace core
                                                                122 } // namespace aace
                                                                123 
                                                                124 #endif // AACE_CORE_ENGINE_H
                                                                virtual bool stop()=0
                                                                Definition: Engine.h:36
                                                                Definition: AddressBook.h:26
                                                                virtual bool configure(std::initializer_list< std::shared_ptr< aace::core::config::EngineConfiguration >> configurationList)=0
                                                                virtual bool registerPlatformInterface(std::shared_ptr< aace::core::PlatformInterface > platformInterface)=0
                                                                virtual bool shutdown()=0
                                                                -
                                                                virtual bool setProperty(const std::string &key, const std::string &value)=0
                                                                virtual bool start()=0

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_engine_configuration_8h_source.html b/docs/cpp/_engine_configuration_8h_source.html index cc2b14a22..2e47c306b 100644 --- a/docs/cpp/_engine_configuration_8h_source.html +++ b/docs/cpp/_engine_configuration_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -78,7 +78,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_equalizer_controller_8h_source.html b/docs/cpp/_equalizer_controller_8h_source.html index ef35b0f17..f967888b6 100644 --- a/docs/cpp/_equalizer_controller_8h_source.html +++ b/docs/cpp/_equalizer_controller_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,17 +74,17 @@
                                                                Definition: AddressBook.h:26
                                                                void localResetBands(const std::vector< EqualizerBand > &bands={})
                                                                Definition: EqualizerController.cpp:35
                                                                virtual void setBandLevels(const std::vector< EqualizerBandLevel > &bandLevels)=0
                                                                -
                                                                std::pair< EqualizerBand, int > EqualizerBandLevel
                                                                Definition: AlexaEngineInterfaces.h:462
                                                                +
                                                                std::pair< EqualizerBand, int > EqualizerBandLevel
                                                                Definition: AlexaEngineInterfaces.h:460
                                                                Definition: EqualizerController.h:43
                                                                aace::alexa::EqualizerControllerEngineInterface::EqualizerBandLevel EqualizerBandLevel
                                                                Definition: EqualizerController.h:63
                                                                virtual std::vector< EqualizerBandLevel > getBandLevels()=0
                                                                -
                                                                EqualizerBand
                                                                Definition: AlexaEngineInterfaces.h:449
                                                                +
                                                                EqualizerBand
                                                                Definition: AlexaEngineInterfaces.h:447

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_external_media_adapter_8h_source.html b/docs/cpp/_external_media_adapter_8h_source.html index 98ad3014d..5a28fd315 100644 --- a/docs/cpp/_external_media_adapter_8h_source.html +++ b/docs/cpp/_external_media_adapter_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,60 +68,59 @@
                                                                ExternalMediaAdapter.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H
                                                                17 #define AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H
                                                                18 
                                                                19 #include <chrono>
                                                                20 #include <string>
                                                                21 
                                                                22 #include "AACE/Core/PlatformInterface.h"
                                                                23 #include "AACE/Audio/AudioOutput.h"
                                                                24 
                                                                25 #include "AlexaEngineInterfaces.h"
                                                                26 
                                                                29 namespace aace {
                                                                30 namespace alexa {
                                                                31 
                                                                32 class ExternalMediaAdapter : public aace::core::PlatformInterface {
                                                                33 public:
                                                                34  using DiscoveredPlayerInfo = ExternalMediaAdapterEngineInterface::DiscoveredPlayerInfo;
                                                                35  using MutedState = aace::audio::AudioOutput::MutedState;
                                                                36 
                                                                40  enum class PlayControlType {
                                                                44  PAUSE,
                                                                48  RESUME,
                                                                52  STOP,
                                                                56  NEXT,
                                                                60  PREVIOUS,
                                                                64  START_OVER,
                                                                68  FAST_FORWARD,
                                                                72  REWIND,
                                                                76  ENABLE_REPEAT_ONE,
                                                                80  ENABLE_REPEAT,
                                                                84  DISABLE_REPEAT,
                                                                88  ENABLE_SHUFFLE,
                                                                92  DISABLE_SHUFFLE,
                                                                96  FAVORITE,
                                                                100  UNFAVORITE,
                                                                105  PAUSE_RESUME_TOGGLE
                                                                106  };
                                                                107 
                                                                111  enum class SupportedPlaybackOperation {
                                                                115  PLAY,
                                                                119  PAUSE,
                                                                123  STOP,
                                                                127  NEXT,
                                                                131  PREVIOUS,
                                                                135  START_OVER,
                                                                139  FAST_FORWARD,
                                                                143  REWIND,
                                                                147  ENABLE_REPEAT,
                                                                151  ENABLE_REPEAT_ONE,
                                                                155  DISABLE_REPEAT,
                                                                159  ENABLE_SHUFFLE,
                                                                163  DISABLE_SHUFFLE,
                                                                167  FAVORITE,
                                                                171  UNFAVORITE,
                                                                175  SEEK,
                                                                179  ADJUST_SEEK
                                                                180  };
                                                                181 
                                                                185  enum class Favorites {
                                                                189  FAVORITED,
                                                                193  UNFAVORITED,
                                                                197  NOT_RATED
                                                                198  };
                                                                199 
                                                                203  enum class MediaType {
                                                                207  TRACK,
                                                                211  PODCAST,
                                                                215  STATION,
                                                                219  AD,
                                                                223  SAMPLE,
                                                                227  OTHER
                                                                228  };
                                                                229 
                                                                233  enum class Navigation {
                                                                237  DEFAULT,
                                                                241  NONE,
                                                                245  FOREGROUND
                                                                246  };
                                                                247 
                                                                251  class SessionState {
                                                                252  public:
                                                                256  SessionState() = default;
                                                                257 
                                                                259  std::string endpointId;
                                                                260 
                                                                262  bool loggedIn;
                                                                263 
                                                                265  std::string userName;
                                                                266 
                                                                268  bool isGuest;
                                                                269 
                                                                271  bool launched;
                                                                272 
                                                                277  bool active;
                                                                278 
                                                                283  std::string accessToken;
                                                                284 
                                                                286  std::chrono::milliseconds tokenRefreshInterval;
                                                                287 
                                                                289  std::string playerCookie;
                                                                290 
                                                                292  std::string spiVersion;
                                                                293  };
                                                                294 
                                                                299  public:
                                                                301  PlaybackState() = default;
                                                                302 
                                                                304  std::string state;
                                                                305 
                                                                307  std::vector<SupportedPlaybackOperation> supportedOperations;
                                                                308 
                                                                310  std::chrono::milliseconds trackOffset;
                                                                311 
                                                                314 
                                                                317 
                                                                319  Favorites favorites;
                                                                320 
                                                                322  std::string type;
                                                                323 
                                                                325  std::string playbackSource;
                                                                326 
                                                                329  std::string playbackSourceId;
                                                                330 
                                                                332  std::string trackName;
                                                                333 
                                                                335  std::string trackId;
                                                                336 
                                                                339  std::string trackNumber;
                                                                340 
                                                                342  std::string artistName;
                                                                343 
                                                                346  std::string artistId;
                                                                347 
                                                                349  std::string albumName;
                                                                350 
                                                                353  std::string albumId;
                                                                354 
                                                                356  std::string tinyURL;
                                                                357 
                                                                359  std::string smallURL;
                                                                360 
                                                                362  std::string mediumURL;
                                                                363 
                                                                365  std::string largeURL;
                                                                366 
                                                                369  std::string coverId;
                                                                370 
                                                                373  std::string mediaProvider;
                                                                374 
                                                                376  MediaType mediaType;
                                                                377 
                                                                379  std::chrono::milliseconds duration;
                                                                380  };
                                                                381 
                                                                386  public:
                                                                388  ExternalMediaAdapterState() = default;
                                                                389 
                                                                392 
                                                                395  };
                                                                396 
                                                                401  public:
                                                                403  std::string localPlayerId;
                                                                407  std::string defaultSkillToken;
                                                                408  // The playerId that identifies this player
                                                                409  std::string playerId;
                                                                410  };
                                                                411 
                                                                412 protected:
                                                                413  ExternalMediaAdapter() = default;
                                                                414 
                                                                415 public:
                                                                416  virtual ~ExternalMediaAdapter();
                                                                417 
                                                                434  virtual bool login(
                                                                435  const std::string& localPlayerId,
                                                                436  const std::string& accessToken,
                                                                437  const std::string& userName,
                                                                438  bool forceLogin,
                                                                439  std::chrono::milliseconds tokenRefreshInterval) = 0;
                                                                440 
                                                                449  virtual bool logout(const std::string& localPlayerId) = 0;
                                                                450 
                                                                469  virtual bool play(
                                                                470  const std::string& localPlayerId,
                                                                471  const std::string& playContextToken,
                                                                472  int64_t index,
                                                                473  std::chrono::milliseconds offset,
                                                                474  bool preload,
                                                                475  Navigation navigation) = 0;
                                                                476 
                                                                480  virtual bool play(
                                                                481  const std::string& localPlayerId,
                                                                482  const std::string& playContextToken,
                                                                483  int64_t index,
                                                                484  std::chrono::milliseconds offset,
                                                                485  bool preload,
                                                                486  Navigation navigation,
                                                                487  const std::string& playbackSessionId,
                                                                488  const std::string& skillToken);
                                                                489 
                                                                502  virtual bool playControl(const std::string& localPlayerId, PlayControlType controlType) = 0;
                                                                503 
                                                                514  virtual bool seek(const std::string& localPlayerId, std::chrono::milliseconds offset) = 0;
                                                                515 
                                                                526  virtual bool adjustSeek(const std::string& localPlayerId, std::chrono::milliseconds deltaOffset) = 0;
                                                                527 
                                                                542  virtual bool authorize(const std::vector<AuthorizedPlayerInfo>& authorizedPlayers) = 0;
                                                                543 
                                                                549  virtual std::chrono::milliseconds getOffset(const std::string& localPlayerId);
                                                                550 
                                                                560  virtual bool getState(const std::string& localPlayerId, ExternalMediaAdapterState& state) = 0;
                                                                561 
                                                                571  virtual bool volumeChanged(float volume) = 0;
                                                                572 
                                                                582  virtual bool mutedStateChanged(MutedState state) = 0;
                                                                583 
                                                                584  // ExternalMediaAdapterEngineInterface
                                                                585 
                                                                591  void reportDiscoveredPlayers(const std::vector<DiscoveredPlayerInfo>& discoveredPlayers);
                                                                592 
                                                                598  void requestToken(const std::string& localPlayerId);
                                                                599 
                                                                605  void loginComplete(const std::string& localPlayerId);
                                                                606 
                                                                612  void logoutComplete(const std::string& localPlayerId);
                                                                613 
                                                                621  void playerEvent(const std::string& localPlayerId, const std::string& eventName);
                                                                622 
                                                                636  void playerError(
                                                                637  const std::string& localPlayerId,
                                                                638  const std::string& errorName,
                                                                639  long code,
                                                                640  const std::string& description,
                                                                641  bool fatal);
                                                                642 
                                                                648  void setFocus(const std::string& localPlayerId);
                                                                649 
                                                                650  void removeDiscoveredPlayer(const std::string& localPlayerId);
                                                                651 
                                                                658  void setEngineInterface(
                                                                659  std::shared_ptr<aace::alexa::ExternalMediaAdapterEngineInterface> externalMediaAdapterEngineInterface);
                                                                660 
                                                                661 private:
                                                                662  std::weak_ptr<aace::alexa::ExternalMediaAdapterEngineInterface> m_externalMediaAdapterEngineInterface;
                                                                663 };
                                                                664 
                                                                665 inline std::ostream& operator<<(std::ostream& stream, const ExternalMediaAdapter::PlayControlType& requestType) {
                                                                666  switch (requestType) {
                                                                667  case ExternalMediaAdapter::PlayControlType::RESUME:
                                                                668  stream << "RESUME";
                                                                669  break;
                                                                670  case ExternalMediaAdapter::PlayControlType::PAUSE:
                                                                671  stream << "PAUSE";
                                                                672  break;
                                                                673  case ExternalMediaAdapter::PlayControlType::STOP:
                                                                674  stream << "STOP";
                                                                675  break;
                                                                676  case ExternalMediaAdapter::PlayControlType::NEXT:
                                                                677  stream << "NEXT";
                                                                678  break;
                                                                679  case ExternalMediaAdapter::PlayControlType::PREVIOUS:
                                                                680  stream << "PREVIOUS";
                                                                681  break;
                                                                682  case ExternalMediaAdapter::PlayControlType::START_OVER:
                                                                683  stream << "START_OVER";
                                                                684  break;
                                                                685  case ExternalMediaAdapter::PlayControlType::FAST_FORWARD:
                                                                686  stream << "FAST_FORWARD";
                                                                687  break;
                                                                688  case ExternalMediaAdapter::PlayControlType::REWIND:
                                                                689  stream << "REWIND";
                                                                690  break;
                                                                691  case ExternalMediaAdapter::PlayControlType::ENABLE_REPEAT_ONE:
                                                                692  stream << "ENABLE_REPEAT_ONE";
                                                                693  break;
                                                                694  case ExternalMediaAdapter::PlayControlType::ENABLE_REPEAT:
                                                                695  stream << "ENABLE_REPEAT";
                                                                696  break;
                                                                697  case ExternalMediaAdapter::PlayControlType::DISABLE_REPEAT:
                                                                698  stream << "DISABLE_REPEAT";
                                                                699  break;
                                                                700  case ExternalMediaAdapter::PlayControlType::ENABLE_SHUFFLE:
                                                                701  stream << "ENABLE_SHUFFLE";
                                                                702  break;
                                                                703  case ExternalMediaAdapter::PlayControlType::DISABLE_SHUFFLE:
                                                                704  stream << "DISABLE_SHUFFLE";
                                                                705  break;
                                                                706  case ExternalMediaAdapter::PlayControlType::FAVORITE:
                                                                707  stream << "FAVORITE";
                                                                708  break;
                                                                709  case ExternalMediaAdapter::PlayControlType::UNFAVORITE:
                                                                710  stream << "UNFAVORITE";
                                                                711  break;
                                                                712  // internal
                                                                713  case ExternalMediaAdapter::PlayControlType::PAUSE_RESUME_TOGGLE:
                                                                714  stream << "PAUSE_RESUME_TOGGLE";
                                                                715  break;
                                                                716  }
                                                                717  return stream;
                                                                718 }
                                                                719 
                                                                720 inline std::ostream& operator<<(
                                                                721  std::ostream& stream,
                                                                722  const ExternalMediaAdapter::SupportedPlaybackOperation& supportedPlaybackOperation) {
                                                                723  switch (supportedPlaybackOperation) {
                                                                724  case ExternalMediaAdapter::SupportedPlaybackOperation::PLAY:
                                                                725  stream << "PLAY";
                                                                726  break;
                                                                727  case ExternalMediaAdapter::SupportedPlaybackOperation::PAUSE:
                                                                728  stream << "PAUSE";
                                                                729  break;
                                                                730  case ExternalMediaAdapter::SupportedPlaybackOperation::STOP:
                                                                731  stream << "STOP";
                                                                732  break;
                                                                733  case ExternalMediaAdapter::SupportedPlaybackOperation::NEXT:
                                                                734  stream << "NEXT";
                                                                735  break;
                                                                736  case ExternalMediaAdapter::SupportedPlaybackOperation::PREVIOUS:
                                                                737  stream << "PREVIOUS";
                                                                738  break;
                                                                739  case ExternalMediaAdapter::SupportedPlaybackOperation::START_OVER:
                                                                740  stream << "START_OVER";
                                                                741  break;
                                                                742  case ExternalMediaAdapter::SupportedPlaybackOperation::FAST_FORWARD:
                                                                743  stream << "FAST_FORWARD";
                                                                744  break;
                                                                745  case ExternalMediaAdapter::SupportedPlaybackOperation::REWIND:
                                                                746  stream << "REWIND";
                                                                747  break;
                                                                748  case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_REPEAT:
                                                                749  stream << "ENABLE_REPEAT";
                                                                750  break;
                                                                751  case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_REPEAT_ONE:
                                                                752  stream << "ENABLE_REPEAT_ONE";
                                                                753  break;
                                                                754  case ExternalMediaAdapter::SupportedPlaybackOperation::DISABLE_REPEAT:
                                                                755  stream << "DISABLE_REPEAT";
                                                                756  break;
                                                                757  case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_SHUFFLE:
                                                                758  stream << "ENABLE_SHUFFLE";
                                                                759  break;
                                                                760  case ExternalMediaAdapter::SupportedPlaybackOperation::DISABLE_SHUFFLE:
                                                                761  stream << "DISABLE_SHUFFLE";
                                                                762  break;
                                                                763  case ExternalMediaAdapter::SupportedPlaybackOperation::FAVORITE:
                                                                764  stream << "FAVORITE";
                                                                765  break;
                                                                766  case ExternalMediaAdapter::SupportedPlaybackOperation::UNFAVORITE:
                                                                767  stream << "UNFAVORITE";
                                                                768  break;
                                                                769  case ExternalMediaAdapter::SupportedPlaybackOperation::SEEK:
                                                                770  stream << "SEEK";
                                                                771  break;
                                                                772  case ExternalMediaAdapter::SupportedPlaybackOperation::ADJUST_SEEK:
                                                                773  stream << "ADJUST_SEEK";
                                                                774  break;
                                                                775  }
                                                                776  return stream;
                                                                777 }
                                                                778 
                                                                779 inline std::ostream& operator<<(std::ostream& stream, const ExternalMediaAdapter::Favorites& favorites) {
                                                                780  switch (favorites) {
                                                                781  case ExternalMediaAdapter::Favorites::FAVORITED:
                                                                782  stream << "FAVORITED";
                                                                783  break;
                                                                784  case ExternalMediaAdapter::Favorites::UNFAVORITED:
                                                                785  stream << "UNFAVORITED";
                                                                786  break;
                                                                787  case ExternalMediaAdapter::Favorites::NOT_RATED:
                                                                788  stream << "NOT_RATED";
                                                                789  break;
                                                                790  }
                                                                791  return stream;
                                                                792 }
                                                                793 
                                                                794 inline std::ostream& operator<<(std::ostream& stream, const ExternalMediaAdapter::MediaType& mediaType) {
                                                                795  switch (mediaType) {
                                                                796  case ExternalMediaAdapter::MediaType::TRACK:
                                                                797  stream << "TRACK";
                                                                798  break;
                                                                799  case ExternalMediaAdapter::MediaType::PODCAST:
                                                                800  stream << "PODCAST";
                                                                801  break;
                                                                802  case ExternalMediaAdapter::MediaType::STATION:
                                                                803  stream << "STATION";
                                                                804  break;
                                                                805  case ExternalMediaAdapter::MediaType::AD:
                                                                806  stream << "AD";
                                                                807  break;
                                                                808  case ExternalMediaAdapter::MediaType::SAMPLE:
                                                                809  stream << "SAMPLE";
                                                                810  break;
                                                                811  case ExternalMediaAdapter::MediaType::OTHER:
                                                                812  stream << "OTHER";
                                                                813  break;
                                                                814  }
                                                                815  return stream;
                                                                816 }
                                                                817 
                                                                818 inline std::ostream& operator<<(std::ostream& stream, const ExternalMediaAdapter::Navigation& navigation) {
                                                                819  switch (navigation) {
                                                                820  case ExternalMediaAdapter::Navigation::DEFAULT:
                                                                821  stream << "DEFAULT";
                                                                822  break;
                                                                823  case ExternalMediaAdapter::Navigation::NONE:
                                                                824  stream << "NONE";
                                                                825  break;
                                                                826  case ExternalMediaAdapter::Navigation::FOREGROUND:
                                                                827  stream << "FOREGROUND";
                                                                828  break;
                                                                829  }
                                                                830  return stream;
                                                                831 }
                                                                832 
                                                                833 } // namespace alexa
                                                                834 } // namespace aace
                                                                835 
                                                                836 #endif // AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H
                                                                MutedState
                                                                Definition: AudioOutput.h:69
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H
                                                                17 #define AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H
                                                                18 
                                                                19 #include <chrono>
                                                                20 #include <string>
                                                                21 
                                                                22 #include "AACE/Core/PlatformInterface.h"
                                                                23 #include "AACE/Audio/AudioOutput.h"
                                                                24 
                                                                25 #include "AlexaEngineInterfaces.h"
                                                                26 
                                                                29 namespace aace {
                                                                30 namespace alexa {
                                                                31 
                                                                32 class ExternalMediaAdapter : public aace::core::PlatformInterface {
                                                                33 public:
                                                                34  using DiscoveredPlayerInfo = ExternalMediaAdapterEngineInterface::DiscoveredPlayerInfo;
                                                                35  using MutedState = aace::audio::AudioOutput::MutedState;
                                                                36 
                                                                40  enum class PlayControlType {
                                                                44  PAUSE,
                                                                48  RESUME,
                                                                52  STOP,
                                                                56  NEXT,
                                                                60  PREVIOUS,
                                                                64  START_OVER,
                                                                68  FAST_FORWARD,
                                                                72  REWIND,
                                                                76  ENABLE_REPEAT_ONE,
                                                                80  ENABLE_REPEAT,
                                                                84  DISABLE_REPEAT,
                                                                88  ENABLE_SHUFFLE,
                                                                92  DISABLE_SHUFFLE,
                                                                96  FAVORITE,
                                                                100  UNFAVORITE,
                                                                105  PAUSE_RESUME_TOGGLE
                                                                106  };
                                                                107 
                                                                111  enum class SupportedPlaybackOperation {
                                                                115  PLAY,
                                                                119  PAUSE,
                                                                123  STOP,
                                                                127  NEXT,
                                                                131  PREVIOUS,
                                                                135  START_OVER,
                                                                139  FAST_FORWARD,
                                                                143  REWIND,
                                                                147  ENABLE_REPEAT,
                                                                151  ENABLE_REPEAT_ONE,
                                                                155  DISABLE_REPEAT,
                                                                159  ENABLE_SHUFFLE,
                                                                163  DISABLE_SHUFFLE,
                                                                167  FAVORITE,
                                                                171  UNFAVORITE,
                                                                175  SEEK,
                                                                179  ADJUST_SEEK
                                                                180  };
                                                                181 
                                                                185  enum class Favorites {
                                                                189  FAVORITED,
                                                                193  UNFAVORITED,
                                                                197  NOT_RATED
                                                                198  };
                                                                199 
                                                                203  enum class MediaType {
                                                                207  TRACK,
                                                                211  PODCAST,
                                                                215  STATION,
                                                                219  AD,
                                                                223  SAMPLE,
                                                                227  OTHER
                                                                228  };
                                                                229 
                                                                233  enum class Navigation {
                                                                237  DEFAULT,
                                                                241  NONE,
                                                                245  FOREGROUND
                                                                246  };
                                                                247 
                                                                251  class SessionState {
                                                                252  public:
                                                                256  SessionState();
                                                                257 
                                                                259  std::string endpointId;
                                                                260 
                                                                262  bool loggedIn;
                                                                263 
                                                                265  std::string userName;
                                                                266 
                                                                268  bool isGuest;
                                                                269 
                                                                271  bool launched;
                                                                272 
                                                                277  bool active;
                                                                278 
                                                                283  std::string accessToken;
                                                                284 
                                                                286  std::chrono::milliseconds tokenRefreshInterval;
                                                                287 
                                                                289  std::string playerCookie;
                                                                290 
                                                                292  std::string spiVersion;
                                                                293  };
                                                                294 
                                                                299  public:
                                                                301  PlaybackState();
                                                                302 
                                                                303  /* The state of the external media adapter.
                                                                304  * "IDLE"/"STOPPED"/"PAUSED"/"PLAYING"/"FINISHED"/"FAST_FORWARDING"/"REWINDING"/"BUFFER_UNDERRUN". default "IDLE"
                                                                305  */
                                                                306  std::string state;
                                                                307 
                                                                309  std::vector<SupportedPlaybackOperation> supportedOperations;
                                                                310 
                                                                312  std::chrono::milliseconds trackOffset;
                                                                313 
                                                                316 
                                                                319 
                                                                321  Favorites favorites;
                                                                322 
                                                                324  std::string type;
                                                                325 
                                                                327  std::string playbackSource;
                                                                328 
                                                                331  std::string playbackSourceId;
                                                                332 
                                                                334  std::string trackName;
                                                                335 
                                                                337  std::string trackId;
                                                                338 
                                                                341  std::string trackNumber;
                                                                342 
                                                                344  std::string artistName;
                                                                345 
                                                                348  std::string artistId;
                                                                349 
                                                                351  std::string albumName;
                                                                352 
                                                                355  std::string albumId;
                                                                356 
                                                                358  std::string tinyURL;
                                                                359 
                                                                361  std::string smallURL;
                                                                362 
                                                                364  std::string mediumURL;
                                                                365 
                                                                367  std::string largeURL;
                                                                368 
                                                                371  std::string coverId;
                                                                372 
                                                                375  std::string mediaProvider;
                                                                376 
                                                                378  MediaType mediaType;
                                                                379 
                                                                381  std::chrono::milliseconds duration;
                                                                382  };
                                                                383 
                                                                388  public:
                                                                391 
                                                                394 
                                                                397  };
                                                                398 
                                                                403  public:
                                                                405  std::string localPlayerId;
                                                                409  std::string defaultSkillToken;
                                                                410  // The playerId that identifies this player
                                                                411  std::string playerId;
                                                                412  };
                                                                413 
                                                                414 protected:
                                                                415  ExternalMediaAdapter() = default;
                                                                416 
                                                                417 public:
                                                                418  virtual ~ExternalMediaAdapter();
                                                                419 
                                                                436  virtual bool login(
                                                                437  const std::string& localPlayerId,
                                                                438  const std::string& accessToken,
                                                                439  const std::string& userName,
                                                                440  bool forceLogin,
                                                                441  std::chrono::milliseconds tokenRefreshInterval) = 0;
                                                                442 
                                                                451  virtual bool logout(const std::string& localPlayerId) = 0;
                                                                452 
                                                                471  virtual bool play(
                                                                472  const std::string& localPlayerId,
                                                                473  const std::string& playContextToken,
                                                                474  int64_t index,
                                                                475  std::chrono::milliseconds offset,
                                                                476  bool preload,
                                                                477  Navigation navigation) = 0;
                                                                478 
                                                                482  virtual bool play(
                                                                483  const std::string& localPlayerId,
                                                                484  const std::string& playContextToken,
                                                                485  int64_t index,
                                                                486  std::chrono::milliseconds offset,
                                                                487  bool preload,
                                                                488  Navigation navigation,
                                                                489  const std::string& playbackSessionId,
                                                                490  const std::string& skillToken);
                                                                491 
                                                                502  virtual bool playControl(const std::string& localPlayerId, PlayControlType controlType) = 0;
                                                                503 
                                                                514  virtual bool seek(const std::string& localPlayerId, std::chrono::milliseconds offset) = 0;
                                                                515 
                                                                526  virtual bool adjustSeek(const std::string& localPlayerId, std::chrono::milliseconds deltaOffset) = 0;
                                                                527 
                                                                542  virtual bool authorize(const std::vector<AuthorizedPlayerInfo>& authorizedPlayers) = 0;
                                                                543 
                                                                549  virtual std::chrono::milliseconds getOffset(const std::string& localPlayerId);
                                                                550 
                                                                560  virtual bool getState(const std::string& localPlayerId, ExternalMediaAdapterState& state) = 0;
                                                                561 
                                                                571  virtual bool volumeChanged(float volume) = 0;
                                                                572 
                                                                582  virtual bool mutedStateChanged(MutedState state) = 0;
                                                                583 
                                                                584  // ExternalMediaAdapterEngineInterface
                                                                585 
                                                                591  void reportDiscoveredPlayers(const std::vector<DiscoveredPlayerInfo>& discoveredPlayers);
                                                                592 
                                                                598  void requestToken(const std::string& localPlayerId);
                                                                599 
                                                                605  void loginComplete(const std::string& localPlayerId);
                                                                606 
                                                                612  void logoutComplete(const std::string& localPlayerId);
                                                                613 
                                                                629  void playerEvent(const std::string& localPlayerId, const std::string& eventName);
                                                                630 
                                                                660  void playerError(
                                                                661  const std::string& localPlayerId,
                                                                662  const std::string& errorName,
                                                                663  long code,
                                                                664  const std::string& description,
                                                                665  bool fatal);
                                                                666 
                                                                672  void setFocus(const std::string& localPlayerId);
                                                                673 
                                                                674  void removeDiscoveredPlayer(const std::string& localPlayerId);
                                                                675 
                                                                682  void setEngineInterface(
                                                                683  std::shared_ptr<aace::alexa::ExternalMediaAdapterEngineInterface> externalMediaAdapterEngineInterface);
                                                                684 
                                                                685 private:
                                                                686  std::weak_ptr<aace::alexa::ExternalMediaAdapterEngineInterface> m_externalMediaAdapterEngineInterface;
                                                                687 };
                                                                688 
                                                                689 inline std::ostream& operator<<(std::ostream& stream, const ExternalMediaAdapter::PlayControlType& requestType) {
                                                                690  switch (requestType) {
                                                                691  case ExternalMediaAdapter::PlayControlType::RESUME:
                                                                692  stream << "RESUME";
                                                                693  break;
                                                                694  case ExternalMediaAdapter::PlayControlType::PAUSE:
                                                                695  stream << "PAUSE";
                                                                696  break;
                                                                697  case ExternalMediaAdapter::PlayControlType::STOP:
                                                                698  stream << "STOP";
                                                                699  break;
                                                                700  case ExternalMediaAdapter::PlayControlType::NEXT:
                                                                701  stream << "NEXT";
                                                                702  break;
                                                                703  case ExternalMediaAdapter::PlayControlType::PREVIOUS:
                                                                704  stream << "PREVIOUS";
                                                                705  break;
                                                                706  case ExternalMediaAdapter::PlayControlType::START_OVER:
                                                                707  stream << "START_OVER";
                                                                708  break;
                                                                709  case ExternalMediaAdapter::PlayControlType::FAST_FORWARD:
                                                                710  stream << "FAST_FORWARD";
                                                                711  break;
                                                                712  case ExternalMediaAdapter::PlayControlType::REWIND:
                                                                713  stream << "REWIND";
                                                                714  break;
                                                                715  case ExternalMediaAdapter::PlayControlType::ENABLE_REPEAT_ONE:
                                                                716  stream << "ENABLE_REPEAT_ONE";
                                                                717  break;
                                                                718  case ExternalMediaAdapter::PlayControlType::ENABLE_REPEAT:
                                                                719  stream << "ENABLE_REPEAT";
                                                                720  break;
                                                                721  case ExternalMediaAdapter::PlayControlType::DISABLE_REPEAT:
                                                                722  stream << "DISABLE_REPEAT";
                                                                723  break;
                                                                724  case ExternalMediaAdapter::PlayControlType::ENABLE_SHUFFLE:
                                                                725  stream << "ENABLE_SHUFFLE";
                                                                726  break;
                                                                727  case ExternalMediaAdapter::PlayControlType::DISABLE_SHUFFLE:
                                                                728  stream << "DISABLE_SHUFFLE";
                                                                729  break;
                                                                730  case ExternalMediaAdapter::PlayControlType::FAVORITE:
                                                                731  stream << "FAVORITE";
                                                                732  break;
                                                                733  case ExternalMediaAdapter::PlayControlType::UNFAVORITE:
                                                                734  stream << "UNFAVORITE";
                                                                735  break;
                                                                736  // internal
                                                                737  case ExternalMediaAdapter::PlayControlType::PAUSE_RESUME_TOGGLE:
                                                                738  stream << "PAUSE_RESUME_TOGGLE";
                                                                739  break;
                                                                740  }
                                                                741  return stream;
                                                                742 }
                                                                743 
                                                                744 inline std::ostream& operator<<(
                                                                745  std::ostream& stream,
                                                                746  const ExternalMediaAdapter::SupportedPlaybackOperation& supportedPlaybackOperation) {
                                                                747  switch (supportedPlaybackOperation) {
                                                                748  case ExternalMediaAdapter::SupportedPlaybackOperation::PLAY:
                                                                749  stream << "PLAY";
                                                                750  break;
                                                                751  case ExternalMediaAdapter::SupportedPlaybackOperation::PAUSE:
                                                                752  stream << "PAUSE";
                                                                753  break;
                                                                754  case ExternalMediaAdapter::SupportedPlaybackOperation::STOP:
                                                                755  stream << "STOP";
                                                                756  break;
                                                                757  case ExternalMediaAdapter::SupportedPlaybackOperation::NEXT:
                                                                758  stream << "NEXT";
                                                                759  break;
                                                                760  case ExternalMediaAdapter::SupportedPlaybackOperation::PREVIOUS:
                                                                761  stream << "PREVIOUS";
                                                                762  break;
                                                                763  case ExternalMediaAdapter::SupportedPlaybackOperation::START_OVER:
                                                                764  stream << "START_OVER";
                                                                765  break;
                                                                766  case ExternalMediaAdapter::SupportedPlaybackOperation::FAST_FORWARD:
                                                                767  stream << "FAST_FORWARD";
                                                                768  break;
                                                                769  case ExternalMediaAdapter::SupportedPlaybackOperation::REWIND:
                                                                770  stream << "REWIND";
                                                                771  break;
                                                                772  case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_REPEAT:
                                                                773  stream << "ENABLE_REPEAT";
                                                                774  break;
                                                                775  case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_REPEAT_ONE:
                                                                776  stream << "ENABLE_REPEAT_ONE";
                                                                777  break;
                                                                778  case ExternalMediaAdapter::SupportedPlaybackOperation::DISABLE_REPEAT:
                                                                779  stream << "DISABLE_REPEAT";
                                                                780  break;
                                                                781  case ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_SHUFFLE:
                                                                782  stream << "ENABLE_SHUFFLE";
                                                                783  break;
                                                                784  case ExternalMediaAdapter::SupportedPlaybackOperation::DISABLE_SHUFFLE:
                                                                785  stream << "DISABLE_SHUFFLE";
                                                                786  break;
                                                                787  case ExternalMediaAdapter::SupportedPlaybackOperation::FAVORITE:
                                                                788  stream << "FAVORITE";
                                                                789  break;
                                                                790  case ExternalMediaAdapter::SupportedPlaybackOperation::UNFAVORITE:
                                                                791  stream << "UNFAVORITE";
                                                                792  break;
                                                                793  case ExternalMediaAdapter::SupportedPlaybackOperation::SEEK:
                                                                794  stream << "SEEK";
                                                                795  break;
                                                                796  case ExternalMediaAdapter::SupportedPlaybackOperation::ADJUST_SEEK:
                                                                797  stream << "ADJUST_SEEK";
                                                                798  break;
                                                                799  }
                                                                800  return stream;
                                                                801 }
                                                                802 
                                                                803 inline std::ostream& operator<<(std::ostream& stream, const ExternalMediaAdapter::Favorites& favorites) {
                                                                804  switch (favorites) {
                                                                805  case ExternalMediaAdapter::Favorites::FAVORITED:
                                                                806  stream << "FAVORITED";
                                                                807  break;
                                                                808  case ExternalMediaAdapter::Favorites::UNFAVORITED:
                                                                809  stream << "UNFAVORITED";
                                                                810  break;
                                                                811  case ExternalMediaAdapter::Favorites::NOT_RATED:
                                                                812  stream << "NOT_RATED";
                                                                813  break;
                                                                814  }
                                                                815  return stream;
                                                                816 }
                                                                817 
                                                                818 inline std::ostream& operator<<(std::ostream& stream, const ExternalMediaAdapter::MediaType& mediaType) {
                                                                819  switch (mediaType) {
                                                                820  case ExternalMediaAdapter::MediaType::TRACK:
                                                                821  stream << "TRACK";
                                                                822  break;
                                                                823  case ExternalMediaAdapter::MediaType::PODCAST:
                                                                824  stream << "PODCAST";
                                                                825  break;
                                                                826  case ExternalMediaAdapter::MediaType::STATION:
                                                                827  stream << "STATION";
                                                                828  break;
                                                                829  case ExternalMediaAdapter::MediaType::AD:
                                                                830  stream << "AD";
                                                                831  break;
                                                                832  case ExternalMediaAdapter::MediaType::SAMPLE:
                                                                833  stream << "SAMPLE";
                                                                834  break;
                                                                835  case ExternalMediaAdapter::MediaType::OTHER:
                                                                836  stream << "OTHER";
                                                                837  break;
                                                                838  }
                                                                839  return stream;
                                                                840 }
                                                                841 
                                                                842 inline std::ostream& operator<<(std::ostream& stream, const ExternalMediaAdapter::Navigation& navigation) {
                                                                843  switch (navigation) {
                                                                844  case ExternalMediaAdapter::Navigation::DEFAULT:
                                                                845  stream << "DEFAULT";
                                                                846  break;
                                                                847  case ExternalMediaAdapter::Navigation::NONE:
                                                                848  stream << "NONE";
                                                                849  break;
                                                                850  case ExternalMediaAdapter::Navigation::FOREGROUND:
                                                                851  stream << "FOREGROUND";
                                                                852  break;
                                                                853  }
                                                                854  return stream;
                                                                855 }
                                                                856 
                                                                857 } // namespace alexa
                                                                858 } // namespace aace
                                                                859 
                                                                860 #endif // AACE_ALEXA_EXTERNAL_MEDIA_ADAPTER_H
                                                                MutedState
                                                                Definition: AudioOutput.h:69
                                                                -
                                                                std::string artistId
                                                                Definition: ExternalMediaAdapter.h:346
                                                                -
                                                                std::string albumName
                                                                The display name of the currently playing album.
                                                                Definition: ExternalMediaAdapter.h:349
                                                                +
                                                                std::string artistId
                                                                Definition: ExternalMediaAdapter.h:348
                                                                +
                                                                std::string albumName
                                                                The display name of the currently playing album. default "".
                                                                Definition: ExternalMediaAdapter.h:351
                                                                bool active
                                                                Definition: ExternalMediaAdapter.h:277
                                                                -
                                                                std::string defaultSkillToken
                                                                An opaque token for the domain or skill that is associated with this player.
                                                                Definition: ExternalMediaAdapter.h:407
                                                                -
                                                                std::string trackId
                                                                The arbitrary identifier for currently playing trackid of the track as per the music provider...
                                                                Definition: ExternalMediaAdapter.h:335
                                                                -
                                                                std::chrono::milliseconds trackOffset
                                                                The offset of the track in milliseconds.
                                                                Definition: ExternalMediaAdapter.h:310
                                                                -
                                                                MediaType mediaType
                                                                The Media type enum value from {TRACK, PODCAST, STATION, AD, SAMPLE, OTHER} type of the media...
                                                                Definition: ExternalMediaAdapter.h:376
                                                                -
                                                                std::string playbackSourceId
                                                                Definition: ExternalMediaAdapter.h:329
                                                                -
                                                                std::string userName
                                                                The userName of the user currently logged in via a Login directive from the AVS.
                                                                Definition: ExternalMediaAdapter.h:265
                                                                +
                                                                std::string defaultSkillToken
                                                                An opaque token for the domain or skill that is associated with this player.
                                                                Definition: ExternalMediaAdapter.h:409
                                                                +
                                                                std::string trackId
                                                                The arbitrary identifier for currently playing trackid of the track as per the music provider...
                                                                Definition: ExternalMediaAdapter.h:337
                                                                +
                                                                std::chrono::milliseconds trackOffset
                                                                The offset of the track in milliseconds. default 0.
                                                                Definition: ExternalMediaAdapter.h:312
                                                                +
                                                                MediaType mediaType
                                                                The Media type TRACK/PODCAST/STATION/AD/SAMPLE/OTHER . default OTHER.
                                                                Definition: ExternalMediaAdapter.h:378
                                                                +
                                                                std::string playbackSourceId
                                                                Definition: ExternalMediaAdapter.h:331
                                                                +
                                                                std::string userName
                                                                The userName of the user currently logged in via a Login directive from the AVS. default ""...
                                                                Definition: ExternalMediaAdapter.h:265
                                                                Definition: PlatformInterface.h:29
                                                                -
                                                                Definition: ExternalMediaAdapter.h:400
                                                                +
                                                                Definition: ExternalMediaAdapter.h:402
                                                                Definition: ExternalMediaAdapter.h:251
                                                                -
                                                                std::string mediaProvider
                                                                Definition: ExternalMediaAdapter.h:373
                                                                -
                                                                std::vector< SupportedPlaybackOperation > supportedOperations
                                                                The set of states the default player can move into from its current state.
                                                                Definition: ExternalMediaAdapter.h:307
                                                                -
                                                                std::string type
                                                                The type of the media item. For now hard-coded to ExternalMediaAdapterMusicItem.
                                                                Definition: ExternalMediaAdapter.h:322
                                                                -
                                                                bool launched
                                                                Flag that identifies if an application has been launched or not.
                                                                Definition: ExternalMediaAdapter.h:271
                                                                +
                                                                std::string mediaProvider
                                                                Definition: ExternalMediaAdapter.h:375
                                                                +
                                                                std::vector< SupportedPlaybackOperation > supportedOperations
                                                                The set of states the default player can move into from its current state. default {}...
                                                                Definition: ExternalMediaAdapter.h:309
                                                                +
                                                                std::string type
                                                                The type of the media item should be "ExternalMediaAdapterMusicItem". default "ExternalMediaAdapterMu...
                                                                Definition: ExternalMediaAdapter.h:324
                                                                +
                                                                bool launched
                                                                Flag that identifies if an application has been launched or not. default true.
                                                                Definition: ExternalMediaAdapter.h:271
                                                                std::string accessToken
                                                                Definition: ExternalMediaAdapter.h:283
                                                                -
                                                                Favorites favorites
                                                                The favorite status {"FAVORITED"/"UNFAVORITED"/"NOT_RATED"}.
                                                                Definition: ExternalMediaAdapter.h:319
                                                                +
                                                                Favorites favorites
                                                                The favorite status FAVORITED/UNFAVORITED/NOT_RATED. default NOT_RATED.
                                                                Definition: ExternalMediaAdapter.h:321
                                                                Definition: AddressBook.h:26
                                                                -
                                                                std::string artistName
                                                                The display name for the currently playing artist.
                                                                Definition: ExternalMediaAdapter.h:342
                                                                -
                                                                std::string state
                                                                The state of the default player - IDLE/STOPPED/PLAYING...
                                                                Definition: ExternalMediaAdapter.h:304
                                                                -
                                                                std::string tinyURL
                                                                The URL for tiny cover art image resource} .
                                                                Definition: ExternalMediaAdapter.h:356
                                                                -
                                                                bool loggedIn
                                                                Flag that identifies if a user is currently logged in or not.
                                                                Definition: ExternalMediaAdapter.h:262
                                                                -
                                                                std::string trackNumber
                                                                Definition: ExternalMediaAdapter.h:339
                                                                -
                                                                std::string playbackSource
                                                                The display name for current playback context, e.g. playlist name.
                                                                Definition: ExternalMediaAdapter.h:325
                                                                -
                                                                std::string endpointId
                                                                The unique device endpoint.
                                                                Definition: ExternalMediaAdapter.h:259
                                                                -
                                                                std::chrono::milliseconds tokenRefreshInterval
                                                                The validity period of the token in milliseconds.
                                                                Definition: ExternalMediaAdapter.h:286
                                                                -
                                                                bool isGuest
                                                                Flag that identifies if the user currently logged in is a guest or not.
                                                                Definition: ExternalMediaAdapter.h:268
                                                                -
                                                                std::string coverId
                                                                Definition: ExternalMediaAdapter.h:369
                                                                -
                                                                SessionState sessionState
                                                                Variable to hold the session state.
                                                                Definition: ExternalMediaAdapter.h:391
                                                                -
                                                                std::string spiVersion
                                                                The only spiVersion that currently exists is "1.0".
                                                                Definition: ExternalMediaAdapter.h:292
                                                                -
                                                                PlaybackState playbackState
                                                                Variable to hold the playback state.
                                                                Definition: ExternalMediaAdapter.h:394
                                                                +
                                                                std::string artistName
                                                                The display name for the currently playing artist. default "".
                                                                Definition: ExternalMediaAdapter.h:344
                                                                +
                                                                std::string tinyURL
                                                                The URL for tiny cover art image resource. default "".
                                                                Definition: ExternalMediaAdapter.h:358
                                                                +
                                                                bool loggedIn
                                                                Flag that identifies if a user is currently logged in or not. default false.
                                                                Definition: ExternalMediaAdapter.h:262
                                                                +
                                                                std::string trackNumber
                                                                Definition: ExternalMediaAdapter.h:341
                                                                +
                                                                std::string playbackSource
                                                                The display name for current playback context, e.g. playlist name. default "".
                                                                Definition: ExternalMediaAdapter.h:327
                                                                +
                                                                std::string endpointId
                                                                The unique device endpoint. default "".
                                                                Definition: ExternalMediaAdapter.h:259
                                                                +
                                                                std::chrono::milliseconds tokenRefreshInterval
                                                                The validity period of the token in milliseconds. default 0.
                                                                Definition: ExternalMediaAdapter.h:286
                                                                +
                                                                bool isGuest
                                                                Flag that identifies if the user currently logged in is a guest or not. default false.
                                                                Definition: ExternalMediaAdapter.h:268
                                                                +
                                                                std::string coverId
                                                                Definition: ExternalMediaAdapter.h:371
                                                                +
                                                                SessionState sessionState
                                                                Variable to hold the session state.
                                                                Definition: ExternalMediaAdapter.h:393
                                                                +
                                                                std::string spiVersion
                                                                The only spiVersion that currently exists is "1.0". default "1.0".
                                                                Definition: ExternalMediaAdapter.h:292
                                                                +
                                                                PlaybackState playbackState
                                                                Variable to hold the playback state.
                                                                Definition: ExternalMediaAdapter.h:396
                                                                Definition: ExternalMediaAdapter.h:298
                                                                -
                                                                std::string largeURL
                                                                The URL for large cover art image resource} .
                                                                Definition: ExternalMediaAdapter.h:365
                                                                - -
                                                                std::string localPlayerId
                                                                The opaque token that uniquely identifies the local external player app.
                                                                Definition: ExternalMediaAdapter.h:403
                                                                -
                                                                std::string playerCookie
                                                                A player may declare arbitrary information for itself.
                                                                Definition: ExternalMediaAdapter.h:289
                                                                -
                                                                bool shuffleEnabled
                                                                Bool to identify if shuffling is enabled or not.
                                                                Definition: ExternalMediaAdapter.h:313
                                                                -
                                                                std::chrono::milliseconds duration
                                                                Media item duration in milliseconds.
                                                                Definition: ExternalMediaAdapter.h:379
                                                                -
                                                                std::string trackName
                                                                The display name for the currently playing trackname of the track.
                                                                Definition: ExternalMediaAdapter.h:332
                                                                -
                                                                std::string smallURL
                                                                The URL for small cover art image resource} .
                                                                Definition: ExternalMediaAdapter.h:359
                                                                -
                                                                std::string mediumURL
                                                                The URL for medium cover art image resource} .
                                                                Definition: ExternalMediaAdapter.h:362
                                                                -
                                                                bool repeatEnabled
                                                                Bool to identify if looping of songs is enabled or not.
                                                                Definition: ExternalMediaAdapter.h:316
                                                                -
                                                                std::string albumId
                                                                Definition: ExternalMediaAdapter.h:353
                                                                +
                                                                std::string largeURL
                                                                The URL for large cover art image resource. default "".
                                                                Definition: ExternalMediaAdapter.h:367
                                                                + +
                                                                std::string localPlayerId
                                                                The opaque token that uniquely identifies the local external player app.
                                                                Definition: ExternalMediaAdapter.h:405
                                                                +
                                                                std::string playerCookie
                                                                A player may declare arbitrary information for itself. default "".
                                                                Definition: ExternalMediaAdapter.h:289
                                                                +
                                                                bool shuffleEnabled
                                                                Bool to identify if shuffling is enabled or not. default false.
                                                                Definition: ExternalMediaAdapter.h:315
                                                                +
                                                                std::chrono::milliseconds duration
                                                                Media item duration in milliseconds. default 0.
                                                                Definition: ExternalMediaAdapter.h:381
                                                                +
                                                                std::string trackName
                                                                The display name for the currently playing trackname of the track. default "".
                                                                Definition: ExternalMediaAdapter.h:334
                                                                +
                                                                std::string smallURL
                                                                The URL for small cover art image resource. default "".
                                                                Definition: ExternalMediaAdapter.h:361
                                                                +
                                                                std::string mediumURL
                                                                The URL for medium cover art image resource. default "".
                                                                Definition: ExternalMediaAdapter.h:364
                                                                +
                                                                bool repeatEnabled
                                                                Bool to identify if looping of songs is enabled or not. default false.
                                                                Definition: ExternalMediaAdapter.h:318
                                                                +
                                                                std::string albumId
                                                                Definition: ExternalMediaAdapter.h:355
                                                                -
                                                                bool authorized
                                                                Authorization status.
                                                                Definition: ExternalMediaAdapter.h:405
                                                                +
                                                                bool authorized
                                                                Authorization status.
                                                                Definition: ExternalMediaAdapter.h:407

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_focus_state_8h_source.html b/docs/cpp/_focus_state_8h_source.html index 6fd8f054e..53af42eb4 100644 --- a/docs/cpp/_focus_state_8h_source.html +++ b/docs/cpp/_focus_state_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -78,7 +78,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_global_preset_8h_source.html b/docs/cpp/_global_preset_8h_source.html index 0d264d239..ea7be7e0f 100644 --- a/docs/cpp/_global_preset_8h_source.html +++ b/docs/cpp/_global_preset_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -75,7 +75,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_local_media_source_8h_source.html b/docs/cpp/_local_media_source_8h_source.html index e270acd17..dbcb8f923 100644 --- a/docs/cpp/_local_media_source_8h_source.html +++ b/docs/cpp/_local_media_source_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,72 +68,71 @@
                                                                LocalMediaSource.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_LOCAL_MEDIA_SOURCE_H
                                                                17 #define AACE_ALEXA_LOCAL_MEDIA_SOURCE_H
                                                                18 
                                                                19 #include <chrono>
                                                                20 #include <string>
                                                                21 
                                                                22 #include "AACE/Core/PlatformInterface.h"
                                                                23 
                                                                24 #include "ExternalMediaAdapter.h"
                                                                25 
                                                                28 namespace aace {
                                                                29 namespace alexa {
                                                                30 
                                                                39 public:
                                                                43  enum class Source {
                                                                47  BLUETOOTH,
                                                                51  USB,
                                                                55  FM_RADIO,
                                                                59  AM_RADIO,
                                                                67  LINE_IN,
                                                                75  SIRIUS_XM,
                                                                79  DAB
                                                                80  };
                                                                81 
                                                                85  enum class ContentSelector {
                                                                89  FREQUENCY,
                                                                93  CHANNEL,
                                                                97  PRESET
                                                                98  };
                                                                99 
                                                                101  using PlayControlType = ExternalMediaAdapter::PlayControlType;
                                                                103  using SupportedPlaybackOperation = ExternalMediaAdapter::SupportedPlaybackOperation;
                                                                104  using Favorites = ExternalMediaAdapter::Favorites;
                                                                105  using MediaType = ExternalMediaAdapter::MediaType;
                                                                106 
                                                                110  class SessionState {
                                                                111  public:
                                                                112  /*
                                                                113  * Default Constructor.
                                                                114  */
                                                                115  SessionState();
                                                                116 
                                                                118  std::string endpointId;
                                                                119 
                                                                121  bool loggedIn;
                                                                122 
                                                                124  std::string userName;
                                                                125 
                                                                127  bool isGuest;
                                                                128 
                                                                130  bool launched;
                                                                131 
                                                                136  bool active;
                                                                137 
                                                                142  std::string accessToken;
                                                                143 
                                                                145  std::chrono::milliseconds tokenRefreshInterval;
                                                                146 
                                                                148  std::vector<ContentSelector> supportedContentSelectors;
                                                                149 
                                                                151  std::string spiVersion;
                                                                152  };
                                                                153 
                                                                158  public:
                                                                160  PlaybackState();
                                                                161 
                                                                163  std::string state;
                                                                164 
                                                                166  std::vector<SupportedPlaybackOperation> supportedOperations;
                                                                167 
                                                                169  std::chrono::milliseconds trackOffset;
                                                                170 
                                                                173 
                                                                176 
                                                                178  Favorites favorites;
                                                                179 
                                                                181  std::string type;
                                                                182 
                                                                184  std::string playbackSource;
                                                                185 
                                                                188  std::string playbackSourceId;
                                                                189 
                                                                191  std::string trackName;
                                                                192 
                                                                194  std::string trackId;
                                                                195 
                                                                198  std::string trackNumber;
                                                                199 
                                                                201  std::string artistName;
                                                                202 
                                                                205  std::string artistId;
                                                                206 
                                                                208  std::string albumName;
                                                                209 
                                                                212  std::string albumId;
                                                                213 
                                                                215  std::string tinyURL;
                                                                216 
                                                                218  std::string smallURL;
                                                                219 
                                                                221  std::string mediumURL;
                                                                222 
                                                                224  std::string largeURL;
                                                                225 
                                                                228  std::string coverId;
                                                                229 
                                                                232  std::string mediaProvider;
                                                                233 
                                                                235  MediaType mediaType;
                                                                236 
                                                                238  std::chrono::milliseconds duration;
                                                                239  };
                                                                240 
                                                                245  public:
                                                                248 
                                                                251 
                                                                254  };
                                                                255 
                                                                256 protected:
                                                                257  LocalMediaSource(Source source);
                                                                258 
                                                                259 public:
                                                                260  virtual ~LocalMediaSource();
                                                                261 
                                                                272  virtual bool play(ContentSelector contentSelectorType, const std::string& payload) = 0;
                                                                273 
                                                                284  virtual bool playControl(PlayControlType controlType) = 0;
                                                                285 
                                                                294  virtual bool seek(std::chrono::milliseconds offset) = 0;
                                                                295 
                                                                304  virtual bool adjustSeek(std::chrono::milliseconds deltaOffset) = 0;
                                                                305 
                                                                309  virtual LocalMediaSourceState getState() = 0;
                                                                310 
                                                                320  virtual bool volumeChanged(float volume) = 0;
                                                                321 
                                                                331  virtual bool mutedStateChanged(MutedState state) = 0;
                                                                332 
                                                                336  Source getSource();
                                                                337 
                                                                338  // LocalMediaSourceEngineInterface
                                                                339 
                                                                345  void playerEvent(const std::string& eventName);
                                                                346 
                                                                358  void playerError(const std::string& errorName, long code, const std::string& description, bool fatal);
                                                                359 
                                                                363  void setFocus(bool focusAcquire = true);
                                                                364 
                                                                371  void setEngineInterface(
                                                                372  std::shared_ptr<aace::alexa::LocalMediaSourceEngineInterface> localMediaSourceEngineInterface);
                                                                373 
                                                                374 private:
                                                                375  std::weak_ptr<aace::alexa::LocalMediaSourceEngineInterface> m_localMediaSourceEngineInterface;
                                                                376 
                                                                377  Source m_source;
                                                                378 };
                                                                379 
                                                                380 inline std::ostream& operator<<(std::ostream& stream, const LocalMediaSource::Source& source) {
                                                                381  switch (source) {
                                                                383  stream << "BLUETOOTH";
                                                                384  break;
                                                                386  stream << "USB";
                                                                387  break;
                                                                389  stream << "FM_RADIO";
                                                                390  break;
                                                                392  stream << "AM_RADIO";
                                                                393  break;
                                                                395  stream << "SATELLITE_RADIO";
                                                                396  break;
                                                                398  stream << "LINE_IN";
                                                                399  break;
                                                                401  stream << "COMPACT_DISC";
                                                                402  break;
                                                                404  stream << "SIRIUS_XM";
                                                                405  break;
                                                                407  stream << "DAB";
                                                                408  break;
                                                                409  }
                                                                410  return stream;
                                                                411 }
                                                                412 
                                                                413 inline std::ostream& operator<<(std::ostream& stream, const LocalMediaSource::ContentSelector& contentSelectorType) {
                                                                414  switch (contentSelectorType) {
                                                                416  stream << "CHANNEL";
                                                                417  break;
                                                                419  stream << "FREQUENCY";
                                                                420  break;
                                                                422  stream << "PRESET";
                                                                423  break;
                                                                424  }
                                                                425  return stream;
                                                                426 }
                                                                427 
                                                                428 } // namespace alexa
                                                                429 } // namespace aace
                                                                430 
                                                                431 #endif // AACE_ALEXA_LOCAL_MEDIA_SOURCE_H
                                                                MutedState
                                                                Definition: AudioOutput.h:69
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_LOCAL_MEDIA_SOURCE_H
                                                                17 #define AACE_ALEXA_LOCAL_MEDIA_SOURCE_H
                                                                18 
                                                                19 #include <chrono>
                                                                20 #include <string>
                                                                21 
                                                                22 #include "AACE/Core/PlatformInterface.h"
                                                                23 
                                                                24 #include "ExternalMediaAdapter.h"
                                                                25 
                                                                28 namespace aace {
                                                                29 namespace alexa {
                                                                30 
                                                                36 public:
                                                                40  enum class Source {
                                                                44  BLUETOOTH,
                                                                48  USB,
                                                                52  FM_RADIO,
                                                                56  AM_RADIO,
                                                                64  LINE_IN,
                                                                72  SIRIUS_XM,
                                                                76  DAB
                                                                77  };
                                                                78 
                                                                82  enum class ContentSelector {
                                                                86  FREQUENCY,
                                                                90  CHANNEL,
                                                                94  PRESET
                                                                95  };
                                                                96 
                                                                98  using PlayControlType = ExternalMediaAdapter::PlayControlType;
                                                                100  using SupportedPlaybackOperation = ExternalMediaAdapter::SupportedPlaybackOperation;
                                                                101  using Favorites = ExternalMediaAdapter::Favorites;
                                                                102  using MediaType = ExternalMediaAdapter::MediaType;
                                                                103 
                                                                107  class SessionState {
                                                                108  public:
                                                                109  /*
                                                                110  * Default Constructor.
                                                                111  */
                                                                112  SessionState();
                                                                113 
                                                                115  std::string endpointId;
                                                                116 
                                                                118  bool loggedIn;
                                                                119 
                                                                121  std::string userName;
                                                                122 
                                                                124  bool isGuest;
                                                                125 
                                                                127  bool launched;
                                                                128 
                                                                133  bool active;
                                                                134 
                                                                139  std::string accessToken;
                                                                140 
                                                                142  std::chrono::milliseconds tokenRefreshInterval;
                                                                143 
                                                                145  std::vector<ContentSelector> supportedContentSelectors;
                                                                146 
                                                                148  std::string spiVersion;
                                                                149  };
                                                                150 
                                                                155  public:
                                                                157  PlaybackState();
                                                                158 
                                                                159  /* The state of the local player.
                                                                160  * "IDLE"/"STOPPED"/"PAUSED"/"PLAYING"/"FINISHED"/"FAST_FORWARDING"/"REWINDING"/"BUFFER_UNDERRUN". default "IDLE"
                                                                161  */
                                                                162  std::string state;
                                                                163 
                                                                165  std::vector<SupportedPlaybackOperation> supportedOperations;
                                                                166 
                                                                168  std::chrono::milliseconds trackOffset;
                                                                169 
                                                                172 
                                                                175 
                                                                177  Favorites favorites;
                                                                178 
                                                                180  std::string type;
                                                                181 
                                                                183  std::string playbackSource;
                                                                184 
                                                                187  std::string playbackSourceId;
                                                                188 
                                                                190  std::string trackName;
                                                                191 
                                                                193  std::string trackId;
                                                                194 
                                                                197  std::string trackNumber;
                                                                198 
                                                                200  std::string artistName;
                                                                201 
                                                                204  std::string artistId;
                                                                205 
                                                                207  std::string albumName;
                                                                208 
                                                                211  std::string albumId;
                                                                212 
                                                                214  std::string tinyURL;
                                                                215 
                                                                217  std::string smallURL;
                                                                218 
                                                                220  std::string mediumURL;
                                                                221 
                                                                223  std::string largeURL;
                                                                224 
                                                                227  std::string coverId;
                                                                228 
                                                                231  std::string mediaProvider;
                                                                232 
                                                                234  MediaType mediaType;
                                                                235 
                                                                237  std::chrono::milliseconds duration;
                                                                238  };
                                                                239 
                                                                244  public:
                                                                247 
                                                                250 
                                                                253  };
                                                                254 
                                                                255 protected:
                                                                256  LocalMediaSource(Source source);
                                                                257 
                                                                258 public:
                                                                259  virtual ~LocalMediaSource();
                                                                260 
                                                                271  virtual bool play(ContentSelector contentSelectorType, const std::string& payload) = 0;
                                                                272 
                                                                281  virtual bool playControl(PlayControlType controlType) = 0;
                                                                282 
                                                                291  virtual bool seek(std::chrono::milliseconds offset) = 0;
                                                                292 
                                                                301  virtual bool adjustSeek(std::chrono::milliseconds deltaOffset) = 0;
                                                                302 
                                                                306  virtual LocalMediaSourceState getState() = 0;
                                                                307 
                                                                317  virtual bool volumeChanged(float volume) = 0;
                                                                318 
                                                                328  virtual bool mutedStateChanged(MutedState state) = 0;
                                                                329 
                                                                333  Source getSource();
                                                                334 
                                                                335  // LocalMediaSourceEngineInterface
                                                                336 
                                                                344  void playerEvent(const std::string& eventName);
                                                                345 
                                                                358  void playerError(const std::string& errorName, long code, const std::string& description, bool fatal);
                                                                359 
                                                                363  void setFocus(bool focusAcquire = true);
                                                                364 
                                                                371  void setEngineInterface(
                                                                372  std::shared_ptr<aace::alexa::LocalMediaSourceEngineInterface> localMediaSourceEngineInterface);
                                                                373 
                                                                374 private:
                                                                375  std::weak_ptr<aace::alexa::LocalMediaSourceEngineInterface> m_localMediaSourceEngineInterface;
                                                                376 
                                                                377  Source m_source;
                                                                378 };
                                                                379 
                                                                380 inline std::ostream& operator<<(std::ostream& stream, const LocalMediaSource::Source& source) {
                                                                381  switch (source) {
                                                                383  stream << "BLUETOOTH";
                                                                384  break;
                                                                386  stream << "USB";
                                                                387  break;
                                                                389  stream << "FM_RADIO";
                                                                390  break;
                                                                392  stream << "AM_RADIO";
                                                                393  break;
                                                                395  stream << "SATELLITE_RADIO";
                                                                396  break;
                                                                398  stream << "LINE_IN";
                                                                399  break;
                                                                401  stream << "COMPACT_DISC";
                                                                402  break;
                                                                404  stream << "SIRIUS_XM";
                                                                405  break;
                                                                407  stream << "DAB";
                                                                408  break;
                                                                409  }
                                                                410  return stream;
                                                                411 }
                                                                412 
                                                                413 inline std::ostream& operator<<(std::ostream& stream, const LocalMediaSource::ContentSelector& contentSelectorType) {
                                                                414  switch (contentSelectorType) {
                                                                416  stream << "CHANNEL";
                                                                417  break;
                                                                419  stream << "FREQUENCY";
                                                                420  break;
                                                                422  stream << "PRESET";
                                                                423  break;
                                                                424  }
                                                                425  return stream;
                                                                426 }
                                                                427 
                                                                428 } // namespace alexa
                                                                429 } // namespace aace
                                                                430 
                                                                431 #endif // AACE_ALEXA_LOCAL_MEDIA_SOURCE_H
                                                                MutedState
                                                                Definition: AudioOutput.h:69
                                                                -
                                                                std::string artistId
                                                                Definition: LocalMediaSource.h:205
                                                                -
                                                                std::string albumId
                                                                Definition: LocalMediaSource.h:212
                                                                -
                                                                bool launched
                                                                Flag that identifies if an application has been launched.
                                                                Definition: LocalMediaSource.h:130
                                                                -
                                                                PlaybackState playbackState
                                                                Variable to hold the playback state.
                                                                Definition: LocalMediaSource.h:253
                                                                -
                                                                std::string tinyURL
                                                                The URL for tiny cover art image resource} .
                                                                Definition: LocalMediaSource.h:215
                                                                +
                                                                std::string artistId
                                                                Definition: LocalMediaSource.h:204
                                                                +
                                                                std::string albumId
                                                                Definition: LocalMediaSource.h:211
                                                                +
                                                                bool launched
                                                                Flag that identifies if an source is currently enabled. default true.
                                                                Definition: LocalMediaSource.h:127
                                                                +
                                                                PlaybackState playbackState
                                                                Variable to hold the playback state.
                                                                Definition: LocalMediaSource.h:252
                                                                +
                                                                std::string tinyURL
                                                                The URL for tiny cover art image resource. default "".
                                                                Definition: LocalMediaSource.h:214
                                                                -
                                                                bool repeatEnabled
                                                                Bool to identify if looping of songs is enabled.
                                                                Definition: LocalMediaSource.h:175
                                                                +
                                                                bool repeatEnabled
                                                                Bool to identify if looping of songs is enabled. default false.
                                                                Definition: LocalMediaSource.h:174
                                                                -
                                                                std::string coverId
                                                                Definition: LocalMediaSource.h:228
                                                                +
                                                                std::string coverId
                                                                Definition: LocalMediaSource.h:227
                                                                void playerEvent(const std::string &eventName)
                                                                Definition: LocalMediaSource.cpp:81
                                                                virtual bool volumeChanged(float volume)=0
                                                                - -
                                                                std::string type
                                                                The type of the media item. For now hard-coded to ExternalMediaAdapterMusicItem.
                                                                Definition: LocalMediaSource.h:181
                                                                + +
                                                                std::string type
                                                                The type of the media item should be "ExternalMediaAdapterMusicItem". default "ExternalMediaAdapterMu...
                                                                Definition: LocalMediaSource.h:180
                                                                Source getSource()
                                                                Definition: LocalMediaSource.cpp:73
                                                                -
                                                                std::string spiVersion
                                                                The only spiVersion that currently exists is "1.0".
                                                                Definition: LocalMediaSource.h:151
                                                                +
                                                                std::string spiVersion
                                                                The only spiVersion that currently exists is "1.0". default "1.0".
                                                                Definition: LocalMediaSource.h:148
                                                                Definition: PlatformInterface.h:29
                                                                void playerError(const std::string &errorName, long code, const std::string &description, bool fatal)
                                                                Definition: LocalMediaSource.cpp:87
                                                                -
                                                                std::chrono::milliseconds duration
                                                                Media item duration in milliseconds.
                                                                Definition: LocalMediaSource.h:238
                                                                -
                                                                std::string playbackSource
                                                                The display name for current playback context, e.g. playlist name.
                                                                Definition: LocalMediaSource.h:184
                                                                -
                                                                std::string state
                                                                The state of the default player - IDLE/STOPPED/PAUSED/PLAYING/FINISHED/FAST_FORWARDING/REWINDING/BUFF...
                                                                Definition: LocalMediaSource.h:163
                                                                +
                                                                std::chrono::milliseconds duration
                                                                Media item duration in milliseconds. default 0.
                                                                Definition: LocalMediaSource.h:237
                                                                +
                                                                std::string playbackSource
                                                                The display name for current playback context, e.g. playlist name. default "".
                                                                Definition: LocalMediaSource.h:183
                                                                virtual bool seek(std::chrono::milliseconds offset)=0
                                                                -
                                                                std::vector< SupportedPlaybackOperation > supportedOperations
                                                                The set of states the default player can move into from its current state.
                                                                Definition: LocalMediaSource.h:166
                                                                +
                                                                std::vector< SupportedPlaybackOperation > supportedOperations
                                                                The set of states the default player can move into from its current state. default {}...
                                                                Definition: LocalMediaSource.h:165
                                                                virtual bool mutedStateChanged(MutedState state)=0
                                                                -
                                                                std::string trackNumber
                                                                Definition: LocalMediaSource.h:198
                                                                +
                                                                std::string trackNumber
                                                                Definition: LocalMediaSource.h:197
                                                                Definition: AddressBook.h:26
                                                                -
                                                                std::string playbackSourceId
                                                                Definition: LocalMediaSource.h:188
                                                                +
                                                                std::string playbackSourceId
                                                                Definition: LocalMediaSource.h:187
                                                                -
                                                                std::string artistName
                                                                The display name for the currently playing artist.
                                                                Definition: LocalMediaSource.h:201
                                                                +
                                                                std::string artistName
                                                                The display name for the currently playing artist. default "".
                                                                Definition: LocalMediaSource.h:200
                                                                void setFocus(bool focusAcquire=true)
                                                                Definition: LocalMediaSource.cpp:97
                                                                -
                                                                std::string smallURL
                                                                The URL for small cover art image resource} .
                                                                Definition: LocalMediaSource.h:218
                                                                -
                                                                bool isGuest
                                                                Flag that identifies if the user currently logged in is a guest.
                                                                Definition: LocalMediaSource.h:127
                                                                +
                                                                std::string smallURL
                                                                The URL for small cover art image resource. default "".
                                                                Definition: LocalMediaSource.h:217
                                                                +
                                                                bool isGuest
                                                                Flag that identifies if the user currently logged in is a guest. default false.
                                                                Definition: LocalMediaSource.h:124
                                                                -
                                                                std::string accessToken
                                                                Definition: LocalMediaSource.h:142
                                                                -
                                                                MediaType mediaType
                                                                The Media type enum value from {TRACK, PODCAST, STATION, AD, SAMPLE, OTHER} type of the media...
                                                                Definition: LocalMediaSource.h:235
                                                                +
                                                                std::string accessToken
                                                                Definition: LocalMediaSource.h:139
                                                                +
                                                                MediaType mediaType
                                                                The Media type TRACK/PODCAST/STATION/AD/SAMPLE/OTHER . default OTHER.
                                                                Definition: LocalMediaSource.h:234
                                                                virtual bool playControl(PlayControlType controlType)=0
                                                                -
                                                                std::string mediaProvider
                                                                Definition: LocalMediaSource.h:232
                                                                -
                                                                std::string mediumURL
                                                                The URL for medium cover art image resource} .
                                                                Definition: LocalMediaSource.h:221
                                                                -
                                                                ContentSelector
                                                                Definition: LocalMediaSource.h:85
                                                                -
                                                                bool active
                                                                Definition: LocalMediaSource.h:136
                                                                -
                                                                std::string trackId
                                                                The arbitrary identifier for currently playing trackid of the track as per the music provider...
                                                                Definition: LocalMediaSource.h:194
                                                                +
                                                                std::string mediaProvider
                                                                Definition: LocalMediaSource.h:231
                                                                +
                                                                std::string mediumURL
                                                                The URL for medium cover art image resource. default "".
                                                                Definition: LocalMediaSource.h:220
                                                                +
                                                                ContentSelector
                                                                Definition: LocalMediaSource.h:82
                                                                +
                                                                bool active
                                                                Definition: LocalMediaSource.h:133
                                                                +
                                                                std::string trackId
                                                                The arbitrary identifier for currently playing trackid of the track as per the music provider...
                                                                Definition: LocalMediaSource.h:193
                                                                virtual bool play(ContentSelector contentSelectorType, const std::string &payload)=0
                                                                -
                                                                Favorites favorites
                                                                The favorite status {"FAVORITED"/"UNFAVORITED"/"NOT_RATED"}.
                                                                Definition: LocalMediaSource.h:178
                                                                -
                                                                std::chrono::milliseconds trackOffset
                                                                The offset of the track in milliseconds.
                                                                Definition: LocalMediaSource.h:169
                                                                -
                                                                SessionState sessionState
                                                                Variable to hold the session state.
                                                                Definition: LocalMediaSource.h:250
                                                                -
                                                                bool loggedIn
                                                                Flag that identifies if a user is currently logged in.
                                                                Definition: LocalMediaSource.h:121
                                                                -
                                                                std::vector< ContentSelector > supportedContentSelectors
                                                                Array of content selector types supported by the player.
                                                                Definition: LocalMediaSource.h:148
                                                                -
                                                                bool shuffleEnabled
                                                                Bool to identify if shuffling is enabled.
                                                                Definition: LocalMediaSource.h:172
                                                                -
                                                                std::chrono::milliseconds tokenRefreshInterval
                                                                The validity period of the token in milliseconds.
                                                                Definition: LocalMediaSource.h:145
                                                                +
                                                                Favorites favorites
                                                                The favorite status FAVORITED/UNFAVORITED/NOT_RATED. default NOT_RATED.
                                                                Definition: LocalMediaSource.h:177
                                                                +
                                                                std::chrono::milliseconds trackOffset
                                                                The offset of the track in milliseconds. default 0.
                                                                Definition: LocalMediaSource.h:168
                                                                +
                                                                SessionState sessionState
                                                                Variable to hold the session state.
                                                                Definition: LocalMediaSource.h:249
                                                                +
                                                                bool loggedIn
                                                                Flag that identifies if a user is currently logged in. default false.
                                                                Definition: LocalMediaSource.h:118
                                                                +
                                                                std::vector< ContentSelector > supportedContentSelectors
                                                                Array of content selector types supported by the player. default {}.
                                                                Definition: LocalMediaSource.h:145
                                                                +
                                                                bool shuffleEnabled
                                                                Bool to identify if shuffling is enabled. default false.
                                                                Definition: LocalMediaSource.h:171
                                                                +
                                                                std::chrono::milliseconds tokenRefreshInterval
                                                                The validity period of the token in milliseconds. default 0.
                                                                Definition: LocalMediaSource.h:142
                                                                -
                                                                Definition: LocalMediaSource.h:110
                                                                -
                                                                Source
                                                                Definition: LocalMediaSource.h:43
                                                                -
                                                                Definition: LocalMediaSource.h:38
                                                                -
                                                                std::string userName
                                                                The username of the user currently logged in via a Login directive from Alexa.
                                                                Definition: LocalMediaSource.h:124
                                                                -
                                                                std::string albumName
                                                                The display name of the currently playing album.
                                                                Definition: LocalMediaSource.h:208
                                                                -
                                                                std::string trackName
                                                                The display name for the currently playing trackname of the track.
                                                                Definition: LocalMediaSource.h:191
                                                                -
                                                                std::string endpointId
                                                                The unique device endpoint.
                                                                Definition: LocalMediaSource.h:118
                                                                +
                                                                Definition: LocalMediaSource.h:107
                                                                +
                                                                Source
                                                                Definition: LocalMediaSource.h:40
                                                                +
                                                                Definition: LocalMediaSource.h:35
                                                                +
                                                                std::string userName
                                                                The username of the user currently logged in via a Login directive from Alexa. default ""...
                                                                Definition: LocalMediaSource.h:121
                                                                +
                                                                std::string albumName
                                                                The display name of the currently playing album. default "".
                                                                Definition: LocalMediaSource.h:207
                                                                +
                                                                std::string trackName
                                                                The display name for the currently playing trackname of the track. default "".
                                                                Definition: LocalMediaSource.h:190
                                                                +
                                                                std::string endpointId
                                                                The unique device endpoint. default "".
                                                                Definition: LocalMediaSource.h:115
                                                                -
                                                                std::string largeURL
                                                                The URL for large cover art image resource} .
                                                                Definition: LocalMediaSource.h:224
                                                                -
                                                                Definition: LocalMediaSource.h:157
                                                                +
                                                                std::string largeURL
                                                                The URL for large cover art image resource. default "".
                                                                Definition: LocalMediaSource.h:223
                                                                +
                                                                Definition: LocalMediaSource.h:154
                                                                virtual LocalMediaSourceState getState()=0
                                                                virtual bool adjustSeek(std::chrono::milliseconds deltaOffset)=0
                                                                @@ -141,7 +140,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_location_8h_source.html b/docs/cpp/_location_8h_source.html index 1dbe09809..6edda66d3 100644 --- a/docs/cpp/_location_8h_source.html +++ b/docs/cpp/_location_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -83,7 +83,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_location_provider_8h_source.html b/docs/cpp/_location_provider_8h_source.html index 24351cd48..107f8d4c0 100644 --- a/docs/cpp/_location_provider_8h_source.html +++ b/docs/cpp/_location_provider_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -79,7 +79,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_logger_8h_source.html b/docs/cpp/_logger_8h_source.html index 2ec33b028..c47ec15c6 100644 --- a/docs/cpp/_logger_8h_source.html +++ b/docs/cpp/_logger_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -79,7 +79,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_logger_configuration_8h_source.html b/docs/cpp/_logger_configuration_8h_source.html index cc6de1439..52b41017d 100644 --- a/docs/cpp/_logger_configuration_8h_source.html +++ b/docs/cpp/_logger_configuration_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -80,7 +80,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_logger_engine_interfaces_8h_source.html b/docs/cpp/_logger_engine_interfaces_8h_source.html index 8c55b6e31..0d0548c4e 100644 --- a/docs/cpp/_logger_engine_interfaces_8h_source.html +++ b/docs/cpp/_logger_engine_interfaces_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -82,7 +82,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_metrics_uploader_8h_source.html b/docs/cpp/_metrics_uploader_8h_source.html index 217bddc58..6b06eb887 100644 --- a/docs/cpp/_metrics_uploader_8h_source.html +++ b/docs/cpp/_metrics_uploader_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -82,7 +82,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_navigation_8h_source.html b/docs/cpp/_navigation_8h_source.html index d6aae84f2..4cd3cadba 100644 --- a/docs/cpp/_navigation_8h_source.html +++ b/docs/cpp/_navigation_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -84,7 +84,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_navigation_configuration_8h_source.html b/docs/cpp/_navigation_configuration_8h_source.html new file mode 100644 index 000000000..4844a7ac8 --- /dev/null +++ b/docs/cpp/_navigation_configuration_8h_source.html @@ -0,0 +1,85 @@ + + + + + + + +Alexa Auto SDK: NavigationConfiguration.h Source File + + + + + + + + + +

                                                                +
                                                                + + + + + + + +
                                                                +
                                                                Alexa Auto SDK +  3.0.0 +
                                                                +
                                                                +
                                                                + + + + + + + + +
                                                                +
                                                                + + +
                                                                + +
                                                                + + +
                                                                +
                                                                +
                                                                +
                                                                NavigationConfiguration.h
                                                                +
                                                                +
                                                                +
                                                                1 /*
                                                                2  * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_NAVIGATION_NAVIGATION_CONFIGURATION_H
                                                                17 #define AACE_NAVIGATION_NAVIGATION_CONFIGURATION_H
                                                                18 
                                                                19 #include <string>
                                                                20 
                                                                21 #include "AACE/Core/EngineConfiguration.h"
                                                                22 
                                                                25 namespace aace {
                                                                26 namespace navigation {
                                                                27 namespace config {
                                                                28 
                                                                33 public:
                                                                49  static std::shared_ptr<aace::core::config::EngineConfiguration> createNavigationConfig(
                                                                50  const std::string& providerName);
                                                                51 };
                                                                52 
                                                                53 } // namespace config
                                                                54 } // namespace navigation
                                                                55 } // namespace aace
                                                                56 
                                                                57 #endif // AACE_NAVIGATION_NAVIGATION_CONFIGURATION_H
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createNavigationConfig(const std::string &providerName)
                                                                +
                                                                Definition: AddressBook.h:26
                                                                +
                                                                Definition: NavigationConfiguration.h:32
                                                                +
                                                                + + +
                                                                +

                                                                + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 + +

                                                                + + diff --git a/docs/cpp/_navigation_engine_interfaces_8h_source.html b/docs/cpp/_navigation_engine_interfaces_8h_source.html index 2eb7b30df..0dc5ef848 100644 --- a/docs/cpp/_navigation_engine_interfaces_8h_source.html +++ b/docs/cpp/_navigation_engine_interfaces_8h_source.html @@ -23,7 +23,7 @@ Logo
                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,13 +68,13 @@
                                                                NavigationEngineInterfaces.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AAC_NAVIGATION_NAVIGATION_ENGINE_INTERFACES_H
                                                                17 #define AAC_NAVIGATION_NAVIGATION_ENGINE_INTERFACES_H
                                                                18 
                                                                19 #include "Navigation.h"
                                                                20 
                                                                21 namespace aace {
                                                                22 namespace navigation {
                                                                23 
                                                                24 class NavigationEngineInterface {
                                                                25 public:
                                                                26  enum class EventName {
                                                                27  /*
                                                                28  * Navigation was started. Send in response to startNavigation() directive.
                                                                29  */
                                                                30  NAVIGATION_STARTED,
                                                                31 
                                                                32  /*
                                                                33  * List of previous waypoints was displayed. Send in response to showPreviousWaypoints() directive.
                                                                34  */
                                                                35  PREVIOUS_WAYPOINTS_SHOWN,
                                                                36 
                                                                37  /*
                                                                38  * The previous navigation route was started. Send in response to navigateToPreviousWaypoint() directive.
                                                                39  */
                                                                40  PREVIOUS_NAVIGATION_STARTED,
                                                                41 
                                                                42  /*
                                                                43  * Overview of route was displayed. Send in response to controlDisplay() directive.
                                                                44  */
                                                                45  ROUTE_OVERVIEW_SHOWN,
                                                                46 
                                                                47  /*
                                                                48  * List of directions was displayed. Send in response to controlDisplay() directive.
                                                                49  */
                                                                50  DIRECTIONS_LIST_SHOWN,
                                                                51 
                                                                52  /*
                                                                53  * Map successfully zoomed in. Send in response to controlDisplay() directive.
                                                                54  */
                                                                55  ZOOMED_IN,
                                                                56 
                                                                57  /*
                                                                58  * Map successfully zoomed out. Send in response to controlDisplay() directive.
                                                                59  */
                                                                60  ZOOMED_OUT,
                                                                61 
                                                                62  /*
                                                                63  * Map successfully centered. Send in response to controlDisplay() directive.
                                                                64  */
                                                                65  MAP_CENTERED,
                                                                66 
                                                                67  /*
                                                                68  * Map successfully aligned with north up. Send in response to controlDisplay() directive.
                                                                69  */
                                                                70  ORIENTED_NORTH,
                                                                71 
                                                                72  /*
                                                                73  * Map successfully moved in North direction. Send in response to controlDisplay() directive.
                                                                74  */
                                                                75  SCROLLED_NORTH,
                                                                76 
                                                                77  /*
                                                                78  * Map successfully moved upwards. Send in response to controlDisplay() directive.
                                                                79  */
                                                                80  SCROLLED_UP,
                                                                81 
                                                                82  /*
                                                                83  * Map successfully moved in East direction. Send in response to controlDisplay() directive.
                                                                84  */
                                                                85  SCROLLED_EAST,
                                                                86 
                                                                87  /*
                                                                88  * Map successfully moved rightwards. Send in response to controlDisplay() directive.
                                                                89  */
                                                                90  SCROLLED_RIGHT,
                                                                91 
                                                                92  /*
                                                                93  * Map successfully moved in South direction. Send in response to controlDisplay() directive.
                                                                94  */
                                                                95  SCROLLED_SOUTH,
                                                                96 
                                                                97  /*
                                                                98  * Map successfully moved downwards. Send in response to controlDisplay() directive.
                                                                99  */
                                                                100  SCROLLED_DOWN,
                                                                101 
                                                                102  /*
                                                                103  * Map successfully moved in West direction. Send in response to controlDisplay() directive.
                                                                104  */
                                                                105  SCROLLED_WEST,
                                                                106 
                                                                107  /*
                                                                108  * Map successfully moved leftwards. Send in response to controlDisplay() directive.
                                                                109  */
                                                                110  SCROLLED_LEFT,
                                                                111 
                                                                112  /*
                                                                113  * Map sounds were muted. Send in response to controlDisplay() directive.
                                                                114  */
                                                                115  ROUTE_GUIDANCE_MUTED,
                                                                116 
                                                                117  /*
                                                                118  * Map sounds were unmuted. Send in response to controlDisplay() directive.
                                                                119  */
                                                                120  ROUTE_GUIDANCE_UNMUTED,
                                                                121 
                                                                122  /*
                                                                123  * Default alternate routes were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                124  */
                                                                125  DEFAULT_ALTERNATE_ROUTES_SHOWN,
                                                                126 
                                                                127  /*
                                                                128  * Alternate routes with shorter times were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                129  */
                                                                130  SHORTER_TIME_ROUTES_SHOWN,
                                                                131 
                                                                132  /*
                                                                133  * Alternate routes with shorter distances were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                134  */
                                                                135  SHORTER_DISTANCE_ROUTES_SHOWN,
                                                                136 
                                                                137  /*
                                                                138  * Next turn was successfully announced. Send in response to announceManeuver() directive.
                                                                139  */
                                                                140  TURN_GUIDANCE_ANNOUNCED,
                                                                141 
                                                                142  /*
                                                                143  * Next exit was successfully announced. Send in response to announceManeuver() directive.
                                                                144  */
                                                                145  EXIT_GUIDANCE_ANNOUNCED,
                                                                146 
                                                                147  /*
                                                                148  * Directions for entering successfully announced. Send in response to announceManeuver() directive.
                                                                149  */
                                                                150  ENTER_GUIDANCE_ANNOUNCED,
                                                                151 
                                                                152  /*
                                                                153  * Directions for merging successfully announced. Send in response to announceManeuver() directive.
                                                                154  */
                                                                155  MERGE_GUIDANCE_ANNOUNCED,
                                                                156 
                                                                157  /*
                                                                158  * Lane guidance was successfully announced. Send in response to announceManeuver() directive.
                                                                159  */
                                                                160  LANE_GUIDANCE_ANNOUNCED,
                                                                161 
                                                                162  /*
                                                                163  * Current speed limit successfully announced. Send in response to announceRoadRegulation() directive.
                                                                164  */
                                                                165  SPEED_LIMIT_REGULATION_ANNOUNCED,
                                                                166 
                                                                167  /*
                                                                168  * Carpool status successfully announced. Send in response to announceRoadRegulation() directive.
                                                                169  */
                                                                170  CARPOOL_RULES_REGULATION_ANNOUNCED
                                                                171  };
                                                                172 
                                                                173  enum class ErrorType {
                                                                177  NAVIGATION_START_FAILED,
                                                                178 
                                                                182  SHOW_PREVIOUS_WAYPOINTS_FAILED,
                                                                183 
                                                                187  PREVIOUS_NAVIGATION_START_FAILED,
                                                                188 
                                                                189  /*
                                                                190  * Overview of route was failed to display. Send in response to controlDisplay() directive.
                                                                191  */
                                                                192  ROUTE_OVERVIEW_FAILED,
                                                                193 
                                                                194  /*
                                                                195  * List of directions was failed to display. Send in response to controlDisplay() directive.
                                                                196  */
                                                                197  DIRECTIONS_LIST_FAILED,
                                                                198 
                                                                199  /*
                                                                200  * Map zoom-in unsuccessful. Send in response to controlDisplay() directive.
                                                                201  */
                                                                202  ZOOM_IN_FAILED,
                                                                203 
                                                                204  /*
                                                                205  * Map zoom-out unsuccessful. Send in response to controlDisplay() directive.
                                                                206  */
                                                                207  ZOOM_OUT_FAILED,
                                                                208 
                                                                209  /*
                                                                210  * Map centering unsuccessful. Send in response to controlDisplay() directive.
                                                                211  */
                                                                212  CENTER_FAILED,
                                                                213 
                                                                214  /*
                                                                215  * Map alignment to north unsuccessful. Send in response to controlDisplay() directive.
                                                                216  */
                                                                217  ORIENT_NORTH_FAILED,
                                                                218 
                                                                219  /*
                                                                220  * Moving map North was unsuccessful. Send in response to controlDisplay() directive.
                                                                221  */
                                                                222  SCROLL_NORTH_FAILED,
                                                                223 
                                                                224  /*
                                                                225  * Moving map upwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                226  */
                                                                227  SCROLL_UP_FAILED,
                                                                228 
                                                                229  /*
                                                                230  * Moving map East was unsuccessful. Send in response to controlDisplay() directive.
                                                                231  */
                                                                232  SCROLL_EAST_FAILED,
                                                                233 
                                                                234  /*
                                                                235  * Moving map rightwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                236  */
                                                                237  SCROLL_RIGHT_FAILED,
                                                                238 
                                                                239  /*
                                                                240  * Moving map South was unsuccessful. Send in response to controlDisplay() directive.
                                                                241  */
                                                                242  SCROLL_SOUTH_FAILED,
                                                                243 
                                                                244  /*
                                                                245  * Moving map downwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                246  */
                                                                247  SCROLL_DOWN_FAILED,
                                                                248 
                                                                249  /*
                                                                250  * Moving map west was unsuccessful. Send in response to controlDisplay() directive.
                                                                251  */
                                                                252  SCROLL_WEST_FAILED,
                                                                253 
                                                                254  /*
                                                                255  * Moving map leftwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                256  */
                                                                257  SCROLL_LEFT_FAILED,
                                                                258 
                                                                259  /*
                                                                260  * Map sounds failed to be muted. Send in response to controlDisplay() directive.
                                                                261  */
                                                                262  MUTED_ROUTE_GUIDANCE_FAILED,
                                                                263 
                                                                264  /*
                                                                265  * Map sounds failed to be unmuted. Send in response to controlDisplay() directive.
                                                                266  */
                                                                267  UNMUTED_ROUTE_GUIDANCE_FAILED,
                                                                268 
                                                                269  /*
                                                                270  * Displaying default alternate routes was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                271  */
                                                                272  DEFAULT_ALTERNATE_ROUTES_FAILED,
                                                                273 
                                                                274  /*
                                                                275  * Displaying alternate routes with shorter times was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                276  */
                                                                277  SHORTER_TIME_ROUTES_FAILED,
                                                                278 
                                                                279  /*
                                                                280  * Displaying alternate routes with shorter distances was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                281  */
                                                                282  SHORTER_DISTANCE_ROUTES_FAILED,
                                                                283 
                                                                284  /*
                                                                285  * Next turn announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                286  */
                                                                287  TURN_GUIDANCE_FAILED,
                                                                288 
                                                                289  /*
                                                                290  * Next exit announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                291  */
                                                                292  EXIT_GUIDANCE_FAILED,
                                                                293 
                                                                294  /*
                                                                295  * Announcement for entering directions was unsuccessful. Send in response to announceManeuver() directive.
                                                                296  */
                                                                297  ENTER_GUIDANCE_FAILED,
                                                                298 
                                                                299  /*
                                                                300  * Announcement for merging directions was unsuccessful. Send in response to announceManeuver() directive.
                                                                301  */
                                                                302  MERGE_GUIDANCE_FAILED,
                                                                303 
                                                                304  /*
                                                                305  * Lane guidance announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                306  */
                                                                307  LANE_GUIDANCE_FAILED,
                                                                308 
                                                                309  /*
                                                                310  * Current speed limit announcement was unsuccessful. Send in response to announceRoadRegulation() directive.
                                                                311  */
                                                                312  SPEED_LIMIT_REGULATION_FAILED,
                                                                313 
                                                                314  /*
                                                                315  * Carpool status announcement was unsuccessful. Send in response to announceRoadRegulation() directive.
                                                                316  */
                                                                317  CARPOOL_RULES_REGULATION_FAILED
                                                                318  };
                                                                319 
                                                                320  enum class ErrorCode {
                                                                324  INTERNAL_SERVICE_ERROR,
                                                                325 
                                                                329  ROUTE_NOT_FOUND,
                                                                330 
                                                                334  NO_PREVIOUS_WAYPOINTS,
                                                                335 
                                                                339  NOT_SUPPORTED,
                                                                340 
                                                                344  NOT_ALLOWED
                                                                345  };
                                                                346 
                                                                347  // user requested alternate route
                                                                348  enum class AlternateRouteType {
                                                                349  DEFAULT,
                                                                350 
                                                                351  SHORTER_TIME,
                                                                352 
                                                                353  SHORTER_DISTANCE
                                                                354  };
                                                                355 
                                                                356  virtual void onNavigationEvent(EventName event) = 0;
                                                                357  virtual void onNavigationError(ErrorType type, ErrorCode code, const std::string& description) = 0;
                                                                358  virtual void onShowAlternativeRoutesSucceeded(const std::string& payload) = 0;
                                                                359 };
                                                                360 
                                                                361 } // namespace navigation
                                                                362 } // namespace aace
                                                                363 
                                                                364 #endif
                                                                Definition: AddressBook.h:26
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AAC_NAVIGATION_NAVIGATION_ENGINE_INTERFACES_H
                                                                17 #define AAC_NAVIGATION_NAVIGATION_ENGINE_INTERFACES_H
                                                                18 
                                                                19 namespace aace {
                                                                20 namespace navigation {
                                                                21 
                                                                22 class NavigationEngineInterface {
                                                                23 public:
                                                                24  enum class EventName {
                                                                25  /*
                                                                26  * Navigation was started. Send in response to startNavigation() directive.
                                                                27  */
                                                                28  NAVIGATION_STARTED,
                                                                29 
                                                                30  /*
                                                                31  * List of previous waypoints was displayed. Send in response to showPreviousWaypoints() directive.
                                                                32  */
                                                                33  PREVIOUS_WAYPOINTS_SHOWN,
                                                                34 
                                                                35  /*
                                                                36  * The previous navigation route was started. Send in response to navigateToPreviousWaypoint() directive.
                                                                37  */
                                                                38  PREVIOUS_NAVIGATION_STARTED,
                                                                39 
                                                                40  /*
                                                                41  * Overview of route was displayed. Send in response to controlDisplay() directive.
                                                                42  */
                                                                43  ROUTE_OVERVIEW_SHOWN,
                                                                44 
                                                                45  /*
                                                                46  * List of directions was displayed. Send in response to controlDisplay() directive.
                                                                47  */
                                                                48  DIRECTIONS_LIST_SHOWN,
                                                                49 
                                                                50  /*
                                                                51  * Map successfully zoomed in. Send in response to controlDisplay() directive.
                                                                52  */
                                                                53  ZOOMED_IN,
                                                                54 
                                                                55  /*
                                                                56  * Map successfully zoomed out. Send in response to controlDisplay() directive.
                                                                57  */
                                                                58  ZOOMED_OUT,
                                                                59 
                                                                60  /*
                                                                61  * Map successfully centered. Send in response to controlDisplay() directive.
                                                                62  */
                                                                63  MAP_CENTERED,
                                                                64 
                                                                65  /*
                                                                66  * Map successfully aligned with north up. Send in response to controlDisplay() directive.
                                                                67  */
                                                                68  ORIENTED_NORTH,
                                                                69 
                                                                70  /*
                                                                71  * Map successfully moved in North direction. Send in response to controlDisplay() directive.
                                                                72  */
                                                                73  SCROLLED_NORTH,
                                                                74 
                                                                75  /*
                                                                76  * Map successfully moved upwards. Send in response to controlDisplay() directive.
                                                                77  */
                                                                78  SCROLLED_UP,
                                                                79 
                                                                80  /*
                                                                81  * Map successfully moved in East direction. Send in response to controlDisplay() directive.
                                                                82  */
                                                                83  SCROLLED_EAST,
                                                                84 
                                                                85  /*
                                                                86  * Map successfully moved rightwards. Send in response to controlDisplay() directive.
                                                                87  */
                                                                88  SCROLLED_RIGHT,
                                                                89 
                                                                90  /*
                                                                91  * Map successfully moved in South direction. Send in response to controlDisplay() directive.
                                                                92  */
                                                                93  SCROLLED_SOUTH,
                                                                94 
                                                                95  /*
                                                                96  * Map successfully moved downwards. Send in response to controlDisplay() directive.
                                                                97  */
                                                                98  SCROLLED_DOWN,
                                                                99 
                                                                100  /*
                                                                101  * Map successfully moved in West direction. Send in response to controlDisplay() directive.
                                                                102  */
                                                                103  SCROLLED_WEST,
                                                                104 
                                                                105  /*
                                                                106  * Map successfully moved leftwards. Send in response to controlDisplay() directive.
                                                                107  */
                                                                108  SCROLLED_LEFT,
                                                                109 
                                                                110  /*
                                                                111  * Map sounds were muted. Send in response to controlDisplay() directive.
                                                                112  */
                                                                113  ROUTE_GUIDANCE_MUTED,
                                                                114 
                                                                115  /*
                                                                116  * Map sounds were unmuted. Send in response to controlDisplay() directive.
                                                                117  */
                                                                118  ROUTE_GUIDANCE_UNMUTED,
                                                                119 
                                                                120  /*
                                                                121  * Default alternate routes were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                122  */
                                                                123  DEFAULT_ALTERNATE_ROUTES_SHOWN,
                                                                124 
                                                                125  /*
                                                                126  * Alternate routes with shorter times were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                127  */
                                                                128  SHORTER_TIME_ROUTES_SHOWN,
                                                                129 
                                                                130  /*
                                                                131  * Alternate routes with shorter distances were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                132  */
                                                                133  SHORTER_DISTANCE_ROUTES_SHOWN,
                                                                134 
                                                                135  /*
                                                                136  * Next turn was successfully announced. Send in response to announceManeuver() directive.
                                                                137  */
                                                                138  TURN_GUIDANCE_ANNOUNCED,
                                                                139 
                                                                140  /*
                                                                141  * Next exit was successfully announced. Send in response to announceManeuver() directive.
                                                                142  */
                                                                143  EXIT_GUIDANCE_ANNOUNCED,
                                                                144 
                                                                145  /*
                                                                146  * Directions for entering successfully announced. Send in response to announceManeuver() directive.
                                                                147  */
                                                                148  ENTER_GUIDANCE_ANNOUNCED,
                                                                149 
                                                                150  /*
                                                                151  * Directions for merging successfully announced. Send in response to announceManeuver() directive.
                                                                152  */
                                                                153  MERGE_GUIDANCE_ANNOUNCED,
                                                                154 
                                                                155  /*
                                                                156  * Lane guidance was successfully announced. Send in response to announceManeuver() directive.
                                                                157  */
                                                                158  LANE_GUIDANCE_ANNOUNCED,
                                                                159 
                                                                160  /*
                                                                161  * Current speed limit successfully announced. Send in response to announceRoadRegulation() directive.
                                                                162  */
                                                                163  SPEED_LIMIT_REGULATION_ANNOUNCED,
                                                                164 
                                                                165  /*
                                                                166  * Carpool status successfully announced. Send in response to announceRoadRegulation() directive.
                                                                167  */
                                                                168  CARPOOL_RULES_REGULATION_ANNOUNCED
                                                                169  };
                                                                170 
                                                                171  enum class ErrorType {
                                                                175  NAVIGATION_START_FAILED,
                                                                176 
                                                                180  SHOW_PREVIOUS_WAYPOINTS_FAILED,
                                                                181 
                                                                185  PREVIOUS_NAVIGATION_START_FAILED,
                                                                186 
                                                                187  /*
                                                                188  * Overview of route was failed to display. Send in response to controlDisplay() directive.
                                                                189  */
                                                                190  ROUTE_OVERVIEW_FAILED,
                                                                191 
                                                                192  /*
                                                                193  * List of directions was failed to display. Send in response to controlDisplay() directive.
                                                                194  */
                                                                195  DIRECTIONS_LIST_FAILED,
                                                                196 
                                                                197  /*
                                                                198  * Map zoom-in unsuccessful. Send in response to controlDisplay() directive.
                                                                199  */
                                                                200  ZOOM_IN_FAILED,
                                                                201 
                                                                202  /*
                                                                203  * Map zoom-out unsuccessful. Send in response to controlDisplay() directive.
                                                                204  */
                                                                205  ZOOM_OUT_FAILED,
                                                                206 
                                                                207  /*
                                                                208  * Map centering unsuccessful. Send in response to controlDisplay() directive.
                                                                209  */
                                                                210  CENTER_FAILED,
                                                                211 
                                                                212  /*
                                                                213  * Map alignment to north unsuccessful. Send in response to controlDisplay() directive.
                                                                214  */
                                                                215  ORIENT_NORTH_FAILED,
                                                                216 
                                                                217  /*
                                                                218  * Moving map North was unsuccessful. Send in response to controlDisplay() directive.
                                                                219  */
                                                                220  SCROLL_NORTH_FAILED,
                                                                221 
                                                                222  /*
                                                                223  * Moving map upwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                224  */
                                                                225  SCROLL_UP_FAILED,
                                                                226 
                                                                227  /*
                                                                228  * Moving map East was unsuccessful. Send in response to controlDisplay() directive.
                                                                229  */
                                                                230  SCROLL_EAST_FAILED,
                                                                231 
                                                                232  /*
                                                                233  * Moving map rightwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                234  */
                                                                235  SCROLL_RIGHT_FAILED,
                                                                236 
                                                                237  /*
                                                                238  * Moving map South was unsuccessful. Send in response to controlDisplay() directive.
                                                                239  */
                                                                240  SCROLL_SOUTH_FAILED,
                                                                241 
                                                                242  /*
                                                                243  * Moving map downwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                244  */
                                                                245  SCROLL_DOWN_FAILED,
                                                                246 
                                                                247  /*
                                                                248  * Moving map west was unsuccessful. Send in response to controlDisplay() directive.
                                                                249  */
                                                                250  SCROLL_WEST_FAILED,
                                                                251 
                                                                252  /*
                                                                253  * Moving map leftwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                254  */
                                                                255  SCROLL_LEFT_FAILED,
                                                                256 
                                                                257  /*
                                                                258  * Map sounds failed to be muted. Send in response to controlDisplay() directive.
                                                                259  */
                                                                260  MUTED_ROUTE_GUIDANCE_FAILED,
                                                                261 
                                                                262  /*
                                                                263  * Map sounds failed to be unmuted. Send in response to controlDisplay() directive.
                                                                264  */
                                                                265  UNMUTED_ROUTE_GUIDANCE_FAILED,
                                                                266 
                                                                267  /*
                                                                268  * Displaying default alternate routes was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                269  */
                                                                270  DEFAULT_ALTERNATE_ROUTES_FAILED,
                                                                271 
                                                                272  /*
                                                                273  * Displaying alternate routes with shorter times was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                274  */
                                                                275  SHORTER_TIME_ROUTES_FAILED,
                                                                276 
                                                                277  /*
                                                                278  * Displaying alternate routes with shorter distances was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                279  */
                                                                280  SHORTER_DISTANCE_ROUTES_FAILED,
                                                                281 
                                                                282  /*
                                                                283  * Next turn announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                284  */
                                                                285  TURN_GUIDANCE_FAILED,
                                                                286 
                                                                287  /*
                                                                288  * Next exit announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                289  */
                                                                290  EXIT_GUIDANCE_FAILED,
                                                                291 
                                                                292  /*
                                                                293  * Announcement for entering directions was unsuccessful. Send in response to announceManeuver() directive.
                                                                294  */
                                                                295  ENTER_GUIDANCE_FAILED,
                                                                296 
                                                                297  /*
                                                                298  * Announcement for merging directions was unsuccessful. Send in response to announceManeuver() directive.
                                                                299  */
                                                                300  MERGE_GUIDANCE_FAILED,
                                                                301 
                                                                302  /*
                                                                303  * Lane guidance announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                304  */
                                                                305  LANE_GUIDANCE_FAILED,
                                                                306 
                                                                307  /*
                                                                308  * Current speed limit announcement was unsuccessful. Send in response to announceRoadRegulation() directive.
                                                                309  */
                                                                310  SPEED_LIMIT_REGULATION_FAILED,
                                                                311 
                                                                312  /*
                                                                313  * Carpool status announcement was unsuccessful. Send in response to announceRoadRegulation() directive.
                                                                314  */
                                                                315  CARPOOL_RULES_REGULATION_FAILED
                                                                316  };
                                                                317 
                                                                318  enum class ErrorCode {
                                                                322  INTERNAL_SERVICE_ERROR,
                                                                323 
                                                                327  ROUTE_NOT_FOUND,
                                                                328 
                                                                332  NO_PREVIOUS_WAYPOINTS,
                                                                333 
                                                                337  NOT_SUPPORTED,
                                                                338 
                                                                342  NOT_ALLOWED
                                                                343  };
                                                                344 
                                                                345  // user requested alternate route
                                                                346  enum class AlternateRouteType {
                                                                347  DEFAULT,
                                                                348 
                                                                349  SHORTER_TIME,
                                                                350 
                                                                351  SHORTER_DISTANCE
                                                                352  };
                                                                353 
                                                                354  virtual void onNavigationEvent(EventName event) = 0;
                                                                355  virtual void onNavigationError(ErrorType type, ErrorCode code, const std::string& description) = 0;
                                                                356  virtual void onShowAlternativeRoutesSucceeded(const std::string& payload) = 0;
                                                                357 };
                                                                358 
                                                                359 } // namespace navigation
                                                                360 } // namespace aace
                                                                361 
                                                                362 #endif
                                                                Definition: AddressBook.h:26

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_network_engine_interfaces_8h_source.html b/docs/cpp/_network_engine_interfaces_8h_source.html index 6a5beae92..ad9d369dc 100644 --- a/docs/cpp/_network_engine_interfaces_8h_source.html +++ b/docs/cpp/_network_engine_interfaces_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -81,7 +81,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_network_info_provider_8h_source.html b/docs/cpp/_network_info_provider_8h_source.html index 2525b2da7..e4db70f75 100644 --- a/docs/cpp/_network_info_provider_8h_source.html +++ b/docs/cpp/_network_info_provider_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -80,7 +80,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_network_properties_8h_source.html b/docs/cpp/_network_properties_8h_source.html index 6d1296c2f..8fcfc528a 100644 --- a/docs/cpp/_network_properties_8h_source.html +++ b/docs/cpp/_network_properties_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_notifications_8h_source.html b/docs/cpp/_notifications_8h_source.html index e67e90816..9ff388f79 100644 --- a/docs/cpp/_notifications_8h_source.html +++ b/docs/cpp/_notifications_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -82,7 +82,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_phone_call_controller_8h_source.html b/docs/cpp/_phone_call_controller_8h_source.html index 06209b718..99cd47578 100644 --- a/docs/cpp/_phone_call_controller_8h_source.html +++ b/docs/cpp/_phone_call_controller_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -94,7 +94,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_phone_call_controller_engine_interfaces_8h_source.html b/docs/cpp/_phone_call_controller_engine_interfaces_8h_source.html index 116ae5fff..01685edc9 100644 --- a/docs/cpp/_phone_call_controller_engine_interfaces_8h_source.html +++ b/docs/cpp/_phone_call_controller_engine_interfaces_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -83,7 +83,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_platform_interface_8h_source.html b/docs/cpp/_platform_interface_8h_source.html index 29945f358..82374b1fe 100644 --- a/docs/cpp/_platform_interface_8h_source.html +++ b/docs/cpp/_platform_interface_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -75,7 +75,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_playback_controller_8h_source.html b/docs/cpp/_playback_controller_8h_source.html index 19e8e3dba..4b7f70c0d 100644 --- a/docs/cpp/_playback_controller_8h_source.html +++ b/docs/cpp/_playback_controller_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -71,16 +71,16 @@
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_PLAYBACK_CONTROLLER_H
                                                                17 #define AACE_ALEXA_PLAYBACK_CONTROLLER_H
                                                                18 
                                                                19 #include <memory>
                                                                20 
                                                                21 #include "AACE/Core/PlatformInterface.h"
                                                                22 #include "AlexaEngineInterfaces.h"
                                                                23 
                                                                26 namespace aace {
                                                                27 namespace alexa {
                                                                28 
                                                                40 protected:
                                                                41  PlaybackController() = default;
                                                                42 
                                                                43 public:
                                                                44  virtual ~PlaybackController();
                                                                45 
                                                                50 
                                                                55 
                                                                62  void buttonPressed(PlaybackButton button);
                                                                63 
                                                                71  void togglePressed(PlaybackToggle toggle, bool action);
                                                                72 
                                                                79  void setEngineInterface(
                                                                80  std::shared_ptr<aace::alexa::PlaybackControllerEngineInterface> playbackControllerEngineInterface);
                                                                81 
                                                                82 private:
                                                                83  std::weak_ptr<aace::alexa::PlaybackControllerEngineInterface> m_playbackControllerEngineInterface;
                                                                84 };
                                                                85 
                                                                86 } // namespace alexa
                                                                87 } // namespace aace
                                                                88 
                                                                89 #endif // AACE_ALEXA_PLAYBACK_CONTROLLER_H
                                                                Definition: PlaybackController.h:39
                                                                Definition: PlatformInterface.h:29
                                                                void togglePressed(PlaybackToggle toggle, bool action)
                                                                Definition: PlaybackController.cpp:29
                                                                -
                                                                PlaybackButton
                                                                Definition: AlexaEngineInterfaces.h:140
                                                                +
                                                                PlaybackButton
                                                                Definition: AlexaEngineInterfaces.h:138
                                                                Definition: AddressBook.h:26
                                                                -
                                                                PlaybackToggle
                                                                Definition: AlexaEngineInterfaces.h:170
                                                                +
                                                                PlaybackToggle
                                                                Definition: AlexaEngineInterfaces.h:168
                                                                void buttonPressed(PlaybackButton button)
                                                                Definition: PlaybackController.cpp:23

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_player_activity_8h_source.html b/docs/cpp/_player_activity_8h_source.html index f21b12554..9e3f6e831 100644 --- a/docs/cpp/_player_activity_8h_source.html +++ b/docs/cpp/_player_activity_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -81,7 +81,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_property_manager_8h_source.html b/docs/cpp/_property_manager_8h_source.html index b9ad69f13..3bf728641 100644 --- a/docs/cpp/_property_manager_8h_source.html +++ b/docs/cpp/_property_manager_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -80,7 +80,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_property_manager_engine_interface_8h_source.html b/docs/cpp/_property_manager_engine_interface_8h_source.html index 51951e37a..0b6729183 100644 --- a/docs/cpp/_property_manager_engine_interface_8h_source.html +++ b/docs/cpp/_property_manager_engine_interface_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_speech_recognizer_8h_source.html b/docs/cpp/_speech_recognizer_8h_source.html index 17a2e0edc..205657b76 100644 --- a/docs/cpp/_speech_recognizer_8h_source.html +++ b/docs/cpp/_speech_recognizer_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,25 +68,22 @@
                                                                SpeechRecognizer.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_SPEECH_RECOGNIZER_H
                                                                17 #define AACE_ALEXA_SPEECH_RECOGNIZER_H
                                                                18 
                                                                19 #include <AACE/Core/PlatformInterface.h>
                                                                20 #include "AlexaEngineInterfaces.h"
                                                                21 
                                                                24 namespace aace {
                                                                25 namespace alexa {
                                                                26 
                                                                40 protected:
                                                                41  SpeechRecognizer(bool wakewordDetectionEnabled = true);
                                                                42 
                                                                43 public:
                                                                44  virtual ~SpeechRecognizer();
                                                                45 
                                                                51 
                                                                52  /*
                                                                53  * Defines an unspecified value for the speech recognizers audio index.
                                                                54  */
                                                                55  static constexpr uint64_t UNSPECIFIED_INDEX = SpeechRecognizerEngineInterface::UNSPECIFIED_INDEX;
                                                                56 
                                                                67  bool holdToTalk();
                                                                68 
                                                                79  bool tapToTalk();
                                                                80 
                                                                98  bool startCapture(
                                                                99  Initiator initiator,
                                                                100  uint64_t keywordBegin = UNSPECIFIED_INDEX,
                                                                101  uint64_t keywordEnd = UNSPECIFIED_INDEX,
                                                                102  const std::string& keyword = "");
                                                                103 
                                                                110  bool stopCapture();
                                                                111 
                                                                122 
                                                                132 
                                                                142 
                                                                150  virtual bool wakewordDetected(const std::string& wakeword);
                                                                151 
                                                                156  virtual void endOfSpeechDetected();
                                                                157 
                                                                164  void setEngineInterface(
                                                                165  std::shared_ptr<aace::alexa::SpeechRecognizerEngineInterface> speechRecognizerEngineInterface);
                                                                166 
                                                                167 private:
                                                                168  std::weak_ptr<aace::alexa::SpeechRecognizerEngineInterface> m_speechRecognizerEngineInterface;
                                                                169 
                                                                170  bool m_wakewordDetectionEnabled;
                                                                171 };
                                                                172 
                                                                173 } // namespace alexa
                                                                174 } // namespace aace
                                                                175 
                                                                176 #endif // AACE_ALEXA_SPEECH_RECOGNIZER_H
                                                                bool stopCapture()
                                                                Definition: SpeechRecognizer.cpp:47
                                                                -
                                                                bool isWakewordDetectionEnabled()
                                                                Definition: SpeechRecognizer.cpp:75
                                                                -
                                                                virtual void endOfSpeechDetected()
                                                                Definition: SpeechRecognizer.cpp:83
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_SPEECH_RECOGNIZER_H
                                                                17 #define AACE_ALEXA_SPEECH_RECOGNIZER_H
                                                                18 
                                                                19 #include <AACE/Core/PlatformInterface.h>
                                                                20 #include "AlexaEngineInterfaces.h"
                                                                21 
                                                                24 namespace aace {
                                                                25 namespace alexa {
                                                                26 
                                                                40 protected:
                                                                42 
                                                                43 public:
                                                                44  virtual ~SpeechRecognizer();
                                                                45 
                                                                51 
                                                                52  /*
                                                                53  * Defines an unspecified value for the speech recognizers audio index.
                                                                54  */
                                                                55  static constexpr uint64_t UNSPECIFIED_INDEX = SpeechRecognizerEngineInterface::UNSPECIFIED_INDEX;
                                                                56 
                                                                67  bool holdToTalk();
                                                                68 
                                                                79  bool tapToTalk();
                                                                80 
                                                                97  bool startCapture(
                                                                98  Initiator initiator,
                                                                99  uint64_t keywordBegin = UNSPECIFIED_INDEX,
                                                                100  uint64_t keywordEnd = UNSPECIFIED_INDEX,
                                                                101  const std::string& keyword = "");
                                                                102 
                                                                110  bool stopCapture();
                                                                111 
                                                                119  virtual bool wakewordDetected(const std::string& wakeword);
                                                                120 
                                                                125  virtual void endOfSpeechDetected();
                                                                126 
                                                                133  void setEngineInterface(
                                                                134  std::shared_ptr<aace::alexa::SpeechRecognizerEngineInterface> speechRecognizerEngineInterface);
                                                                135 
                                                                136 private:
                                                                137  std::weak_ptr<aace::alexa::SpeechRecognizerEngineInterface> m_speechRecognizerEngineInterface;
                                                                138 };
                                                                139 
                                                                140 } // namespace alexa
                                                                141 } // namespace aace
                                                                142 
                                                                143 #endif // AACE_ALEXA_SPEECH_RECOGNIZER_H
                                                                bool stopCapture()
                                                                Definition: SpeechRecognizer.cpp:46
                                                                +
                                                                virtual void endOfSpeechDetected()
                                                                Definition: SpeechRecognizer.cpp:58
                                                                Definition: PlatformInterface.h:29
                                                                Definition: AddressBook.h:26
                                                                -
                                                                bool enableWakewordDetection()
                                                                Definition: SpeechRecognizer.cpp:55
                                                                Definition: SpeechRecognizer.h:39
                                                                -
                                                                bool holdToTalk()
                                                                Definition: SpeechRecognizer.cpp:27
                                                                -
                                                                bool tapToTalk()
                                                                Definition: SpeechRecognizer.cpp:31
                                                                -
                                                                virtual bool wakewordDetected(const std::string &wakeword)
                                                                Definition: SpeechRecognizer.cpp:79
                                                                -
                                                                bool disableWakewordDetection()
                                                                Definition: SpeechRecognizer.cpp:65
                                                                +
                                                                bool holdToTalk()
                                                                Definition: SpeechRecognizer.cpp:26
                                                                +
                                                                bool tapToTalk()
                                                                Definition: SpeechRecognizer.cpp:30
                                                                +
                                                                virtual bool wakewordDetected(const std::string &wakeword)
                                                                Definition: SpeechRecognizer.cpp:54
                                                                Initiator
                                                                Definition: AlexaEngineInterfaces.h:77
                                                                -
                                                                bool startCapture(Initiator initiator, uint64_t keywordBegin=UNSPECIFIED_INDEX, uint64_t keywordEnd=UNSPECIFIED_INDEX, const std::string &keyword="")
                                                                Definition: SpeechRecognizer.cpp:35
                                                                +
                                                                bool startCapture(Initiator initiator, uint64_t keywordBegin=UNSPECIFIED_INDEX, uint64_t keywordEnd=UNSPECIFIED_INDEX, const std::string &keyword="")
                                                                Definition: SpeechRecognizer.cpp:34

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_speech_synthesizer_8h_source.html b/docs/cpp/_speech_synthesizer_8h_source.html index dc3460bba..fb0ad4701 100644 --- a/docs/cpp/_speech_synthesizer_8h_source.html +++ b/docs/cpp/_speech_synthesizer_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -76,7 +76,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_storage_configuration_8h_source.html b/docs/cpp/_storage_configuration_8h_source.html index 960a808bc..82015b4f0 100644 --- a/docs/cpp/_storage_configuration_8h_source.html +++ b/docs/cpp/_storage_configuration_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -76,7 +76,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_template_runtime_8h_source.html b/docs/cpp/_template_runtime_8h_source.html index 43eedb14b..c7e3c6c58 100644 --- a/docs/cpp/_template_runtime_8h_source.html +++ b/docs/cpp/_template_runtime_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,22 +68,22 @@
                                                                TemplateRuntime.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_TEMPLATE_RUNTIME_H
                                                                17 #define AACE_ALEXA_TEMPLATE_RUNTIME_H
                                                                18 
                                                                19 #include <chrono>
                                                                20 #include <string>
                                                                21 
                                                                22 #include <AACE/Core/PlatformInterface.h>
                                                                23 #include "AlexaEngineInterfaces.h"
                                                                24 #include "FocusState.h"
                                                                25 #include "PlayerActivity.h"
                                                                26 
                                                                29 namespace aace {
                                                                30 namespace alexa {
                                                                31 
                                                                42 protected:
                                                                43  TemplateRuntime() = default;
                                                                44 
                                                                45 public:
                                                                51 
                                                                52  virtual ~TemplateRuntime();
                                                                53 
                                                                66  virtual void renderTemplate(const std::string& payload);
                                                                67 
                                                                78  virtual void renderTemplate(const std::string& payload, FocusState focusState);
                                                                79 
                                                                83  virtual void clearTemplate() = 0;
                                                                84 
                                                                99  virtual void renderPlayerInfo(const std::string& payload);
                                                                100 
                                                                117  virtual void renderPlayerInfo(
                                                                118  const std::string& payload,
                                                                119  PlayerActivity audioPlayerState,
                                                                120  std::chrono::milliseconds offset,
                                                                121  FocusState focusState);
                                                                122 
                                                                126  virtual void clearPlayerInfo() = 0;
                                                                127 
                                                                132  void displayCardCleared();
                                                                133 
                                                                140  void setEngineInterface(
                                                                141  std::shared_ptr<aace::alexa::TemplateRuntimeEngineInterface> templateRuntimeEngineInterface);
                                                                142 
                                                                143 private:
                                                                144  std::weak_ptr<aace::alexa::TemplateRuntimeEngineInterface> m_templateRuntimeEngineInterface;
                                                                145 };
                                                                146 
                                                                147 } // namespace alexa
                                                                148 } // namespace aace
                                                                149 
                                                                150 #endif // AACE_ALEXA_TEMPLATE_RUNTIME_H
                                                                Definition: TemplateRuntime.h:41
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_ALEXA_TEMPLATE_RUNTIME_H
                                                                17 #define AACE_ALEXA_TEMPLATE_RUNTIME_H
                                                                18 
                                                                19 #include <chrono>
                                                                20 #include <string>
                                                                21 
                                                                22 #include <AACE/Core/PlatformInterface.h>
                                                                23 #include "AlexaEngineInterfaces.h"
                                                                24 #include "FocusState.h"
                                                                25 #include "PlayerActivity.h"
                                                                26 
                                                                29 namespace aace {
                                                                30 namespace alexa {
                                                                31 
                                                                42 protected:
                                                                43  TemplateRuntime() = default;
                                                                44 
                                                                45 public:
                                                                51 
                                                                52  virtual ~TemplateRuntime();
                                                                53 
                                                                64  virtual void renderTemplate(const std::string& payload, FocusState focusState) = 0;
                                                                65 
                                                                69  virtual void clearTemplate() = 0;
                                                                70 
                                                                87  virtual void renderPlayerInfo(
                                                                88  const std::string& payload,
                                                                89  PlayerActivity audioPlayerState,
                                                                90  std::chrono::milliseconds offset,
                                                                91  FocusState focusState) = 0;
                                                                92 
                                                                96  virtual void clearPlayerInfo() = 0;
                                                                97 
                                                                102  void displayCardCleared();
                                                                103 
                                                                110  void setEngineInterface(
                                                                111  std::shared_ptr<aace::alexa::TemplateRuntimeEngineInterface> templateRuntimeEngineInterface);
                                                                112 
                                                                113 private:
                                                                114  std::weak_ptr<aace::alexa::TemplateRuntimeEngineInterface> m_templateRuntimeEngineInterface;
                                                                115 };
                                                                116 
                                                                117 } // namespace alexa
                                                                118 } // namespace aace
                                                                119 
                                                                120 #endif // AACE_ALEXA_TEMPLATE_RUNTIME_H
                                                                Definition: TemplateRuntime.h:41
                                                                PlayerActivity
                                                                Definition: PlayerActivity.h:36
                                                                Definition: PlatformInterface.h:29
                                                                +
                                                                virtual void renderTemplate(const std::string &payload, FocusState focusState)=0
                                                                Definition: AddressBook.h:26
                                                                FocusState
                                                                Definition: FocusState.h:36
                                                                -
                                                                void displayCardCleared()
                                                                Definition: TemplateRuntime.cpp:45
                                                                +
                                                                void displayCardCleared()
                                                                Definition: TemplateRuntime.cpp:23
                                                                +
                                                                virtual void renderPlayerInfo(const std::string &payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)=0
                                                                virtual void clearPlayerInfo()=0
                                                                virtual void clearTemplate()=0
                                                                -
                                                                virtual void renderTemplate(const std::string &payload)
                                                                Definition: TemplateRuntime.cpp:23
                                                                -
                                                                virtual void renderPlayerInfo(const std::string &payload)
                                                                Definition: TemplateRuntime.cpp:32

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_vehicle_configuration_8h_source.html b/docs/cpp/_vehicle_configuration_8h_source.html index 7673cafa7..ad4e9aec4 100644 --- a/docs/cpp/_vehicle_configuration_8h_source.html +++ b/docs/cpp/_vehicle_configuration_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -68,7 +68,7 @@
                                                                VehicleConfiguration.h
                                                                -
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_VEHICLE_CONFIG_VEHICLE_CONFIGURATION_H
                                                                17 #define AACE_VEHICLE_CONFIG_VEHICLE_CONFIGURATION_H
                                                                18 
                                                                19 #include <utility>
                                                                20 
                                                                21 #include "AACE/Core/EngineConfiguration.h"
                                                                22 
                                                                25 namespace aace {
                                                                26 namespace vehicle {
                                                                27 namespace config {
                                                                28 
                                                                33 public:
                                                                37  enum class VehiclePropertyType {
                                                                38 
                                                                43  MAKE,
                                                                44 
                                                                49  MODEL,
                                                                50 
                                                                57  YEAR,
                                                                58 
                                                                63  TRIM,
                                                                64 
                                                                69  GEOGRAPHY,
                                                                70 
                                                                75  VERSION,
                                                                76 
                                                                82 
                                                                88 
                                                                93  LANGUAGE,
                                                                94 
                                                                99  MICROPHONE,
                                                                100 
                                                                105  COUNTRY_LIST,
                                                                106 
                                                                111  };
                                                                112 
                                                                116  using VehicleProperty = std::pair<VehiclePropertyType, std::string>;
                                                                117 
                                                                147  static std::shared_ptr<aace::core::config::EngineConfiguration> createVehicleInfoConfig(
                                                                148  const std::vector<VehicleProperty>& propertyList);
                                                                149 
                                                                165  static std::shared_ptr<aace::core::config::EngineConfiguration> createOperatingCountryConfig(
                                                                166  const std::string& operatingCountry);
                                                                167 };
                                                                168 
                                                                169 inline std::ostream& operator<<(std::ostream& stream, const VehicleConfiguration::VehiclePropertyType& state) {
                                                                170  switch (state) {
                                                                172  stream << "MAKE";
                                                                173  break;
                                                                175  stream << "MODEL";
                                                                176  break;
                                                                178  stream << "YEAR";
                                                                179  break;
                                                                181  stream << "TRIM";
                                                                182  break;
                                                                184  stream << "GEOGRAPHY";
                                                                185  break;
                                                                187  stream << "VERSION";
                                                                188  break;
                                                                190  stream << "OPERATING_SYSTEM";
                                                                191  break;
                                                                193  stream << "HARDWARE_ARCH";
                                                                194  break;
                                                                196  stream << "LANGUAGE";
                                                                197  break;
                                                                199  stream << "MICROPHONE";
                                                                200  break;
                                                                202  stream << "COUNTRY_LIST";
                                                                203  break;
                                                                205  stream << "VEHICLE_IDENTIFIER";
                                                                206  break;
                                                                207  }
                                                                208  return stream;
                                                                209 }
                                                                210 
                                                                211 } // namespace config
                                                                212 } // namespace vehicle
                                                                213 } // namespace aace
                                                                214 
                                                                215 #endif // AACE_VEHICLE_CONFIG_VEHICLE_CONFIGURATION_H
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createOperatingCountryConfig(const std::string &operatingCountry)
                                                                +
                                                                1 /*
                                                                2  * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
                                                                3  *
                                                                4  * Licensed under the Apache License, Version 2.0 (the "License").
                                                                5  * You may not use this file except in compliance with the License.
                                                                6  * A copy of the License is located at
                                                                7  *
                                                                8  * http://aws.amazon.com/apache2.0/
                                                                9  *
                                                                10  * or in the "license" file accompanying this file. This file is distributed
                                                                11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                                                                12  * express or implied. See the License for the specific language governing
                                                                13  * permissions and limitations under the License.
                                                                14  */
                                                                15 
                                                                16 #ifndef AACE_VEHICLE_CONFIG_VEHICLE_CONFIGURATION_H
                                                                17 #define AACE_VEHICLE_CONFIG_VEHICLE_CONFIGURATION_H
                                                                18 
                                                                19 #include <utility>
                                                                20 
                                                                21 #include "AACE/Core/EngineConfiguration.h"
                                                                22 
                                                                25 namespace aace {
                                                                26 namespace vehicle {
                                                                27 namespace config {
                                                                28 
                                                                33 public:
                                                                37  enum class VehiclePropertyType {
                                                                38 
                                                                43  MAKE,
                                                                44 
                                                                49  MODEL,
                                                                50 
                                                                57  YEAR,
                                                                58 
                                                                63  TRIM,
                                                                64 
                                                                69  GEOGRAPHY,
                                                                70 
                                                                75  VERSION,
                                                                76 
                                                                82 
                                                                88 
                                                                93  LANGUAGE,
                                                                94 
                                                                99  MICROPHONE,
                                                                100 
                                                                106  COUNTRY_LIST,
                                                                107 
                                                                112  };
                                                                113 
                                                                117  using VehicleProperty = std::pair<VehiclePropertyType, std::string>;
                                                                118 
                                                                148  static std::shared_ptr<aace::core::config::EngineConfiguration> createVehicleInfoConfig(
                                                                149  const std::vector<VehicleProperty>& propertyList);
                                                                150 
                                                                166  static std::shared_ptr<aace::core::config::EngineConfiguration> createOperatingCountryConfig(
                                                                167  const std::string& operatingCountry);
                                                                168 };
                                                                169 
                                                                170 inline std::ostream& operator<<(std::ostream& stream, const VehicleConfiguration::VehiclePropertyType& state) {
                                                                171  switch (state) {
                                                                173  stream << "MAKE";
                                                                174  break;
                                                                176  stream << "MODEL";
                                                                177  break;
                                                                179  stream << "YEAR";
                                                                180  break;
                                                                182  stream << "TRIM";
                                                                183  break;
                                                                185  stream << "GEOGRAPHY";
                                                                186  break;
                                                                188  stream << "VERSION";
                                                                189  break;
                                                                191  stream << "OPERATING_SYSTEM";
                                                                192  break;
                                                                194  stream << "HARDWARE_ARCH";
                                                                195  break;
                                                                197  stream << "LANGUAGE";
                                                                198  break;
                                                                200  stream << "MICROPHONE";
                                                                201  break;
                                                                203  stream << "COUNTRY_LIST";
                                                                204  break;
                                                                206  stream << "VEHICLE_IDENTIFIER";
                                                                207  break;
                                                                208  }
                                                                209  return stream;
                                                                210 }
                                                                211 
                                                                212 } // namespace config
                                                                213 } // namespace vehicle
                                                                214 } // namespace aace
                                                                215 
                                                                216 #endif // AACE_VEHICLE_CONFIG_VEHICLE_CONFIGURATION_H
                                                                static std::shared_ptr< aace::core::config::EngineConfiguration > createOperatingCountryConfig(const std::string &operatingCountry)
                                                                @@ -82,7 +82,7 @@ -
                                                                std::pair< VehiclePropertyType, std::string > VehicleProperty
                                                                Definition: VehicleConfiguration.h:116
                                                                +
                                                                std::pair< VehiclePropertyType, std::string > VehicleProperty
                                                                Definition: VehicleConfiguration.h:117
                                                                VehiclePropertyType
                                                                Definition: VehicleConfiguration.h:37
                                                                Definition: VehicleConfiguration.h:32
                                                                @@ -91,7 +91,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/_vehicle_properties_8h_source.html b/docs/cpp/_vehicle_properties_8h_source.html index a8e14c385..83492c618 100644 --- a/docs/cpp/_vehicle_properties_8h_source.html +++ b/docs/cpp/_vehicle_properties_8h_source.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -74,7 +74,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/annotated.html b/docs/cpp/annotated.html index c0d186fa7..93e01cd70 100644 --- a/docs/cpp/annotated.html +++ b/docs/cpp/annotated.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -114,42 +114,42 @@  Nconfig  CCBLConfiguration  CCBL - NcontactUploader - CContactUploader - Ncore - Nconfig - CConfigurationFile - CEngineConfiguration - CStreamConfiguration - CEngine - CPlatformInterface - Nlocation - CLocation - CLocationProvider - Nlogger - Nconfig - CLoggerConfiguration - CLogger - CLoggerEngineInterface - Nmetrics - CMetricsUploader - CDatapoint - Nnavigation - CNavigation - Nnetwork - CNetworkInfoProvider - CNetworkInfoProviderEngineInterface - NphoneCallController - CPhoneCallController - CPhoneCallControllerEngineInterface - NpropertyManager - CPropertyManager - Nstorage - Nconfig - CStorageConfiguration - Nvehicle - Nconfig - CVehicleConfiguration + Ncore + Nconfig + CConfigurationFile + CEngineConfiguration + CStreamConfiguration + CEngine + CPlatformInterface + Nlocation + CLocation + CLocationProvider + Nlogger + Nconfig + CLoggerConfiguration + CLogger + CLoggerEngineInterface + Nmetrics + CMetricsUploader + CDatapoint + Nnavigation + Nconfig + CNavigationConfiguration + CNavigation + Nnetwork + CNetworkInfoProvider + CNetworkInfoProviderEngineInterface + NphoneCallController + CPhoneCallController + CPhoneCallControllerEngineInterface + NpropertyManager + CPropertyManager + Nstorage + Nconfig + CStorageConfiguration + Nvehicle + Nconfig + CVehicleConfiguration
                                                                @@ -157,7 +157,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1address_book_1_1_address_book_1_1_i_address_book_entries_factory-members.html b/docs/cpp/classaace_1_1address_book_1_1_address_book_1_1_i_address_book_entries_factory-members.html index fe7626571..a73dc16ec 100644 --- a/docs/cpp/classaace_1_1address_book_1_1_address_book_1_1_i_address_book_entries_factory-members.html +++ b/docs/cpp/classaace_1_1address_book_1_1_address_book_1_1_i_address_book_entries_factory-members.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -81,7 +81,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1address_book_1_1_address_book_1_1_i_address_book_entries_factory.html b/docs/cpp/classaace_1_1address_book_1_1_address_book_1_1_i_address_book_entries_factory.html index d4dc50d4a..733849a15 100644 --- a/docs/cpp/classaace_1_1address_book_1_1_address_book_1_1_i_address_book_entries_factory.html +++ b/docs/cpp/classaace_1_1address_book_1_1_address_book_1_1_i_address_book_entries_factory.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -423,7 +423,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alerts-members.html b/docs/cpp/classaace_1_1alexa_1_1_alerts-members.html index 717dac692..4ecf27746 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alerts-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alerts-members.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -82,7 +82,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alerts.html b/docs/cpp/classaace_1_1alexa_1_1_alerts.html index ae622373c..d32fd71d8 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alerts.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alerts.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -336,7 +336,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alerts_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_alerts_engine_interface-members.html index eaef29420..ec503cf3a 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alerts_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alerts_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -76,7 +76,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alerts_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_alerts_engine_interface.html index d21f2822b..fae4aee5a 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alerts_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alerts_engine_interface.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -77,7 +77,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alexa_client-members.html b/docs/cpp/classaace_1_1alexa_1_1_alexa_client-members.html index 9271dd322..669e09753 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alexa_client-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alexa_client-members.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -83,7 +83,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alexa_client.html b/docs/cpp/classaace_1_1alexa_1_1_alexa_client.html index 6d948296d..f0aac2639 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alexa_client.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alexa_client.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -420,7 +420,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alexa_client_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_alexa_client_engine_interface-members.html index 11e229256..abb499279 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alexa_client_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alexa_client_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -76,7 +76,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alexa_client_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_alexa_client_engine_interface.html index b799c5494..8f6aaa379 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alexa_client_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alexa_client_engine_interface.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -77,7 +77,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker-members.html b/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker-members.html index 6162d3896..5313366b2 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker-members.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -80,7 +80,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker.html b/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker.html index c05633ef7..2508deb07 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -258,7 +258,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker_engine_interface-members.html index 0b109e131..d3ab808ae 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -77,7 +77,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker_engine_interface.html index dca8392d1..00dc9906a 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_alexa_speaker_engine_interface.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -119,7 +119,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_audio_player-members.html b/docs/cpp/classaace_1_1alexa_1_1_audio_player-members.html index 5c9b8c31e..520172cf4 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_audio_player-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_audio_player-members.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -81,7 +81,7 @@

                                                                - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_audio_player.html b/docs/cpp/classaace_1_1alexa_1_1_audio_player.html index 63034072e..d6e8f4ad9 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_audio_player.html +++ b/docs/cpp/classaace_1_1alexa_1_1_audio_player.html @@ -23,7 +23,7 @@ Logo

                                                                Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                @@ -101,7 +101,7 @@
                                                                PlaybackController
                                                                -TemplateRuntime::renderPlayerInfo()

+TemplateRuntime::renderPlayerInfo()

Member Typedef Documentation

◆ PlayerActivity

@@ -219,7 +219,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_audio_player_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_audio_player_engine_interface-members.html index 11b0e3086..3695f289d 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_audio_player_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_audio_player_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_audio_player_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_audio_player_engine_interface.html index d25cc21c7..82807b42f 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_audio_player_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_audio_player_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -141,7 +141,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_auth_provider-members.html b/docs/cpp/classaace_1_1alexa_1_1_auth_provider-members.html index b23129ad7..55c23cf60 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_auth_provider-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_auth_provider-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,7 +82,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_auth_provider.html b/docs/cpp/classaace_1_1alexa_1_1_auth_provider.html index 41cd54ca8..ea3682eb1 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_auth_provider.html +++ b/docs/cpp/classaace_1_1alexa_1_1_auth_provider.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -253,7 +253,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_auth_provider_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_auth_provider_engine_interface-members.html index 0cad277b7..90d772153 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_auth_provider_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_auth_provider_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_auth_provider_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_auth_provider_engine_interface.html index 7c9bde31c..1dd73e11c 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_auth_provider_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_auth_provider_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -211,7 +211,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb-members.html b/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb-members.html index 9827f8110..6e9147708 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb.html b/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb.html index 92317c425..f665777a0 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb.html +++ b/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -146,7 +146,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb_engine_interface-members.html index b1349aa8c..4b3f12a17 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb_engine_interface.html index b39fec76f..6e8833808 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_do_not_disturb_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller-members.html b/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller-members.html index aa52976db..b71f6f972 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -83,7 +83,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller.html b/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller.html index 9a36cb6be..88b9e3b99 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller.html +++ b/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -278,7 +278,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller_engine_interface-members.html index 020486771..2f416ef18 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller_engine_interface.html index 143e954d2..68f9e7e6a 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_equalizer_controller_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -141,7 +141,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_authorized_player_info-members.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_authorized_player_info-members.html index 79eedbec8..d9373dea7 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_authorized_player_info-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_authorized_player_info-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_authorized_player_info.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_authorized_player_info.html index d3e182cb4..9f619e35e 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_authorized_player_info.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_authorized_player_info.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -94,7 +94,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state-members.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state-members.html index 7dab3a134..0ad6cd997 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -71,7 +71,7 @@

This is the complete list of members for aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState, including all inherited members.

- +
ExternalMediaAdapterState()=defaultaace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState
ExternalMediaAdapterState()aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState
playbackStateaace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState
sessionStateaace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html index a35f0a984..88d99af87 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -75,10 +75,10 @@ - - - + + +

Public Member Functions

ExternalMediaAdapterState ()=default
 Default constructor.
 
ExternalMediaAdapterState ()
 Default constructor.
 
@@ -98,7 +98,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state-members.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state-members.html index 14ae0dfb7..3c37ee677 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state-members.html @@ -23,7 +23,7 @@

@@ -84,24 +84,23 @@ - + - - - - - - - - + + + + + + +

Public Attributes

Alexa Auto SDK -  2.3.0 +  3.0.0
mediumURLaace::alexa::ExternalMediaAdapter::PlaybackState
playbackSourceaace::alexa::ExternalMediaAdapter::PlaybackState
playbackSourceIdaace::alexa::ExternalMediaAdapter::PlaybackState
PlaybackState()=defaultaace::alexa::ExternalMediaAdapter::PlaybackState
PlaybackState()aace::alexa::ExternalMediaAdapter::PlaybackState
repeatEnabledaace::alexa::ExternalMediaAdapter::PlaybackState
shuffleEnabledaace::alexa::ExternalMediaAdapter::PlaybackState
smallURLaace::alexa::ExternalMediaAdapter::PlaybackState
stateaace::alexa::ExternalMediaAdapter::PlaybackState
supportedOperationsaace::alexa::ExternalMediaAdapter::PlaybackState
tinyURLaace::alexa::ExternalMediaAdapter::PlaybackState
trackIdaace::alexa::ExternalMediaAdapter::PlaybackState
trackNameaace::alexa::ExternalMediaAdapter::PlaybackState
trackNumberaace::alexa::ExternalMediaAdapter::PlaybackState
trackOffsetaace::alexa::ExternalMediaAdapter::PlaybackState
typeaace::alexa::ExternalMediaAdapter::PlaybackState
supportedOperationsaace::alexa::ExternalMediaAdapter::PlaybackState
tinyURLaace::alexa::ExternalMediaAdapter::PlaybackState
trackIdaace::alexa::ExternalMediaAdapter::PlaybackState
trackNameaace::alexa::ExternalMediaAdapter::PlaybackState
trackNumberaace::alexa::ExternalMediaAdapter::PlaybackState
trackOffsetaace::alexa::ExternalMediaAdapter::PlaybackState
typeaace::alexa::ExternalMediaAdapter::PlaybackState

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html index 26e046109..d03d2e98f 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -75,84 +75,80 @@ - - - + + +

Public Member Functions

PlaybackState ()=default
 Default constructor.
 
PlaybackState ()
 Default constructor.
 
- - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -160,11 +156,11 @@ - + - +

Public Attributes

-std::string state
 The state of the default player - IDLE/STOPPED/PLAYING...
 
std::vector< SupportedPlaybackOperation > supportedOperations
 The set of states the default player can move into from its current state.
 The set of states the default player can move into from its current state. default {}.
 
std::chrono::milliseconds trackOffset
 The offset of the track in milliseconds.
 The offset of the track in milliseconds. default 0.
 
bool shuffleEnabled
 Bool to identify if shuffling is enabled or not.
 Bool to identify if shuffling is enabled or not. default false.
 
bool repeatEnabled
 Bool to identify if looping of songs is enabled or not.
 Bool to identify if looping of songs is enabled or not. default false.
 
Favorites favorites
 The favorite status {"FAVORITED"/"UNFAVORITED"/"NOT_RATED"}.
 The favorite status FAVORITED/UNFAVORITED/NOT_RATED. default NOT_RATED.
 
std::string type
 The type of the media item. For now hard-coded to ExternalMediaAdapterMusicItem.
 The type of the media item should be "ExternalMediaAdapterMusicItem". default "ExternalMediaAdapterMusicItem".
 
std::string playbackSource
 The display name for current playback context, e.g. playlist name.
 The display name for current playback context, e.g. playlist name. default "".
 
std::string playbackSourceId
 
std::string trackName
 The display name for the currently playing trackname of the track.
 The display name for the currently playing trackname of the track. default "".
 
std::string trackId
 The arbitrary identifier for currently playing trackid of the track as per the music provider.
 The arbitrary identifier for currently playing trackid of the track as per the music provider. default "".
 
std::string trackNumber
 
std::string artistName
 The display name for the currently playing artist.
 The display name for the currently playing artist. default "".
 
std::string artistId
 
std::string albumName
 The display name of the currently playing album.
 The display name of the currently playing album. default "".
 
std::string albumId
 
std::string tinyURL
 The URL for tiny cover art image resource} .
 The URL for tiny cover art image resource. default "".
 
std::string smallURL
 The URL for small cover art image resource} .
 The URL for small cover art image resource. default "".
 
std::string mediumURL
 The URL for medium cover art image resource} .
 The URL for medium cover art image resource. default "".
 
std::string largeURL
 The URL for large cover art image resource} .
 The URL for large cover art image resource. default "".
 
std::string coverId
 
 
MediaType mediaType
 The Media type enum value from {TRACK, PODCAST, STATION, AD, SAMPLE, OTHER} type of the media.
 The Media type TRACK/PODCAST/STATION/AD/SAMPLE/OTHER . default OTHER.
 
std::chrono::milliseconds duration
 Media item duration in milliseconds.
 Media item duration in milliseconds. default 0.
 

Detailed Description

@@ -181,7 +177,7 @@

-

An arbitrary identifier for current playback context as per the music provider, e.g. a URI that can be saved as a preset or queried to Music Service Provider services for additional info.

+

An arbitrary identifier for current playback context as per the music provider, e.g. a URI that can be saved as a preset or queried to Music Service Provider services for additional info. default ""

@@ -196,7 +192,7 @@

-

The display value for the number or abstract position of the currently playing track in the album or context trackNumber of the track.

+

The display value for the number or abstract position of the currently playing track in the album or context trackNumber of the track. default ""

@@ -211,7 +207,7 @@

-

An arbitrary identifier for currently playing artist as per the music provider, e.g. a URI that can be queried to MSP services for additional info.

+

An arbitrary identifier for currently playing artist as per the music provider, e.g. a URI that can be queried to MSP services for additional info. default ""

@@ -226,7 +222,7 @@

-

Arbitrary identifier for currently playing album specific to the music provider, e.g. a URI that can be queried to MSP services for additional info.

+

Arbitrary identifier for currently playing album specific to the music provider, e.g. a URI that can be queried to MSP services for additional info. default ""

@@ -241,7 +237,7 @@

-

The Arbitrary identifier for cover art image resource specific to the music provider, for retrieval from an MSP API.

+

The Arbitrary identifier for cover art image resource specific to the music provider, for retrieval from an MSP API. default ""

@@ -256,7 +252,7 @@

-

Music Service Provider name for the currently playing media item; distinct from the application identity although the two may be the same.

+

Music Service Provider name for the currently playing media item; distinct from the application identity although the two may be the same. default ""

@@ -265,7 +261,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state-members.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state-members.html index c066fc540..bc51c1cca 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@ launchedaace::alexa::ExternalMediaAdapter::SessionState loggedInaace::alexa::ExternalMediaAdapter::SessionState playerCookieaace::alexa::ExternalMediaAdapter::SessionState - SessionState()=defaultaace::alexa::ExternalMediaAdapter::SessionState + SessionState()aace::alexa::ExternalMediaAdapter::SessionState spiVersionaace::alexa::ExternalMediaAdapter::SessionState tokenRefreshIntervalaace::alexa::ExternalMediaAdapter::SessionState userNameaace::alexa::ExternalMediaAdapter::SessionState @@ -87,7 +87,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html index 289acc2ea..eb5da4aad 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -75,30 +75,30 @@ - - + +

Public Member Functions

 SessionState ()=default
 
 SessionState ()
 
- + - + - + - + - + @@ -106,28 +106,25 @@ - + - + - +

Public Attributes

std::string endpointId
 The unique device endpoint.
 The unique device endpoint. default "".
 
bool loggedIn
 Flag that identifies if a user is currently logged in or not.
 Flag that identifies if a user is currently logged in or not. default false.
 
std::string userName
 The userName of the user currently logged in via a Login directive from the AVS.
 The userName of the user currently logged in via a Login directive from the AVS. default "".
 
bool isGuest
 Flag that identifies if the user currently logged in is a guest or not.
 Flag that identifies if the user currently logged in is a guest or not. default false.
 
bool launched
 Flag that identifies if an application has been launched or not.
 Flag that identifies if an application has been launched or not. default true.
 
bool active
 
 
std::chrono::milliseconds tokenRefreshInterval
 The validity period of the token in milliseconds.
 The validity period of the token in milliseconds. default 0.
 
std::string playerCookie
 A player may declare arbitrary information for itself.
 A player may declare arbitrary information for itself. default "".
 
std::string spiVersion
 The only spiVersion that currently exists is "1.0".
 The only spiVersion that currently exists is "1.0". default "1.0".
 

Detailed Description

struct that represents the session state of a player.

Constructor & Destructor Documentation

- -

◆ SessionState()

+ +

◆ SessionState()

- - - @@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface.html index 5c72e8400..cecff75ce 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface.html @@ -23,7 +23,7 @@

@@ -84,7 +84,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info-members.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info-members.html index fb4868302..2a0cf04fd 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info-members.html @@ -23,7 +23,7 @@

@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info.html index eb81b2a8b..9d8d81a18 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info.html @@ -23,7 +23,7 @@

@@ -133,7 +133,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source-members.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source-members.html index 8875741b2..8468c7cf9 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source-members.html @@ -23,7 +23,7 @@

@@ -90,7 +90,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source.html index 177c2ace0..aeec3d32d 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source.html @@ -23,7 +23,7 @@

@@ -144,8 +144,7 @@
@@ -136,11 +133,6 @@

-default -

-
aace::alexa::ExternalMediaAdapter::SessionState::SessionState
@@ -173,7 +165,7 @@

-

The accessToken used to login a user. The access token may also be used as a bearer token if the adapter makes an authenticated Web API to the music provider.

+

The accessToken used to login a user. The access token may also be used as a bearer token if the adapter makes an authenticated Web API to the music provider. default ""

@@ -182,7 +174,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface-members.html index a5ae126ca..f2063e668 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_external_media_adapter_engine_interface-members.html @@ -23,7 +23,7 @@

Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
 

Detailed Description

-

LocalMediaSource should be extended to use Alexa to switch among media sources local to the device. It supports bluetooth, USB, FM radio, AM radio, satellite radio, audio line, and CD player sources. It enables playback for these sources via Alexa (e.g. "Alexa, play the CD player"), or via the playback controller.

-
See also
PlaybackController
+

LocalMediaSource should be extended to use Alexa to switch among media sources local to the device. It supports bluetooth, USB, FM radio, AM radio, satellite radio, audio line, and CD player sources.

Member Typedef Documentation

◆ PlayControlType

@@ -306,7 +305,7 @@

-

Occurs during playback control via voice interaction or PlaybackController interface

+

Occurs during playback control via voice interaction

Parameters
@@ -314,7 +313,6 @@

Returns
true if the platform implementation successfully handled the call, else false
-
See also
PlaybackController
@@ -516,7 +514,11 @@

Parameters

[in]controlTypePlayback control type being invoked
- +
[in]eventNameCanonical event name
[in]eventNameCanonical event name. Accepted values:
    +
  • "PlaybackStarted"
  • +
  • "PlaybackStopped"
  • +
+
@@ -563,7 +565,10 @@

Parameters
- + @@ -597,7 +602,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state-members.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state-members.html index 3132eda4a..e59abf6cb 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state-members.html @@ -23,7 +23,7 @@

@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html index 536bf5c96..bdfa61304 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html @@ -23,7 +23,7 @@

@@ -98,7 +98,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_playback_state-members.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_playback_state-members.html index ed961f752..ad3702e4f 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_playback_state-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_playback_state-members.html @@ -23,7 +23,7 @@

@@ -88,20 +88,19 @@ - - - - - - - - + + + + + + +
[in]errorNameThe name of the error
[in]errorNameThe name of the error. Accepted values:
    +
  • "INTERNAL_ERROR"
  • +
+
[in]codeThe error code
[in]descriptionThe detailed error description
[in]fataltrue if the error is fatal
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
repeatEnabledaace::alexa::LocalMediaSource::PlaybackState
shuffleEnabledaace::alexa::LocalMediaSource::PlaybackState
smallURLaace::alexa::LocalMediaSource::PlaybackState
stateaace::alexa::LocalMediaSource::PlaybackState
supportedOperationsaace::alexa::LocalMediaSource::PlaybackState
tinyURLaace::alexa::LocalMediaSource::PlaybackState
trackIdaace::alexa::LocalMediaSource::PlaybackState
trackNameaace::alexa::LocalMediaSource::PlaybackState
trackNumberaace::alexa::LocalMediaSource::PlaybackState
trackOffsetaace::alexa::LocalMediaSource::PlaybackState
typeaace::alexa::LocalMediaSource::PlaybackState
supportedOperationsaace::alexa::LocalMediaSource::PlaybackState
tinyURLaace::alexa::LocalMediaSource::PlaybackState
trackIdaace::alexa::LocalMediaSource::PlaybackState
trackNameaace::alexa::LocalMediaSource::PlaybackState
trackNumberaace::alexa::LocalMediaSource::PlaybackState
trackOffsetaace::alexa::LocalMediaSource::PlaybackState
typeaace::alexa::LocalMediaSource::PlaybackState


- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html index cb95f192f..e4658c262 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -82,77 +82,73 @@ - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -160,11 +156,11 @@ - + - +

Public Attributes

-std::string state
 The state of the default player - IDLE/STOPPED/PAUSED/PLAYING/FINISHED/FAST_FORWARDING/REWINDING/BUFFER_UNDERRUN.
 
std::vector< SupportedPlaybackOperation > supportedOperations
 The set of states the default player can move into from its current state.
 The set of states the default player can move into from its current state. default {}.
 
std::chrono::milliseconds trackOffset
 The offset of the track in milliseconds.
 The offset of the track in milliseconds. default 0.
 
bool shuffleEnabled
 Bool to identify if shuffling is enabled.
 Bool to identify if shuffling is enabled. default false.
 
bool repeatEnabled
 Bool to identify if looping of songs is enabled.
 Bool to identify if looping of songs is enabled. default false.
 
Favorites favorites
 The favorite status {"FAVORITED"/"UNFAVORITED"/"NOT_RATED"}.
 The favorite status FAVORITED/UNFAVORITED/NOT_RATED. default NOT_RATED.
 
std::string type
 The type of the media item. For now hard-coded to ExternalMediaAdapterMusicItem.
 The type of the media item should be "ExternalMediaAdapterMusicItem". default "ExternalMediaAdapterMusicItem".
 
std::string playbackSource
 The display name for current playback context, e.g. playlist name.
 The display name for current playback context, e.g. playlist name. default "".
 
std::string playbackSourceId
 
std::string trackName
 The display name for the currently playing trackname of the track.
 The display name for the currently playing trackname of the track. default "".
 
std::string trackId
 The arbitrary identifier for currently playing trackid of the track as per the music provider.
 The arbitrary identifier for currently playing trackid of the track as per the music provider. default "".
 
std::string trackNumber
 
std::string artistName
 The display name for the currently playing artist.
 The display name for the currently playing artist. default "".
 
std::string artistId
 
std::string albumName
 The display name of the currently playing album.
 The display name of the currently playing album. default "".
 
std::string albumId
 
std::string tinyURL
 The URL for tiny cover art image resource} .
 The URL for tiny cover art image resource. default "".
 
std::string smallURL
 The URL for small cover art image resource} .
 The URL for small cover art image resource. default "".
 
std::string mediumURL
 The URL for medium cover art image resource} .
 The URL for medium cover art image resource. default "".
 
std::string largeURL
 The URL for large cover art image resource} .
 The URL for large cover art image resource. default "".
 
std::string coverId
 
 
MediaType mediaType
 The Media type enum value from {TRACK, PODCAST, STATION, AD, SAMPLE, OTHER} type of the media.
 The Media type TRACK/PODCAST/STATION/AD/SAMPLE/OTHER . default OTHER.
 
std::chrono::milliseconds duration
 Media item duration in milliseconds.
 Media item duration in milliseconds. default 0.
 

Detailed Description

@@ -181,7 +177,7 @@

-

An arbitrary identifier for current playback context as per the music provider, e.g. a URI that can be saved as a preset or queried to Music Service Provider services for additional info.

+

An arbitrary identifier for current playback context as per the music provider, e.g. a URI that can be saved as a preset or queried to Music Service Provider services for additional info. default ""

@@ -196,7 +192,7 @@

-

The display value for the number or abstract position of the currently playing track in the album or context trackNumber of the track.

+

The display value for the number or abstract position of the currently playing track in the album or context trackNumber of the track. default ""

@@ -211,7 +207,7 @@

-

An arbitrary identifier for currently playing artist as per the music provider, e.g. a URI that can be queried to MSP services for additional info.

+

An arbitrary identifier for currently playing artist as per the music provider, e.g. a URI that can be queried to MSP services for additional info. default ""

@@ -226,7 +222,7 @@

-

Arbitrary identifier for currently playing album specific to the music provider, e.g. a URI that can be queried to MSP services for additional info.

+

Arbitrary identifier for currently playing album specific to the music provider, e.g. a URI that can be queried to MSP services for additional info. default ""

@@ -241,7 +237,7 @@

-

The Arbitrary identifier for cover art image resource specific to the music provider, for retrieval from an MSP API.

+

The Arbitrary identifier for cover art image resource specific to the music provider, for retrieval from an MSP API. default ""

@@ -256,7 +252,7 @@

-

Music Service Provider name for the currently playing media item; distinct from the application identity although the two may be the same.

+

Music Service Provider name for the currently playing media item; distinct from the application identity although the two may be the same. default ""

@@ -265,7 +261,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_session_state-members.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_session_state-members.html index af9725787..c8fb19cc5 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_session_state-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_session_state-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -86,7 +86,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html index 50f0d56bc..afde61262 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,23 +76,23 @@ Public Attributes

std::string endpointId - The unique device endpoint.
+ The unique device endpoint. default "".
  bool loggedIn - Flag that identifies if a user is currently logged in.
+ Flag that identifies if a user is currently logged in. default false.
  std::string userName - The username of the user currently logged in via a Login directive from Alexa.
+ The username of the user currently logged in via a Login directive from Alexa. default "".
  bool isGuest - Flag that identifies if the user currently logged in is a guest.
+ Flag that identifies if the user currently logged in is a guest. default false.
  bool launched - Flag that identifies if an application has been launched.
+ Flag that identifies if an source is currently enabled. default true.
  bool active   @@ -100,15 +100,15 @@   std::chrono::milliseconds tokenRefreshInterval - The validity period of the token in milliseconds.
+ The validity period of the token in milliseconds. default 0.
  std::vector< ContentSelectorsupportedContentSelectors - Array of content selector types supported by the player.
+ Array of content selector types supported by the player. default {}.
  std::string spiVersion - The only spiVersion that currently exists is "1.0".
+ The only spiVersion that currently exists is "1.0". default "1.0".
 

Detailed Description

@@ -125,7 +125,7 @@

-

Flag that identifies if the application is currently active. This could mean different things for different applications.

+

Flag that identifies if the application is currently active. This could mean different things for different applications. default false

@@ -140,7 +140,7 @@

-

The access token used to log in a user. The access token may also be used as a bearer token if the adapter makes an authenticated Web API to the music provider.

+

The access token used to log in a user. The access token may also be used as a bearer token if the adapter makes an authenticated Web API to the music provider. default ""

@@ -149,7 +149,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_engine_interface-members.html index 16902f005..e9e14c9e3 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_engine_interface.html index 166c1395f..4646bd61a 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_local_media_source_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_local_media_source_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_notifications-members.html b/docs/cpp/classaace_1_1alexa_1_1_notifications-members.html index e4ba9887b..6d57d9fd8 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_notifications-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_notifications-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_notifications.html b/docs/cpp/classaace_1_1alexa_1_1_notifications.html index 594c5aee5..7aab996e2 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_notifications.html +++ b/docs/cpp/classaace_1_1alexa_1_1_notifications.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -194,7 +194,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_playback_controller-members.html b/docs/cpp/classaace_1_1alexa_1_1_playback_controller-members.html index 89176a0ae..73e6106b9 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_playback_controller-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_playback_controller-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_playback_controller.html b/docs/cpp/classaace_1_1alexa_1_1_playback_controller.html index 5b3f7d057..12430110b 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_playback_controller.html +++ b/docs/cpp/classaace_1_1alexa_1_1_playback_controller.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -89,7 +89,7 @@

Detailed Description

PlaybackController should be extended to handle playback control operations such as on-platform button presses for the AudioPlayer. The Engine will respond to PlaybackController events with playback control directives on the AudioPlayer MediaPlayer.

-
Note
The TemplateRuntime::renderPlayerInfo() payload includes information about what playback control buttons should be enabled on screen with a player info display card.
+
Note
The TemplateRuntime::renderPlayerInfo() payload includes information about what playback control buttons should be enabled on screen with a player info display card.
See also
AudioPlayer

Member Typedef Documentation

@@ -187,7 +187,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_playback_controller_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_playback_controller_engine_interface-members.html index 55dc8b519..c53e9b509 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_playback_controller_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_playback_controller_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_playback_controller_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_playback_controller_engine_interface.html index 19902e2b8..7999a56ea 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_playback_controller_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_playback_controller_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -183,7 +183,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer-members.html b/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer-members.html index cc2a47302..6fbe27d1e 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -71,22 +71,19 @@

This is the complete list of members for aace::alexa::SpeechRecognizer, including all inherited members.

- - - - - - - + + + +
disableWakewordDetection()aace::alexa::SpeechRecognizer
enableWakewordDetection()aace::alexa::SpeechRecognizer
endOfSpeechDetected()aace::alexa::SpeechRecognizervirtual
holdToTalk()aace::alexa::SpeechRecognizer
Initiator typedefaace::alexa::SpeechRecognizer
isWakewordDetectionEnabled()aace::alexa::SpeechRecognizer
startCapture(Initiator initiator, uint64_t keywordBegin=UNSPECIFIED_INDEX, uint64_t keywordEnd=UNSPECIFIED_INDEX, const std::string &keyword="")aace::alexa::SpeechRecognizer
stopCapture()aace::alexa::SpeechRecognizer
tapToTalk()aace::alexa::SpeechRecognizer
wakewordDetected(const std::string &wakeword)aace::alexa::SpeechRecognizervirtual
startCapture(Initiator initiator, uint64_t keywordBegin=UNSPECIFIED_INDEX, uint64_t keywordEnd=UNSPECIFIED_INDEX, const std::string &keyword="")aace::alexa::SpeechRecognizer
stopCapture()aace::alexa::SpeechRecognizer
tapToTalk()aace::alexa::SpeechRecognizer
wakewordDetected(const std::string &wakeword)aace::alexa::SpeechRecognizervirtual

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer.html b/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer.html index cecaa6b92..11f57d814 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer.html +++ b/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -88,19 +88,13 @@   bool stopCapture ()   -bool enableWakewordDetection () -  -bool disableWakewordDetection () -  -bool isWakewordDetectionEnabled () -  virtual bool wakewordDetected (const std::string &wakeword)   virtual void endOfSpeechDetected ()  

Detailed Description

-

SpeechRecognizer should be extended to initiate voice interactions with Alexa and provide audio input to AVS.

+

SpeechRecognizer should be extended to initiate voice interactions with Alexa.

SpeechRecognizer provides interfaces for

-
Note
This method is deprecated. Use aace::propertyManager::PropertyManager::setProperty()
-

Notifies the Engine to enable the wake word engine. Wake word must be supported in the Engine to be enabled by this call.

-
Returns
true if the Engine successfully enabled wake word detection, else false
- -
-
- -

◆ disableWakewordDetection()

- -
-
- - - - - - - -
bool aace::alexa::SpeechRecognizer::disableWakewordDetection ()
-
-
Note
This method is deprecated. Use aace::propertyManager::PropertyManager::setProperty()
-

Notifies the Engine to disable the wake word engine

-
Returns
true if the Engine successfully disabled wakeword detection, else false
- -
-
- -

◆ isWakewordDetectionEnabled()

- -
-
- - - - - - - -
bool aace::alexa::SpeechRecognizer::isWakewordDetectionEnabled ()
-
-
Note
This method is deprecated. Use aace::propertyManager::PropertyManager::getProperty()
-

Checks if wake word detection is enabled in the Engine

-
Returns
true if wake word detection is enabled, else false
-
@@ -361,7 +295,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer_engine_interface-members.html index d97243829..4687a1ed6 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer_engine_interface.html index 6e345e007..0b21460b2 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_speech_recognizer_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -123,7 +123,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_speech_synthesizer-members.html b/docs/cpp/classaace_1_1alexa_1_1_speech_synthesizer-members.html index 8c2fd2cbe..883249546 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_speech_synthesizer-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_speech_synthesizer-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_speech_synthesizer.html b/docs/cpp/classaace_1_1alexa_1_1_speech_synthesizer.html index 491ac7289..3a4d6774d 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_speech_synthesizer.html +++ b/docs/cpp/classaace_1_1alexa_1_1_speech_synthesizer.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_template_runtime-members.html b/docs/cpp/classaace_1_1alexa_1_1_template_runtime-members.html index 803cd9f37..3e112f006 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_template_runtime-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_template_runtime-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -75,16 +75,14 @@ clearTemplate()=0aace::alexa::TemplateRuntimepure virtual displayCardCleared()aace::alexa::TemplateRuntime FocusState typedefaace::alexa::TemplateRuntime - renderPlayerInfo(const std::string &payload)aace::alexa::TemplateRuntimevirtual - renderPlayerInfo(const std::string &payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)aace::alexa::TemplateRuntimevirtual - renderTemplate(const std::string &payload)aace::alexa::TemplateRuntimevirtual - renderTemplate(const std::string &payload, FocusState focusState)aace::alexa::TemplateRuntimevirtual + renderPlayerInfo(const std::string &payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)=0aace::alexa::TemplateRuntimepure virtual + renderTemplate(const std::string &payload, FocusState focusState)=0aace::alexa::TemplateRuntimepure virtual

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_template_runtime.html b/docs/cpp/classaace_1_1alexa_1_1_template_runtime.html index cb2a0b561..c5b0eb2d6 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_template_runtime.html +++ b/docs/cpp/classaace_1_1alexa_1_1_template_runtime.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,16 +80,12 @@ - - - - + + - - - - + + @@ -115,8 +111,8 @@

Member Function Documentation

- -

◆ renderTemplate() [1/2]

+ +

◆ renderTemplate()

@@ -125,42 +121,7 @@

Public Member Functions

virtual void renderTemplate (const std::string &payload)
 
virtual void renderTemplate (const std::string &payload, FocusState focusState)
 
virtual void renderTemplate (const std::string &payload, FocusState focusState)=0
 
virtual void clearTemplate ()=0
 
virtual void renderPlayerInfo (const std::string &payload)
 
virtual void renderPlayerInfo (const std::string &payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)
 
virtual void renderPlayerInfo (const std::string &payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)=0
 
virtual void clearPlayerInfo ()=0
 
void displayCardCleared ()
- - - - - - -
void aace::alexa::TemplateRuntime::renderTemplate (const std::string & payload)
- - -virtual - - -
-
Deprecated:
Use renderTemplate( const std::string& payload, FocusState focusState ).
-

Provides visual metadata associated with a user request to Alexa. The platform implementation should parse the template metadata and render a display card for the user.

-

For supported templates and rendering guidelines, see https://alexa.design/DevDocRenderTemplate

-
Parameters
- - -
[in]payloadRenderable template metadata in structured JSON format
-
-
- -
- - -

◆ renderTemplate() [2/2]

- -
-
- - - @@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_template_runtime_engine_interface.html b/docs/cpp/classaace_1_1alexa_1_1_template_runtime_engine_interface.html index 975827be3..4b70d4f00 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_template_runtime_engine_interface.html +++ b/docs/cpp/classaace_1_1alexa_1_1_template_runtime_engine_interface.html @@ -23,7 +23,7 @@

@@ -111,7 +111,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1config_1_1_alexa_configuration-members.html b/docs/cpp/classaace_1_1alexa_1_1config_1_1_alexa_configuration-members.html index d1a0b7c64..8bf1c24cb 100644 --- a/docs/cpp/classaace_1_1alexa_1_1config_1_1_alexa_configuration-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1config_1_1_alexa_configuration-members.html @@ -23,7 +23,7 @@

@@ -95,7 +95,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1config_1_1_alexa_configuration.html b/docs/cpp/classaace_1_1alexa_1_1config_1_1_alexa_configuration.html index 6a9baef74..f379af0a4 100644 --- a/docs/cpp/classaace_1_1alexa_1_1config_1_1_alexa_configuration.html +++ b/docs/cpp/classaace_1_1alexa_1_1config_1_1_alexa_configuration.html @@ -23,7 +23,7 @@

@@ -839,7 +839,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1apl_1_1_a_p_l-members.html b/docs/cpp/classaace_1_1apl_1_1_a_p_l-members.html index 2879f45a3..55ad56b4a 100644 --- a/docs/cpp/classaace_1_1apl_1_1_a_p_l-members.html +++ b/docs/cpp/classaace_1_1apl_1_1_a_p_l-members.html @@ -23,7 +23,7 @@

@@ -89,7 +89,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1apl_1_1_a_p_l.html b/docs/cpp/classaace_1_1apl_1_1_a_p_l.html index dabf456f5..ff0334b7c 100644 --- a/docs/cpp/classaace_1_1apl_1_1_a_p_l.html +++ b/docs/cpp/classaace_1_1apl_1_1_a_p_l.html @@ -23,7 +23,7 @@

@@ -518,7 +518,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1apl_1_1config_1_1_a_p_l_configuration-members.html b/docs/cpp/classaace_1_1apl_1_1config_1_1_a_p_l_configuration-members.html index 417e56b10..a47b4bd74 100644 --- a/docs/cpp/classaace_1_1apl_1_1config_1_1_a_p_l_configuration-members.html +++ b/docs/cpp/classaace_1_1apl_1_1config_1_1_a_p_l_configuration-members.html @@ -23,7 +23,7 @@

@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1apl_1_1config_1_1_a_p_l_configuration.html b/docs/cpp/classaace_1_1apl_1_1config_1_1_a_p_l_configuration.html index cd030212c..68c3d6475 100644 --- a/docs/cpp/classaace_1_1apl_1_1config_1_1_a_p_l_configuration.html +++ b/docs/cpp/classaace_1_1apl_1_1config_1_1_a_p_l_configuration.html @@ -23,7 +23,7 @@

@@ -173,7 +173,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1audio_1_1_audio_output-members.html b/docs/cpp/classaace_1_1audio_1_1_audio_output-members.html index 0282232c1..422194a13 100644 --- a/docs/cpp/classaace_1_1audio_1_1_audio_output-members.html +++ b/docs/cpp/classaace_1_1audio_1_1_audio_output-members.html @@ -23,7 +23,7 @@

@@ -94,7 +94,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1audio_1_1_audio_output.html b/docs/cpp/classaace_1_1audio_1_1_audio_output.html index 4046d38ca..5d9e3e7e6 100644 --- a/docs/cpp/classaace_1_1audio_1_1_audio_output.html +++ b/docs/cpp/classaace_1_1audio_1_1_audio_output.html @@ -23,7 +23,7 @@

@@ -663,7 +663,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1audio_1_1_audio_stream_property-members.html b/docs/cpp/classaace_1_1audio_1_1_audio_stream_property-members.html index e8866a784..ebca49409 100644 --- a/docs/cpp/classaace_1_1audio_1_1_audio_stream_property-members.html +++ b/docs/cpp/classaace_1_1audio_1_1_audio_stream_property-members.html @@ -23,7 +23,7 @@

@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1audio_1_1_audio_stream_property.html b/docs/cpp/classaace_1_1audio_1_1_audio_stream_property.html index d676ee1a8..76e38c84c 100644 --- a/docs/cpp/classaace_1_1audio_1_1_audio_stream_property.html +++ b/docs/cpp/classaace_1_1audio_1_1_audio_stream_property.html @@ -23,7 +23,7 @@

@@ -256,7 +256,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1car_control_1_1_car_control-members.html b/docs/cpp/classaace_1_1car_control_1_1_car_control-members.html index 0787e7b69..a2b3648d4 100644 --- a/docs/cpp/classaace_1_1car_control_1_1_car_control-members.html +++ b/docs/cpp/classaace_1_1car_control_1_1_car_control-members.html @@ -23,7 +23,7 @@

@@ -90,7 +90,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1car_control_1_1_car_control.html b/docs/cpp/classaace_1_1car_control_1_1_car_control.html index b0d538bc4..cd2cbe674 100644 --- a/docs/cpp/classaace_1_1car_control_1_1_car_control.html +++ b/docs/cpp/classaace_1_1car_control_1_1_car_control.html @@ -23,7 +23,7 @@

@@ -740,7 +740,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1car_control_1_1config_1_1_car_control_configuration-members.html b/docs/cpp/classaace_1_1car_control_1_1config_1_1_car_control_configuration-members.html index 548dcbbee..910ce9670 100644 --- a/docs/cpp/classaace_1_1car_control_1_1config_1_1_car_control_configuration-members.html +++ b/docs/cpp/classaace_1_1car_control_1_1config_1_1_car_control_configuration-members.html @@ -23,7 +23,7 @@

@@ -88,17 +88,16 @@ - - - - - + + + +
- - - + @@ -179,7 +140,7 @@

-virtual +pure virtual

void aace::alexa::TemplateRuntime::renderTemplate virtual void aace::alexa::TemplateRuntime::renderTemplate ( const std::string &  payload,
@@ -221,46 +182,8 @@

-

◆ renderPlayerInfo() [1/2]

- -
-
- - - - - -
- - - - - - - - -
void aace::alexa::TemplateRuntime::renderPlayerInfo (const std::string & payload)
-
-virtual
-
-
Deprecated:
Use renderPlayerInfo( const std::string& payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState ).
-

Provides visual metadata associated with a user request to Alexa for audio playback. The platform implementation should parse the player info metadata and render a display card for the user.

-

For rendering guidelines, see https://amzn.to/DevDocTemplatePlayerInfo

-
Parameters
- - -
[in]payloadRenderable player info metadata in structured JSON format
-
-
-
See also
PlaybackController
-
-AudioPlayer
- -
-
- -

◆ renderPlayerInfo() [2/2]

+ +

◆ renderPlayerInfo()

@@ -370,7 +293,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1alexa_1_1_template_runtime_engine_interface-members.html b/docs/cpp/classaace_1_1alexa_1_1_template_runtime_engine_interface-members.html index c480d52ca..53c597336 100644 --- a/docs/cpp/classaace_1_1alexa_1_1_template_runtime_engine_interface-members.html +++ b/docs/cpp/classaace_1_1alexa_1_1_template_runtime_engine_interface-members.html @@ -23,7 +23,7 @@

Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
addToggleController(const std::string &instanceId, bool retrievable)=0aace::carControl::config::CarControlConfigurationpure virtual
addValue(const std::string &value)=0aace::carControl::config::CarControlConfigurationpure virtual
create()aace::carControl::config::CarControlConfigurationstatic
createControl(const std::string &controlId, const std::string &zoneId=zone::ALL)=0aace::carControl::config::CarControlConfigurationpure virtual
createEndpoint(const std::string &endpointId)=0aace::carControl::config::CarControlConfigurationpure virtual
createZone(const std::string &zoneId)=0aace::carControl::config::CarControlConfigurationpure virtual
getStream()=0aace::core::config::EngineConfigurationpure virtual
setDefaultZone(const std::string &zoneId)=0aace::carControl::config::CarControlConfigurationpure virtual
createEndpoint(const std::string &endpointId)=0aace::carControl::config::CarControlConfigurationpure virtual
createZone(const std::string &zoneId)=0aace::carControl::config::CarControlConfigurationpure virtual
getStream()=0aace::core::config::EngineConfigurationpure virtual
setDefaultZone(const std::string &zoneId)=0aace::carControl::config::CarControlConfigurationpure virtual

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1car_control_1_1config_1_1_car_control_configuration.html b/docs/cpp/classaace_1_1car_control_1_1config_1_1_car_control_configuration.html index d3e723ce0..4a7052c79 100644 --- a/docs/cpp/classaace_1_1car_control_1_1config_1_1_car_control_configuration.html +++ b/docs/cpp/classaace_1_1car_control_1_1config_1_1_car_control_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,8 +77,6 @@ Public Member Functions

virtual CarControlConfigurationcreateEndpoint (const std::string &endpointId)=0   -virtual CarControlConfigurationcreateControl (const std::string &controlId, const std::string &zoneId=zone::ALL)=0 -  virtual CarControlConfigurationaddAssetId (const std::string &assetId)=0   virtual CarControlConfigurationaddPowerController (bool retrievable)=0 @@ -188,56 +186,6 @@

Returns
CarControlConfiguration to allow chaining.
- - - -

◆ createControl()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
virtual CarControlConfiguration& aace::carControl::config::CarControlConfiguration::createControl (const std::string & controlId,
const std::string & zoneId = zone::ALL 
)
-
-pure virtual
-
-
Deprecated:
Use CarControlConfiguration::createEndpoint().
-
Note
This method is for backward compatibility. Do not use method addMembers() on a zone definition if you create endpoints with createControl(). addMembers() is only compatible with createEndpoint().
-
-Do not use both createControl() and createEndpoint() in your implementation.
-

Begin an endpoint definition using the specified endpoint ID. This creates a single entry in the "endpoints" array of 'aace.carControl'.

-
Note
Do not use the following format for the endpointId: <clientId>::<productId>::<serialNumber>::[-<extEndpoint>]. The Engine internally prepends the 3-part device prefix to your specified endpointId before sending the configuration to the cloud in an AddOrUpdateReport event. Configuring the full ID directly results in duplication and excess characters.
-
Parameters
- - - -
[in]controlIdThe unique identifier for the endpoint.
[in]zoneIdThe unique identifier of the zone the endpoint is located in. Default is "zone.all".
-
-
-
Returns
CarControlConfiguration to allow chaining.
-
@@ -876,9 +824,7 @@

Add the specified endpoint IDs to the definition of the enclosing zone.

-
Note
An endpoint ID added to this zone instance may belong to other zones as well.
-
-Do not use deprecated method createControl() to create endpoints if using this method.
+
Note
An endpoint ID added to this zone instance may belong to other zones as well.
Parameters
@@ -996,7 +942,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1cbl_1_1_c_b_l-members.html b/docs/cpp/classaace_1_1cbl_1_1_c_b_l-members.html index d0288863c..b4809aafc 100644 --- a/docs/cpp/classaace_1_1cbl_1_1_c_b_l-members.html +++ b/docs/cpp/classaace_1_1cbl_1_1_c_b_l-members.html @@ -23,7 +23,7 @@

@@ -86,7 +86,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1cbl_1_1_c_b_l.html b/docs/cpp/classaace_1_1cbl_1_1_c_b_l.html index 446d0d882..9bd0936e7 100644 --- a/docs/cpp/classaace_1_1cbl_1_1_c_b_l.html +++ b/docs/cpp/classaace_1_1cbl_1_1_c_b_l.html @@ -23,7 +23,7 @@

@@ -427,7 +427,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1cbl_1_1config_1_1_c_b_l_configuration-members.html b/docs/cpp/classaace_1_1cbl_1_1config_1_1_c_b_l_configuration-members.html index 200fa84af..4bd3a3475 100644 --- a/docs/cpp/classaace_1_1cbl_1_1config_1_1_c_b_l_configuration-members.html +++ b/docs/cpp/classaace_1_1cbl_1_1config_1_1_c_b_l_configuration-members.html @@ -23,7 +23,7 @@

@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1cbl_1_1config_1_1_c_b_l_configuration.html b/docs/cpp/classaace_1_1cbl_1_1config_1_1_c_b_l_configuration.html index 0a42516e0..fe36308a3 100644 --- a/docs/cpp/classaace_1_1cbl_1_1config_1_1_c_b_l_configuration.html +++ b/docs/cpp/classaace_1_1cbl_1_1config_1_1_c_b_l_configuration.html @@ -23,7 +23,7 @@

@@ -154,7 +154,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1contact_uploader_1_1_contact_uploader-members.html b/docs/cpp/classaace_1_1contact_uploader_1_1_contact_uploader-members.html deleted file mode 100644 index 5b5ed27a8..000000000 --- a/docs/cpp/classaace_1_1contact_uploader_1_1_contact_uploader-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -Alexa Auto SDK: Member List - - - - - - - - - -

-
-

[in]endpointIdsThe IDs of the endpoints belonging to this zone. Endpoint IDs used must correspond to endpoints created with createEndpoint().
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
Alexa Auto SDK -  2.3.0 +  3.0.0
- - - - - - -
-
Alexa Auto SDK -  2.3.0 -
-
- - - - - - - - - -
-
- - -
- -
- - - -
-
-
aace::contactUploader::ContactUploader Member List
-
- - - -
-

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

- - diff --git a/docs/cpp/classaace_1_1contact_uploader_1_1_contact_uploader.html b/docs/cpp/classaace_1_1contact_uploader_1_1_contact_uploader.html deleted file mode 100644 index 802742dbf..000000000 --- a/docs/cpp/classaace_1_1contact_uploader_1_1_contact_uploader.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - -Alexa Auto SDK: aace::contactUploader::ContactUploader Class Reference - - - - - - - - - -
-
- - - - - - - -
-
Alexa Auto SDK -  2.3.0 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
aace::contactUploader::ContactUploader Class Referenceabstract
-
-
- - - - -

-Public Types

using ContactUploaderStatus = aace::contactUploader::ContactUploaderEngineInterface::ContactUploaderStatus
 
- - - - - - - - - - - - - -

-Public Member Functions

bool addContactsBegin ()
 
bool addContactsEnd ()
 
bool addContactsCancel ()
 
bool addContact (const std::string &contact)
 
bool removeUploadedContacts ()
 
virtual void contactsUploaderStatusChanged (ContactUploaderStatus status, const std::string &info)=0
 
-

Detailed Description

-

ContactUploader should be extended to upload the local (aka native) contacts to the Alexa Cloud. ContactUploader Engine uploads the contacts to the Alexa Cloud in batches. The Engine API blocks calls, so platform implementation should make sure ContactUploader is called on a separate process other then the user interface thread.

-

The platform implementation is notified about the status of the upload by contactsUploaderStatusChanged.

-

Member Typedef Documentation

- -

◆ ContactUploaderStatus

- -
-
- - - - -
using aace::contactUploader::ContactUploader::ContactUploaderStatus = aace::contactUploader::ContactUploaderEngineInterface::ContactUploaderStatus
-
-

Describes the status of contact uploader.

See also
aace::contactUploader::ContactUploaderEngineInterface::ContactUploadStatus
- -
-
-

Member Function Documentation

- -

◆ addContactsBegin()

- -
-
- - - - - - - -
bool aace::contactUploader::ContactUploader::addContactsBegin ()
-
-

Notifies the Engine to begin the contact upload.

-

After returning true, the Engine will remove the previously uploaded contacts, if any, and the platform implementation may start calling addContact to upload the contacts.

-
Returns
true on successful start, false if previous upload is in progress or due to any internal error.
- -
-
- -

◆ addContactsEnd()

- -
-
- - - - - - - -
bool aace::contactUploader::ContactUploader::addContactsEnd ()
-
-

Notifies the Engine about the completion of the contact upload.

-

The platform implementation to call this when all the contacts are uploaded via

See also
addContact. Engine on returning true, will not accept any contact and shall notify the platform implementation
-
-contactsUploaderStatusChanged about the status of upload.
-
Returns
true on successful, false if no upload in progress or due to any internal error.
- -
-
- -

◆ addContactsCancel()

- -
-
- - - - - - - -
bool aace::contactUploader::ContactUploader::addContactsCancel ()
-
-

Notifies the Engine to cancel the upload which is in progress.

-

The platform implementation can call this anytime to cancel the contact upload when it is in progress. Engine on returning , will not accept any contact, and shall notify the platform implementation

See also
contactsUploaderStatusChanged about the cancel status and it shall also remove any partial uploaded contacts from Alexa Cloud.
-
Returns
true on successful, false if no upload in progress or due to any internal error.
- -
-
- -

◆ addContact()

- -
-
- - - - - - - - -
bool aace::contactUploader::ContactUploader::addContact (const std::string & contact)
-
-

Notifies the Engine to upload the contact.

-

Engine on returning true shall queue this contact for uploading in batches.

-
Parameters
- - -
[in]contactDetails of one contact to upload in structured JSON format. See the following payload structure and the description of each field:
)
{
"id" : "{{STRING}}",
"firstName" : "{{STRING}}",
"lastName" : "{{STRING}}",
"nickName" : "{{STRING}}"
"company" : "{{STRING}}",
"addresses" : [
{
"type" : "{{STRING}}",
"value" : "{{STRING}}",
"label" : "{{STRING}}"
}
]
}
    -
  • id (required): A unique identifier for the contact in the platform contact store.
  • -
  • firstName (optional): The first name of the contact. Limit is 1000 characters.
  • -
  • lastName (optional): The last name of the contact. Limit is 1000 characters.
  • -
  • nickName (optional): The nick name of the contact. Limit is 1000 characters.
  • -
  • company (optional): The company name of the contact. Limit is 1000 characters.
  • -
  • addresses (required): The address information of the contact. At least one address required to be specified.
  • -
  • addresses.type (required): Supported address type is "phonenumber" only. And the max supported phone number per contact is 30.
  • -
  • addresses.value (required): The phone number of the contact. Limit is 100 characters.
  • -
  • addresses.label (optional): The type value of the phone number like HOME. MOBILE, Phone1.
  • -
-
-
-
-
Returns
true if successfully queued, false when contact format is not valid, upload not started or for any internal error.
- -
-
- -

◆ removeUploadedContacts()

- -
-
- - - - - - - -
bool aace::contactUploader::ContactUploader::removeUploadedContacts ()
-
-

Notifies the Engine to remove the uploaded local contacts from the Alexa Cloud. This API to be called when the local contacts become unavailable (Example use case, Phone is disconnected from the Head Unit) and contacts were already successfully uploaded to Alexa Cloud.

-

Engine on returning true shall notify the platform implementation about the removal status of contacts via

See also
contactsUploaderStatusChanged.
-
Returns
true on successful, false if upload is in progress or due to any internal error.
- -
-
- -

◆ contactsUploaderStatusChanged()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
virtual void aace::contactUploader::ContactUploader::contactsUploaderStatusChanged (ContactUploaderStatus status,
const std::string & info 
)
-
-pure virtual
-
-

Notifies the platform implementation about status that occurred while uploading the batch of contacts or while removing the uploaded contacts.

-
Parameters
- - - -
[in]statusThe ContactUploaderStatus
[in]infoThe string with additional information.
-
-
- -
-
-
- - -
-

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - - Licensed under the Apache License, Version 2.0 - -

- - diff --git a/docs/cpp/classaace_1_1core_1_1_engine-members.html b/docs/cpp/classaace_1_1core_1_1_engine-members.html index 57748d3d5..c94f48085 100644 --- a/docs/cpp/classaace_1_1core_1_1_engine-members.html +++ b/docs/cpp/classaace_1_1core_1_1_engine-members.html @@ -23,7 +23,7 @@ Logo
Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -74,10 +74,8 @@ configure(std::initializer_list< std::shared_ptr< aace::core::config::EngineConfiguration >> configurationList)=0aace::core::Enginepure virtual configure(std::vector< std::shared_ptr< aace::core::config::EngineConfiguration >> configurationList)=0aace::core::Enginepure virtual configure(std::shared_ptr< aace::core::config::EngineConfiguration > configuration)=0aace::core::Enginepure virtual - getProperty(const std::string &key)=0aace::core::Enginepure virtual - registerPlatformInterface(std::shared_ptr< aace::core::PlatformInterface > platformInterface)=0aace::core::Enginepure virtual - registerPlatformInterface(std::initializer_list< std::shared_ptr< aace::core::PlatformInterface >> platformInterfaceList)=0aace::core::Enginepure virtual - setProperty(const std::string &key, const std::string &value)=0aace::core::Enginepure virtual + registerPlatformInterface(std::shared_ptr< aace::core::PlatformInterface > platformInterface)=0aace::core::Enginepure virtual + registerPlatformInterface(std::initializer_list< std::shared_ptr< aace::core::PlatformInterface >> platformInterfaceList)=0aace::core::Enginepure virtual shutdown()=0aace::core::Enginepure virtual start()=0aace::core::Enginepure virtual stop()=0aace::core::Enginepure virtual @@ -86,7 +84,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1_engine.html b/docs/cpp/classaace_1_1core_1_1_engine.html index a1e41aa4c..c20257593 100644 --- a/docs/cpp/classaace_1_1core_1_1_engine.html +++ b/docs/cpp/classaace_1_1core_1_1_engine.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -86,10 +86,6 @@   virtual bool shutdown ()=0   -virtual bool setProperty (const std::string &key, const std::string &value)=0 -  -virtual std::string getProperty (const std::string &key)=0 -  virtual bool registerPlatformInterface (std::shared_ptr< aace::core::PlatformInterface > platformInterface)=0   virtual bool registerPlatformInterface (std::initializer_list< std::shared_ptr< aace::core::PlatformInterface >> platformInterfaceList)=0 @@ -282,87 +278,6 @@

Engine and releases all of its resources

Returns
true if the Engine was shut down, else false
- - - -

◆ setProperty()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
virtual bool aace::core::Engine::setProperty (const std::string & key,
const std::string & value 
)
-
-pure virtual
-
-
Note
This method is deprecated. Use aace::propertyManager::PropertyManager::setProperty()
-

Sets a property value in the Engine

-
Parameters
- - - -
[in]nameThe name used by the Engine to identify the property. The property name must be one of the property constants recognized by the Engine, e.g. the properties in aace::alexa::property::AlexaProperties.h
[in]valueThe property setting
-
-
-
Returns
true if the property value was updated or set to the current setting, else false if an error occured.
- -
-
- -

◆ getProperty()

- -
-
- - - - - -
- - - - - - - - -
virtual std::string aace::core::Engine::getProperty (const std::string & key)
-
-pure virtual
-
-
Note
This method is deprecated. Use aace::propertyManager::PropertyManager::getProperty()
-

Retrieves the setting for the property identified by name from the Engine

-
Parameters
- - -
[in]nameThe name used by the Engine to identify the property. The property name must be one of the property constants recognized by the Engine, e.g. the properties in aace::alexa::property::AlexaProperties.h
-
-
-
Returns
The property value as a string, or an empty string if the property value was not found
-
@@ -444,7 +359,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1_platform_interface-members.html b/docs/cpp/classaace_1_1core_1_1_platform_interface-members.html index 298197345..6dba5fa4c 100644 --- a/docs/cpp/classaace_1_1core_1_1_platform_interface-members.html +++ b/docs/cpp/classaace_1_1core_1_1_platform_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1_platform_interface.html b/docs/cpp/classaace_1_1core_1_1_platform_interface.html index e1911182e..5bfb377a6 100644 --- a/docs/cpp/classaace_1_1core_1_1_platform_interface.html +++ b/docs/cpp/classaace_1_1core_1_1_platform_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1config_1_1_configuration_file-members.html b/docs/cpp/classaace_1_1core_1_1config_1_1_configuration_file-members.html index c66d3d581..c589b25b5 100644 --- a/docs/cpp/classaace_1_1core_1_1config_1_1_configuration_file-members.html +++ b/docs/cpp/classaace_1_1core_1_1config_1_1_configuration_file-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1config_1_1_configuration_file.html b/docs/cpp/classaace_1_1core_1_1config_1_1_configuration_file.html index 64b4a42c9..45737ca0d 100644 --- a/docs/cpp/classaace_1_1core_1_1config_1_1_configuration_file.html +++ b/docs/cpp/classaace_1_1core_1_1config_1_1_configuration_file.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -152,7 +152,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1config_1_1_engine_configuration-members.html b/docs/cpp/classaace_1_1core_1_1config_1_1_engine_configuration-members.html index f36fb1d28..41b27b952 100644 --- a/docs/cpp/classaace_1_1core_1_1config_1_1_engine_configuration-members.html +++ b/docs/cpp/classaace_1_1core_1_1config_1_1_engine_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1config_1_1_engine_configuration.html b/docs/cpp/classaace_1_1core_1_1config_1_1_engine_configuration.html index a97949e8f..57a8cb75a 100644 --- a/docs/cpp/classaace_1_1core_1_1config_1_1_engine_configuration.html +++ b/docs/cpp/classaace_1_1core_1_1config_1_1_engine_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -113,7 +113,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1config_1_1_stream_configuration-members.html b/docs/cpp/classaace_1_1core_1_1config_1_1_stream_configuration-members.html index 357aa2aad..3a4418db3 100644 --- a/docs/cpp/classaace_1_1core_1_1config_1_1_stream_configuration-members.html +++ b/docs/cpp/classaace_1_1core_1_1config_1_1_stream_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1core_1_1config_1_1_stream_configuration.html b/docs/cpp/classaace_1_1core_1_1config_1_1_stream_configuration.html index 3bf0eafc6..739c6b6b1 100644 --- a/docs/cpp/classaace_1_1core_1_1config_1_1_stream_configuration.html +++ b/docs/cpp/classaace_1_1core_1_1config_1_1_stream_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -152,7 +152,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1location_1_1_location-members.html b/docs/cpp/classaace_1_1location_1_1_location-members.html index f9bc03e1f..6359cf2bb 100644 --- a/docs/cpp/classaace_1_1location_1_1_location-members.html +++ b/docs/cpp/classaace_1_1location_1_1_location-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -86,7 +86,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1location_1_1_location.html b/docs/cpp/classaace_1_1location_1_1_location.html index 191358ca8..b82b7e6ea 100644 --- a/docs/cpp/classaace_1_1location_1_1_location.html +++ b/docs/cpp/classaace_1_1location_1_1_location.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -337,7 +337,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1location_1_1_location_provider-members.html b/docs/cpp/classaace_1_1location_1_1_location_provider-members.html index e3a8f8369..9cef78c67 100644 --- a/docs/cpp/classaace_1_1location_1_1_location_provider-members.html +++ b/docs/cpp/classaace_1_1location_1_1_location_provider-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1location_1_1_location_provider.html b/docs/cpp/classaace_1_1location_1_1_location_provider.html index 7f6dad3a3..18cb04369 100644 --- a/docs/cpp/classaace_1_1location_1_1_location_provider.html +++ b/docs/cpp/classaace_1_1location_1_1_location_provider.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -141,7 +141,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1logger_1_1_logger-members.html b/docs/cpp/classaace_1_1logger_1_1_logger-members.html index 92a31d2f4..f3415724b 100644 --- a/docs/cpp/classaace_1_1logger_1_1_logger-members.html +++ b/docs/cpp/classaace_1_1logger_1_1_logger-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -79,7 +79,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1logger_1_1_logger.html b/docs/cpp/classaace_1_1logger_1_1_logger.html index a5430394f..14398a943 100644 --- a/docs/cpp/classaace_1_1logger_1_1_logger.html +++ b/docs/cpp/classaace_1_1logger_1_1_logger.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -211,7 +211,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1logger_1_1_logger_engine_interface-members.html b/docs/cpp/classaace_1_1logger_1_1_logger_engine_interface-members.html index 669946421..03baebbe6 100644 --- a/docs/cpp/classaace_1_1logger_1_1_logger_engine_interface-members.html +++ b/docs/cpp/classaace_1_1logger_1_1_logger_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1logger_1_1_logger_engine_interface.html b/docs/cpp/classaace_1_1logger_1_1_logger_engine_interface.html index 9b4a72034..d4d8f6853 100644 --- a/docs/cpp/classaace_1_1logger_1_1_logger_engine_interface.html +++ b/docs/cpp/classaace_1_1logger_1_1_logger_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -135,7 +135,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1logger_1_1config_1_1_logger_configuration-members.html b/docs/cpp/classaace_1_1logger_1_1config_1_1_logger_configuration-members.html index bb4c22f29..27f7c34b0 100644 --- a/docs/cpp/classaace_1_1logger_1_1config_1_1_logger_configuration-members.html +++ b/docs/cpp/classaace_1_1logger_1_1config_1_1_logger_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1logger_1_1config_1_1_logger_configuration.html b/docs/cpp/classaace_1_1logger_1_1config_1_1_logger_configuration.html index 2b8f70738..316adb4ee 100644 --- a/docs/cpp/classaace_1_1logger_1_1config_1_1_logger_configuration.html +++ b/docs/cpp/classaace_1_1logger_1_1config_1_1_logger_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -344,7 +344,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader-members.html b/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader-members.html index 3f165b256..ad18ce7c5 100644 --- a/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader-members.html +++ b/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -78,7 +78,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader.html b/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader.html index 937fd768e..ae2bdd636 100644 --- a/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader.html +++ b/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -181,7 +181,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader_1_1_datapoint-members.html b/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader_1_1_datapoint-members.html index e8056234f..ffdbd9bb1 100644 --- a/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader_1_1_datapoint-members.html +++ b/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader_1_1_datapoint-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -76,7 +76,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader_1_1_datapoint.html b/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader_1_1_datapoint.html index 15b58cb84..6da3b8aa0 100644 --- a/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader_1_1_datapoint.html +++ b/docs/cpp/classaace_1_1metrics_1_1_metrics_uploader_1_1_datapoint.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1navigation_1_1_navigation-members.html b/docs/cpp/classaace_1_1navigation_1_1_navigation-members.html index 1d177e59f..295926a8b 100644 --- a/docs/cpp/classaace_1_1navigation_1_1_navigation-members.html +++ b/docs/cpp/classaace_1_1navigation_1_1_navigation-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -84,7 +84,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1navigation_1_1_navigation.html b/docs/cpp/classaace_1_1navigation_1_1_navigation.html index 4a87a1c17..4a91ae530 100644 --- a/docs/cpp/classaace_1_1navigation_1_1_navigation.html +++ b/docs/cpp/classaace_1_1navigation_1_1_navigation.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -422,7 +422,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/namespaceaace_1_1car_control_1_1config_1_1zone.html b/docs/cpp/classaace_1_1navigation_1_1config_1_1_navigation_configuration-members.html similarity index 70% rename from docs/cpp/namespaceaace_1_1car_control_1_1config_1_1zone.html rename to docs/cpp/classaace_1_1navigation_1_1config_1_1_navigation_configuration-members.html index bdfc9242c..f4892f6f0 100644 --- a/docs/cpp/namespaceaace_1_1car_control_1_1config_1_1zone.html +++ b/docs/cpp/classaace_1_1navigation_1_1config_1_1_navigation_configuration-members.html @@ -5,7 +5,7 @@ -Alexa Auto SDK: aace::carControl::config::zone Namespace Reference +Alexa Auto SDK: Member List @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -60,23 +60,24 @@
-
aace::carControl::config::zone Namespace Reference
+
aace::navigation::config::NavigationConfiguration Member List
-

Detailed Description

-
Deprecated:
Define your own zone IDs rather than using these constants. For every zone ID you use, create the corresponding zone definition with createZone(). Implicit creation of the 'default' zones listed here may be removed in a future version.
-

Default zone IDs. The zone definition for a default zone is created automatically when an endpoint in your configuration uses the zone's ID.

-
+ +

This is the complete list of members for aace::navigation::config::NavigationConfiguration, including all inherited members.

+ + +
createNavigationConfig(const std::string &providerName)aace::navigation::config::NavigationConfigurationstatic

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1navigation_1_1config_1_1_navigation_configuration.html b/docs/cpp/classaace_1_1navigation_1_1config_1_1_navigation_configuration.html new file mode 100644 index 000000000..769fa2dc1 --- /dev/null +++ b/docs/cpp/classaace_1_1navigation_1_1config_1_1_navigation_configuration.html @@ -0,0 +1,127 @@ + + + + + + + +Alexa Auto SDK: aace::navigation::config::NavigationConfiguration Class Reference + + + + + + + + + +

+
+ + + + + + + +
+
Alexa Auto SDK +  3.0.0 +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
aace::navigation::config::NavigationConfiguration Class Reference
+
+
+ + + + +

+Static Public Member Functions

static std::shared_ptr< aace::core::config::EngineConfigurationcreateNavigationConfig (const std::string &providerName)
 
+

Detailed Description

+

A factory interface for creating Navigation configuration objects

+

Member Function Documentation

+ +

◆ createNavigationConfig()

+ +
+
+ + + + + +
+ + + + + + + + +
static std::shared_ptr<aace::core::config::EngineConfiguration> aace::navigation::config::NavigationConfiguration::createNavigationConfig (const std::string & providerName)
+
+static
+
+

Factory method used to programmatically generate navigation configuration data. The data generated by this method is equivalent to providing the following JSON values in a configuration file:

+
{
"aace.navigation": {
"providerName": "<SERVICE_NAME>"
}
}
Parameters
+ + +
[in]providerNameThe navigation service provider name.
+
+
+ +
+
+
+ + +
+

+ Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 + +

+ + diff --git a/docs/cpp/classaace_1_1network_1_1_network_info_provider-members.html b/docs/cpp/classaace_1_1network_1_1_network_info_provider-members.html index 49f736e13..4584eb99b 100644 --- a/docs/cpp/classaace_1_1network_1_1_network_info_provider-members.html +++ b/docs/cpp/classaace_1_1network_1_1_network_info_provider-members.html @@ -23,7 +23,7 @@ Logo
Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1network_1_1_network_info_provider.html b/docs/cpp/classaace_1_1network_1_1_network_info_provider.html index d7a8b2721..0b21d934d 100644 --- a/docs/cpp/classaace_1_1network_1_1_network_info_provider.html +++ b/docs/cpp/classaace_1_1network_1_1_network_info_provider.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -201,7 +201,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1network_1_1_network_info_provider_engine_interface-members.html b/docs/cpp/classaace_1_1network_1_1_network_info_provider_engine_interface-members.html index 1953c2ba4..af2fc480d 100644 --- a/docs/cpp/classaace_1_1network_1_1_network_info_provider_engine_interface-members.html +++ b/docs/cpp/classaace_1_1network_1_1_network_info_provider_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1network_1_1_network_info_provider_engine_interface.html b/docs/cpp/classaace_1_1network_1_1_network_info_provider_engine_interface.html index 27b5ecfc4..8af181e8d 100644 --- a/docs/cpp/classaace_1_1network_1_1_network_info_provider_engine_interface.html +++ b/docs/cpp/classaace_1_1network_1_1_network_info_provider_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -131,7 +131,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller-members.html b/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller-members.html index bbd7f79dc..df76310c5 100644 --- a/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller-members.html +++ b/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -94,7 +94,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller.html b/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller.html index 627c149a1..f2910d780 100644 --- a/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller.html +++ b/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -652,7 +652,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface-members.html b/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface-members.html index 4d932c739..fe0c5a342 100644 --- a/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface-members.html +++ b/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -81,7 +81,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface.html b/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface.html index 3ca59ec84..37a3e4cc1 100644 --- a/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface.html +++ b/docs/cpp/classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -297,7 +297,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1property_manager_1_1_property_manager-members.html b/docs/cpp/classaace_1_1property_manager_1_1_property_manager-members.html index e8742fe1b..31a3458cb 100644 --- a/docs/cpp/classaace_1_1property_manager_1_1_property_manager-members.html +++ b/docs/cpp/classaace_1_1property_manager_1_1_property_manager-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1property_manager_1_1_property_manager.html b/docs/cpp/classaace_1_1property_manager_1_1_property_manager.html index 6fbade7d3..0bce2651d 100644 --- a/docs/cpp/classaace_1_1property_manager_1_1_property_manager.html +++ b/docs/cpp/classaace_1_1property_manager_1_1_property_manager.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -257,7 +257,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1storage_1_1config_1_1_storage_configuration-members.html b/docs/cpp/classaace_1_1storage_1_1config_1_1_storage_configuration-members.html index 51be34c91..4d079aef7 100644 --- a/docs/cpp/classaace_1_1storage_1_1config_1_1_storage_configuration-members.html +++ b/docs/cpp/classaace_1_1storage_1_1config_1_1_storage_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -77,7 +77,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1storage_1_1config_1_1_storage_configuration.html b/docs/cpp/classaace_1_1storage_1_1config_1_1_storage_configuration.html index 3b9ae0b0e..21c1f0381 100644 --- a/docs/cpp/classaace_1_1storage_1_1config_1_1_storage_configuration.html +++ b/docs/cpp/classaace_1_1storage_1_1config_1_1_storage_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -119,7 +119,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1vehicle_1_1config_1_1_vehicle_configuration-members.html b/docs/cpp/classaace_1_1vehicle_1_1config_1_1_vehicle_configuration-members.html index 2a6ad5259..7155d2dbc 100644 --- a/docs/cpp/classaace_1_1vehicle_1_1config_1_1_vehicle_configuration-members.html +++ b/docs/cpp/classaace_1_1vehicle_1_1config_1_1_vehicle_configuration-members.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -80,7 +80,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classaace_1_1vehicle_1_1config_1_1_vehicle_configuration.html b/docs/cpp/classaace_1_1vehicle_1_1config_1_1_vehicle_configuration.html index 13f0786a4..983f58379 100644 --- a/docs/cpp/classaace_1_1vehicle_1_1config_1_1_vehicle_configuration.html +++ b/docs/cpp/classaace_1_1vehicle_1_1config_1_1_vehicle_configuration.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -172,7 +172,7 @@

MICROPHONE 

The type and arrangement of microphone used by the vehicle. Example value: "7 mic array, centrally mounted"

-COUNTRY_LIST 

A comma-separated list of supported countries (ISO country codes). Example value: "US,CA"

+COUNTRY_LIST 

This API is depreciated, we do NOT recommend to continue to use this property anymore. A comma-separated list of supported countries (ISO country codes). Example value: "US,CA"

VEHICLE_IDENTIFIER 

The automaker's identifier for the vehicle.

@@ -252,7 +252,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/classes.html b/docs/cpp/classes.html index 8314926bc..c888dcb77 100644 --- a/docs/cpp/classes.html +++ b/docs/cpp/classes.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -93,7 +93,6 @@ CBL (aace::cbl)    CBLConfiguration (aace::cbl::config)    ConfigurationFile (aace::core::config)    -ContactUploader (aace::contactUploader)   
  d  
@@ -133,6 +132,7 @@ Navigation (aace::navigation)    +NavigationConfiguration (aace::navigation::config)    NetworkInfoProvider (aace::network)    NetworkInfoProviderEngineInterface (aace::network)    Notifications (aace::alexa)    @@ -144,8 +144,8 @@ PlatformInterface (aace::core)    PlaybackController (aace::alexa)    PlaybackControllerEngineInterface (aace::alexa)    -ExternalMediaAdapter::PlaybackState (aace::alexa)    LocalMediaSource::PlaybackState (aace::alexa)    +ExternalMediaAdapter::PlaybackState (aace::alexa)    PropertyManager (aace::propertyManager)   
  s  
@@ -174,7 +174,7 @@

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/deprecated.html b/docs/cpp/deprecated.html index 6476dffa8..f16eb4306 100644 --- a/docs/cpp/deprecated.html +++ b/docs/cpp/deprecated.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -66,22 +66,14 @@
Member aace::alexa::config::AlexaConfiguration::createSettingsConfig (const std::string &databaseFilePath, const std::string &locale="en-US")
-
Use AlexaConfiguration::createDeviceSettingsConfig().
-
Member aace::alexa::TemplateRuntime::renderPlayerInfo (const std::string &payload)
-
Use renderPlayerInfo( const std::string& payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState ).
-
Member aace::alexa::TemplateRuntime::renderTemplate (const std::string &payload)
-
Use renderTemplate( const std::string& payload, FocusState focusState ).
-
Member aace::carControl::config::CarControlConfiguration::createControl (const std::string &controlId, const std::string &zoneId=zone::ALL)=0
-
Use CarControlConfiguration::createEndpoint().
-
Namespace aace::carControl::config::zone
-
Define your own zone IDs rather than using these constants. For every zone ID you use, create the corresponding zone definition with createZone(). Implicit creation of the 'default' zones listed here may be removed in a future version.
+
Use AlexaConfiguration::createDeviceSettingsConfig().

- Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/functions.html b/docs/cpp/functions.html index c004873b6..4fa7cab27 100644 --- a/docs/cpp/functions.html +++ b/docs/cpp/functions.html @@ -23,7 +23,7 @@ Logo

Alexa Auto SDK -  2.3.0 +  3.0.0
@@ -92,18 +92,6 @@

- a -

  • addAssetId() : aace::carControl::config::CarControlConfiguration
  • -
  • addContact() -: aace::contactUploader::ContactUploader -
  • -
  • addContactsBegin() -: aace::contactUploader::ContactUploader -
  • -
  • addContactsCancel() -: aace::contactUploader::ContactUploader -
  • -
  • addContactsEnd() -: aace::contactUploader::ContactUploader -
  • addCustomAssetsPath() : aace::carControl::config::CarControlConfiguration
  • @@ -193,7 +181,7 @@

    - a -

      , aace::alexa::LocalMediaSource::PlaybackState
    • AudioStreamProperty() -: aace::audio::AudioStreamProperty +: aace::audio::AudioStreamProperty
    • AuthError : aace::alexa::AuthProvider @@ -300,12 +288,6 @@

      - c -

      • connectionStatusChanged() : aace::alexa::AlexaClient
      • -
      • contactsUploaderStatusChanged() -: aace::contactUploader::ContactUploader -
      • -
      • ContactUploaderStatus -: aace::contactUploader::ContactUploader -
      • ContentSelector : aace::alexa::LocalMediaSource
      • @@ -342,9 +324,6 @@

        - c -

        • createConsoleSinkConfig() : aace::logger::config::LoggerConfiguration
        • -
        • createControl() -: aace::carControl::config::CarControlConfiguration -
        • createCurlConfig() : aace::alexa::config::AlexaConfiguration
        • @@ -375,6 +354,9 @@

          - c -

          • createMiscStorageConfig() : aace::alexa::config::AlexaConfiguration
          • +
          • createNavigationConfig() +: aace::navigation::config::NavigationConfiguration +
          • createNotificationsConfig() : aace::alexa::config::AlexaConfiguration
          • @@ -427,9 +409,6 @@

            - d -

            • dialogStateChanged() : aace::alexa::AlexaClient
            • -
            • disableWakewordDetection() -: aace::alexa::SpeechRecognizer -
            • displayCardCleared() : aace::alexa::TemplateRuntime
            • @@ -448,9 +427,6 @@

              - d -

                - e -

                  -
                • enableWakewordDetection() -: aace::alexa::SpeechRecognizer -
                • endOfSpeechDetected() : aace::alexa::SpeechRecognizer
                • @@ -475,7 +451,7 @@

                  - e -

                  @@ -547,8 +523,7 @@

                  - g -

                    : aace::audio::AudioOutput
                  • getProperty() -: aace::core::Engine -, aace::propertyManager::PropertyManager +: aace::propertyManager::PropertyManager
                  • getRangeControllerValue() : aace::carControl::CarControl @@ -616,9 +591,6 @@

                    - i -

                    @@ -775,7 +747,7 @@

                    - p -

                      : aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState
                    • PlaybackState() -: aace::alexa::ExternalMediaAdapter::PlaybackState +: aace::alexa::ExternalMediaAdapter::PlaybackState
                    • playbackState : aace::alexa::LocalMediaSource::LocalMediaSourceState @@ -809,7 +781,7 @@

                      - p -

                        : aace::alexa::LocalMediaSource
                      • prepare() -: aace::audio::AudioOutput +: aace::audio::AudioOutput
                      • processActivityEvent() : aace::apl::APL @@ -836,9 +808,6 @@

                        - r -

                        • removeAllAlerts() : aace::alexa::Alerts
                        • -
                        • removeUploadedContacts() -: aace::contactUploader::ContactUploader -
                        • renderDocument() : aace::apl::APL
                        • @@ -846,10 +815,10 @@

                          - r -

                            : aace::apl::APL
                          • renderPlayerInfo() -: aace::alexa::TemplateRuntime +: aace::alexa::TemplateRuntime
                          • renderTemplate() -: aace::alexa::TemplateRuntime +: aace::alexa::TemplateRuntime
                          • repeatEnabled : aace::alexa::ExternalMediaAdapter::PlaybackState @@ -884,7 +853,7 @@

                            - s -

                              : aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState
                            • SessionState() -: aace::alexa::ExternalMediaAdapter::SessionState +: aace::alexa::ExternalMediaAdapter::SessionState
                            • sessionState : aace::alexa::LocalMediaSource::LocalMediaSourceState @@ -917,8 +886,7 @@

                              - s -

                                : aace::audio::AudioOutput
                              • setProperty() -: aace::core::Engine -, aace::propertyManager::PropertyManager +: aace::propertyManager::PropertyManager
                              • setRangeControllerValue() : aace::carControl::CarControl @@ -967,10 +935,6 @@

                                - s -

                                • startNavigation() : aace::navigation::Navigation
                                • -
                                • state -: aace::alexa::ExternalMediaAdapter::PlaybackState -, aace::alexa::LocalMediaSource::PlaybackState -
                                • stop() : aace::audio::AudioOutput , aace::core::Engine @@ -1097,7 +1061,7 @@

                                  - ~ -


                                    - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/functions_enum.html b/docs/cpp/functions_enum.html index bd8efd367..318d8366a 100644 --- a/docs/cpp/functions_enum.html +++ b/docs/cpp/functions_enum.html @@ -23,7 +23,7 @@ Logo

                                    Alexa Auto SDK -  2.3.0 +  3.0.0
                                    @@ -151,7 +151,7 @@

                                    - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/functions_func.html b/docs/cpp/functions_func.html index 4abb868c5..d2db758ad 100644 --- a/docs/cpp/functions_func.html +++ b/docs/cpp/functions_func.html @@ -23,7 +23,7 @@ Logo

                                    Alexa Auto SDK -  2.3.0 +  3.0.0
                                    @@ -84,18 +84,6 @@

                                    - a -

                                    • addAssetId() : aace::carControl::config::CarControlConfiguration
                                    • -
                                    • addContact() -: aace::contactUploader::ContactUploader -
                                    • -
                                    • addContactsBegin() -: aace::contactUploader::ContactUploader -
                                    • -
                                    • addContactsCancel() -: aace::contactUploader::ContactUploader -
                                    • -
                                    • addContactsEnd() -: aace::contactUploader::ContactUploader -
                                    • addCustomAssetsPath() : aace::carControl::config::CarControlConfiguration
                                    • @@ -160,7 +148,7 @@

                                      - a -

                                        : aace::phoneCallController::PhoneCallController
                                      • AudioStreamProperty() -: aace::audio::AudioStreamProperty +: aace::audio::AudioStreamProperty
                                      • authFailure() : aace::alexa::AuthProvider @@ -228,9 +216,6 @@

                                        - c -

                                        • connectionStatusChanged() : aace::alexa::AlexaClient
                                        • -
                                        • contactsUploaderStatusChanged() -: aace::contactUploader::ContactUploader -
                                        • create() : aace::carControl::config::CarControlConfiguration , aace::core::config::ConfigurationFile @@ -260,9 +245,6 @@

                                          - c -

                                          • createConsoleSinkConfig() : aace::logger::config::LoggerConfiguration
                                          • -
                                          • createControl() -: aace::carControl::config::CarControlConfiguration -
                                          • createCurlConfig() : aace::alexa::config::AlexaConfiguration
                                          • @@ -293,6 +275,9 @@

                                            - c -

                                            • createMiscStorageConfig() : aace::alexa::config::AlexaConfiguration
                                            • +
                                            • createNavigationConfig() +: aace::navigation::config::NavigationConfiguration +
                                            • createNotificationsConfig() : aace::alexa::config::AlexaConfiguration
                                            • @@ -336,9 +321,6 @@

                                              - d -

                                              • dialogStateChanged() : aace::alexa::AlexaClient
                                              • -
                                              • disableWakewordDetection() -: aace::alexa::SpeechRecognizer -
                                              • displayCardCleared() : aace::alexa::TemplateRuntime
                                              • @@ -349,9 +331,6 @@

                                                - d -

                                                  - e -

                                                    -
                                                  • enableWakewordDetection() -: aace::alexa::SpeechRecognizer -
                                                  • endOfSpeechDetected() : aace::alexa::SpeechRecognizer
                                                  • @@ -362,7 +341,7 @@

                                                    - e -

                                                    @@ -423,8 +402,7 @@

                                                    - g -

                                                      : aace::audio::AudioOutput
                                                    • getProperty() -: aace::core::Engine -, aace::propertyManager::PropertyManager +: aace::propertyManager::PropertyManager
                                                    • getRangeControllerValue() : aace::carControl::CarControl @@ -481,9 +459,6 @@

                                                      - i -

                                                      @@ -579,7 +554,7 @@

                                                      - p -

                                                        , aace::audio::AudioOutput
                                                      • PlaybackState() -: aace::alexa::ExternalMediaAdapter::PlaybackState +: aace::alexa::ExternalMediaAdapter::PlaybackState , aace::alexa::LocalMediaSource::PlaybackState
                                                      • playControl() @@ -622,9 +597,6 @@

                                                        - r -

                                                        • removeAllAlerts() : aace::alexa::Alerts
                                                        • -
                                                        • removeUploadedContacts() -: aace::contactUploader::ContactUploader -
                                                        • renderDocument() : aace::apl::APL
                                                        • @@ -632,10 +604,10 @@

                                                          - r -

                                                            : aace::apl::APL
                                                          • renderPlayerInfo() -: aace::alexa::TemplateRuntime +: aace::alexa::TemplateRuntime
                                                          • renderTemplate() -: aace::alexa::TemplateRuntime +: aace::alexa::TemplateRuntime
                                                          • reset() : aace::cbl::CBL @@ -663,7 +635,7 @@

                                                            - s -

                                                              : aace::apl::APL
                                                            • SessionState() -: aace::alexa::ExternalMediaAdapter::SessionState +: aace::alexa::ExternalMediaAdapter::SessionState
                                                            • setAPLMaxVersion() : aace::apl::APL @@ -693,8 +665,7 @@

                                                              - s -

                                                                : aace::audio::AudioOutput
                                                              • setProperty() -: aace::core::Engine -, aace::propertyManager::PropertyManager +: aace::propertyManager::PropertyManager
                                                              • setRangeControllerValue() : aace::carControl::CarControl @@ -785,7 +756,7 @@

                                                                - ~ -


                                                                  - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/functions_type.html b/docs/cpp/functions_type.html index 8d3cca0cd..efe666480 100644 --- a/docs/cpp/functions_type.html +++ b/docs/cpp/functions_type.html @@ -23,7 +23,7 @@ Logo

                                                                  Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                  @@ -82,9 +82,6 @@
                                                                • ConnectionState : aace::phoneCallController::PhoneCallController
                                                                • -
                                                                • ContactUploaderStatus -: aace::contactUploader::ContactUploader -
                                                                • DTMFError : aace::phoneCallController::PhoneCallController
                                                                • @@ -140,7 +137,7 @@

                                                                  - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/functions_vars.html b/docs/cpp/functions_vars.html index 4ee92805e..b84afbf46 100644 --- a/docs/cpp/functions_vars.html +++ b/docs/cpp/functions_vars.html @@ -23,7 +23,7 @@ Logo

                                                                  Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                  @@ -217,10 +217,6 @@

                                                                  - s -

                                                                    , aace::alexa::ExternalMediaAdapterEngineInterface::DiscoveredPlayerInfo , aace::alexa::LocalMediaSource::SessionState -
                                                                  • state -: aace::alexa::ExternalMediaAdapter::PlaybackState -, aace::alexa::LocalMediaSource::PlaybackState -
                                                                  • supportedContentSelectors : aace::alexa::LocalMediaSource::SessionState
                                                                  • @@ -288,7 +284,7 @@

                                                                    - v -


                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/hierarchy.html b/docs/cpp/hierarchy.html index b16664788..4ce462db5 100644 --- a/docs/cpp/hierarchy.html +++ b/docs/cpp/hierarchy.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -94,42 +94,42 @@  Caace::location::Location  Caace::logger::config::LoggerConfiguration  Caace::logger::LoggerEngineInterface - Caace::network::NetworkInfoProviderEngineInterface - Caace::phoneCallController::PhoneCallControllerEngineInterface - Caace::core::PlatformInterface - Caace::alexa::Alerts - Caace::alexa::AlexaClient - Caace::alexa::AlexaSpeaker - Caace::alexa::AudioPlayer - Caace::alexa::AuthProvider - Caace::alexa::DoNotDisturb - Caace::alexa::EqualizerController - Caace::alexa::LocalMediaSource - Caace::alexa::Notifications - Caace::alexa::PlaybackController - Caace::alexa::SpeechRecognizer - Caace::alexa::SpeechSynthesizer - Caace::alexa::TemplateRuntime - Caace::apl::APL - Caace::carControl::CarControl - Caace::cbl::CBL - Caace::contactUploader::ContactUploader - Caace::location::LocationProvider - Caace::logger::Logger - Caace::metrics::MetricsUploader - Caace::navigation::Navigation - Caace::network::NetworkInfoProvider - Caace::phoneCallController::PhoneCallController - Caace::propertyManager::PropertyManager - Caace::alexa::PlaybackControllerEngineInterface - Caace::alexa::ExternalMediaAdapter::PlaybackState - Caace::alexa::LocalMediaSource::PlaybackState - Caace::alexa::ExternalMediaAdapter::SessionState - Caace::alexa::LocalMediaSource::SessionState - Caace::alexa::SpeechRecognizerEngineInterface - Caace::storage::config::StorageConfiguration - Caace::alexa::TemplateRuntimeEngineInterface - Caace::vehicle::config::VehicleConfiguration + Caace::navigation::config::NavigationConfiguration + Caace::network::NetworkInfoProviderEngineInterface + Caace::phoneCallController::PhoneCallControllerEngineInterface + Caace::core::PlatformInterface + Caace::alexa::Alerts + Caace::alexa::AlexaClient + Caace::alexa::AlexaSpeaker + Caace::alexa::AudioPlayer + Caace::alexa::AuthProvider + Caace::alexa::DoNotDisturb + Caace::alexa::EqualizerController + Caace::alexa::LocalMediaSource + Caace::alexa::Notifications + Caace::alexa::PlaybackController + Caace::alexa::SpeechRecognizer + Caace::alexa::SpeechSynthesizer + Caace::alexa::TemplateRuntime + Caace::apl::APL + Caace::carControl::CarControl + Caace::cbl::CBL + Caace::location::LocationProvider + Caace::logger::Logger + Caace::metrics::MetricsUploader + Caace::navigation::Navigation + Caace::network::NetworkInfoProvider + Caace::phoneCallController::PhoneCallController + Caace::propertyManager::PropertyManager + Caace::alexa::PlaybackControllerEngineInterface + Caace::alexa::LocalMediaSource::PlaybackState + Caace::alexa::ExternalMediaAdapter::PlaybackState + Caace::alexa::ExternalMediaAdapter::SessionState + Caace::alexa::LocalMediaSource::SessionState + Caace::alexa::SpeechRecognizerEngineInterface + Caace::storage::config::StorageConfiguration + Caace::alexa::TemplateRuntimeEngineInterface + Caace::vehicle::config::VehicleConfiguration @@ -137,7 +137,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/index.html b/docs/cpp/index.html index d40da9553..20f695574 100644 --- a/docs/cpp/index.html +++ b/docs/cpp/index.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -72,7 +72,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/namespaceaace.html b/docs/cpp/namespaceaace.html index 3a676ca2a..771c5e3d0 100644 --- a/docs/cpp/namespaceaace.html +++ b/docs/cpp/namespaceaace.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -79,7 +79,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/namespaceaace_1_1alexa.html b/docs/cpp/namespaceaace_1_1alexa.html index 5bdfb0a4c..03896393c 100644 --- a/docs/cpp/namespaceaace_1_1alexa.html +++ b/docs/cpp/namespaceaace_1_1alexa.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -316,7 +316,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/namespaceaace_1_1car_control_1_1config_1_1action.html b/docs/cpp/namespaceaace_1_1car_control_1_1config_1_1action.html index 08b488604..161626bf7 100644 --- a/docs/cpp/namespaceaace_1_1car_control_1_1config_1_1action.html +++ b/docs/cpp/namespaceaace_1_1car_control_1_1config_1_1action.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -77,7 +77,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/namespacemembers.html b/docs/cpp/namespacemembers.html index 9ebee43c9..cf13b2a0e 100644 --- a/docs/cpp/namespacemembers.html +++ b/docs/cpp/namespacemembers.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -79,7 +79,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/namespacemembers_enum.html b/docs/cpp/namespacemembers_enum.html index 6a0d59954..18513e41e 100644 --- a/docs/cpp/namespacemembers_enum.html +++ b/docs/cpp/namespacemembers_enum.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -73,7 +73,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/namespacemembers_func.html b/docs/cpp/namespacemembers_func.html index f5c1effbb..9bb553bde 100644 --- a/docs/cpp/namespacemembers_func.html +++ b/docs/cpp/namespacemembers_func.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -73,7 +73,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/pages.html b/docs/cpp/pages.html index 6a00f0413..29b42c8ee 100644 --- a/docs/cpp/pages.html +++ b/docs/cpp/pages.html @@ -23,7 +23,7 @@ Logo

                                                                      Alexa Auto SDK -  2.3.0 +  3.0.0
                                                                      @@ -74,7 +74,7 @@

                                                                      - Alexa Auto SDK 2.3.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + Alexa Auto SDK 3.0.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 diff --git a/docs/cpp/search/all_0.js b/docs/cpp/search/all_0.js index 39a9a715e..c2eb61c37 100644 --- a/docs/cpp/search/all_0.js +++ b/docs/cpp/search/all_0.js @@ -13,10 +13,6 @@ var searchData= ['addactionturnoff',['addActionTurnOff',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a2db0169e27a32bfddf2e7d54971ed121',1,'aace::carControl::config::CarControlConfiguration']]], ['addactionturnon',['addActionTurnOn',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#aa590e83d2ea0c72701d97efe6419ed5e',1,'aace::carControl::config::CarControlConfiguration']]], ['addassetid',['addAssetId',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#ae1038896bbf114e0ee90c50082e3dad4',1,'aace::carControl::config::CarControlConfiguration']]], - ['addcontact',['addContact',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a2b69454f9157b11c7e022d0e3d554671',1,'aace::contactUploader::ContactUploader']]], - ['addcontactsbegin',['addContactsBegin',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a542e1b6b49003f9f550178c8ecfb50a6',1,'aace::contactUploader::ContactUploader']]], - ['addcontactscancel',['addContactsCancel',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a83daa6d9078fd4a662afb6deb102c7bf',1,'aace::contactUploader::ContactUploader']]], - ['addcontactsend',['addContactsEnd',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a4ed1fe8a3b3eff4988c24b5187cf0298',1,'aace::contactUploader::ContactUploader']]], ['addcustomassetspath',['addCustomAssetsPath',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#ae9bc03e46eaf50a6d6afbd90ee13064a',1,'aace::carControl::config::CarControlConfiguration']]], ['adddefaultassetspath',['addDefaultAssetsPath',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a67b0af557aa409231020239fa7960255',1,'aace::carControl::config::CarControlConfiguration']]], ['addmembers',['addMembers',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a1aa86c1e0502e89b386bc6eabf2d8b61',1,'aace::carControl::config::CarControlConfiguration']]], @@ -73,6 +69,5 @@ var searchData= ['authproviderengineinterface',['AuthProviderEngineInterface',['../classaace_1_1alexa_1_1_auth_provider_engine_interface.html',1,'aace::alexa']]], ['authstate',['AuthState',['../classaace_1_1alexa_1_1_auth_provider_engine_interface.html#abe4ab37548dfaf7744afe9078e1792ec',1,'aace::alexa::AuthProviderEngineInterface::AuthState()'],['../classaace_1_1alexa_1_1_auth_provider.html#a703c765e6cb7c747a9fc6a12d81b7ef4',1,'aace::alexa::AuthProvider::AuthState()']]], ['authstatechanged',['authStateChanged',['../classaace_1_1alexa_1_1_alexa_client.html#a6b469f0511ffdea1083044f0fe9f421e',1,'aace::alexa::AlexaClient::authStateChanged()'],['../classaace_1_1alexa_1_1_auth_provider.html#a38e948a90a4e5ef46e2bdc34eb0b19cf',1,'aace::alexa::AuthProvider::authStateChanged()']]], - ['alexa_20auto_20sdk_20for_20c_2b_2b',['Alexa Auto SDK for C++',['../index.html',1,'']]], - ['zone',['zone',['../namespaceaace_1_1car_control_1_1config_1_1zone.html',1,'aace::carControl::config']]] + ['alexa_20auto_20sdk_20for_20c_2b_2b',['Alexa Auto SDK for C++',['../index.html',1,'']]] ]; diff --git a/docs/cpp/search/all_2.js b/docs/cpp/search/all_2.js index e7d42bce0..a15402661 100644 --- a/docs/cpp/search/all_2.js +++ b/docs/cpp/search/all_2.js @@ -39,9 +39,6 @@ var searchData= ['connectionstatechanged',['connectionStateChanged',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#acaa5a6e69479b162c2783134f62ab43c',1,'aace::phoneCallController::PhoneCallController']]], ['connectionstatus',['ConnectionStatus',['../classaace_1_1alexa_1_1_alexa_client.html#a375451d4d9cb626701ac8cbaa02ffbe2',1,'aace::alexa::AlexaClient']]], ['connectionstatuschanged',['connectionStatusChanged',['../classaace_1_1alexa_1_1_alexa_client.html#a70491bf5bb02e0fce4d8fcf2bc206261',1,'aace::alexa::AlexaClient']]], - ['contactsuploaderstatuschanged',['contactsUploaderStatusChanged',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a739b78e1378111c68e5df42e0cc3f1e4',1,'aace::contactUploader::ContactUploader']]], - ['contactuploader',['ContactUploader',['../classaace_1_1contact_uploader_1_1_contact_uploader.html',1,'aace::contactUploader']]], - ['contactuploaderstatus',['ContactUploaderStatus',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#ace68da7d67191dbd4df87a8a7274dcf5',1,'aace::contactUploader::ContactUploader']]], ['contentselector',['ContentSelector',['../classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d',1,'aace::alexa::LocalMediaSource']]], ['counter',['COUNTER',['../classaace_1_1metrics_1_1_metrics_uploader.html#a67e6fa51b9ef4b8a9b293870363eb4b5a125e831262b4dbbd68c6878c5d3759f6',1,'aace::metrics::MetricsUploader']]], ['country_5flist',['COUNTRY_LIST',['../classaace_1_1vehicle_1_1config_1_1_vehicle_configuration.html#a6aa7ee80198586f3a51d0c0f8fb542cfaf5fc387fb3473b27dd6aa5455d6d5d83',1,'aace::vehicle::config::VehicleConfiguration']]], @@ -55,7 +52,6 @@ var searchData= ['createcbluserprofileconfig',['createCBLUserProfileConfig',['../classaace_1_1cbl_1_1config_1_1_c_b_l_configuration.html#a5a70191fa2181583b169248fa94dcecb',1,'aace::cbl::config::CBLConfiguration']]], ['createcertifiedsenderconfig',['createCertifiedSenderConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a5d38a056525d20aad2114677d8d461ae',1,'aace::alexa::config::AlexaConfiguration']]], ['createconsolesinkconfig',['createConsoleSinkConfig',['../classaace_1_1logger_1_1config_1_1_logger_configuration.html#ae6aa1d5ddd52e173073d501861e6835a',1,'aace::logger::config::LoggerConfiguration']]], - ['createcontrol',['createControl',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a0a9236ba93a3b3c0c1e85900f40af697',1,'aace::carControl::config::CarControlConfiguration']]], ['createcurlconfig',['createCurlConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a2012a3f45f54d16f5d8f260bb16c49c1',1,'aace::alexa::config::AlexaConfiguration']]], ['createdeviceinfoconfig',['createDeviceInfoConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#aceaa112768e13cd30722766cc9d1a2c6',1,'aace::alexa::config::AlexaConfiguration']]], ['createdevicesettingsconfig',['createDeviceSettingsConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a8e556b5044008752d356c6e72b095df5',1,'aace::alexa::config::AlexaConfiguration']]], @@ -66,6 +62,7 @@ var searchData= ['createlocalstorageconfig',['createLocalStorageConfig',['../classaace_1_1storage_1_1config_1_1_storage_configuration.html#a1619cb1c7be8fcb913454e16ceb49a1d',1,'aace::storage::config::StorageConfiguration']]], ['createloggerruleconfig',['createLoggerRuleConfig',['../classaace_1_1logger_1_1config_1_1_logger_configuration.html#a9875f58897e59ce67932f1c4f9edf085',1,'aace::logger::config::LoggerConfiguration']]], ['createmiscstorageconfig',['createMiscStorageConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a500f37306f03ef987e8d014cb7b64470',1,'aace::alexa::config::AlexaConfiguration']]], + ['createnavigationconfig',['createNavigationConfig',['../classaace_1_1navigation_1_1config_1_1_navigation_configuration.html#ab984104f14947c042b67c8ed17b55364',1,'aace::navigation::config::NavigationConfiguration']]], ['createnotificationsconfig',['createNotificationsConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a5205a15e4b9f8596a6aff6e4c26595fa',1,'aace::alexa::config::AlexaConfiguration']]], ['createoperatingcountryconfig',['createOperatingCountryConfig',['../classaace_1_1vehicle_1_1config_1_1_vehicle_configuration.html#a469681a9d4866c0e898f512fe98eb8ab',1,'aace::vehicle::config::VehicleConfiguration']]], ['createsettingsconfig',['createSettingsConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a08aee7c879ef040c17d32bd9a781a940',1,'aace::alexa::config::AlexaConfiguration']]], diff --git a/docs/cpp/search/all_3.js b/docs/cpp/search/all_3.js index f80a17a20..2f817ee23 100644 --- a/docs/cpp/search/all_3.js +++ b/docs/cpp/search/all_3.js @@ -11,7 +11,6 @@ var searchData= ['dialing',['DIALING',['../classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface.html#aca981e480f3b8704f5c50c6f859b8432a6c9becac74f2d56eab5eeea8d8fb4b67',1,'aace::phoneCallController::PhoneCallControllerEngineInterface']]], ['dialogstate',['DialogState',['../classaace_1_1alexa_1_1_alexa_client.html#a5f3b9fc09843bc68b5bb9f0ed6b8586e',1,'aace::alexa::AlexaClient']]], ['dialogstatechanged',['dialogStateChanged',['../classaace_1_1alexa_1_1_alexa_client.html#a0c91642e76d6501af40ef878f12d7bf4',1,'aace::alexa::AlexaClient']]], - ['disablewakeworddetection',['disableWakewordDetection',['../classaace_1_1alexa_1_1_speech_recognizer.html#ae8655a4ecaab90892d240d5f21602e86',1,'aace::alexa::SpeechRecognizer']]], ['disconnected',['DISCONNECTED',['../classaace_1_1alexa_1_1_alexa_client.html#a375451d4d9cb626701ac8cbaa02ffbe2a99c8ce56e7ab246445d3b134724428f3',1,'aace::alexa::AlexaClient::DISCONNECTED()'],['../classaace_1_1network_1_1_network_info_provider_engine_interface.html#a749ba056220c9a3bb9ed9e100fc8f0d1a99c8ce56e7ab246445d3b134724428f3',1,'aace::network::NetworkInfoProviderEngineInterface::DISCONNECTED()'],['../classaace_1_1phone_call_controller_1_1_phone_call_controller_engine_interface.html#a811798c0331570b684648f0cd71a82a8a99c8ce56e7ab246445d3b134724428f3',1,'aace::phoneCallController::PhoneCallControllerEngineInterface::DISCONNECTED()']]], ['disconnecting',['DISCONNECTING',['../classaace_1_1network_1_1_network_info_provider_engine_interface.html#a749ba056220c9a3bb9ed9e100fc8f0d1aad793e31fab5703fc5b990cf40f8a585',1,'aace::network::NetworkInfoProviderEngineInterface']]], ['discoveredplayerinfo',['DiscoveredPlayerInfo',['../classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info.html',1,'aace::alexa::ExternalMediaAdapterEngineInterface']]], diff --git a/docs/cpp/search/all_4.js b/docs/cpp/search/all_4.js index 3ad10afd8..e03c6c932 100644 --- a/docs/cpp/search/all_4.js +++ b/docs/cpp/search/all_4.js @@ -1,6 +1,5 @@ var searchData= [ - ['enablewakeworddetection',['enableWakewordDetection',['../classaace_1_1alexa_1_1_speech_recognizer.html#ac8aa31ea0dcceddf5c7628a72cf58475',1,'aace::alexa::SpeechRecognizer']]], ['endofspeechdetected',['endOfSpeechDetected',['../classaace_1_1alexa_1_1_speech_recognizer.html#a7e4d179fd39031d3a898466841905748',1,'aace::alexa::SpeechRecognizer']]], ['endpointid',['endpointId',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html#ada43dff94ace3219b86960616e22558f',1,'aace::alexa::ExternalMediaAdapter::SessionState::endpointId()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a8e331ee5d60fd3d034acddccfd73f87c',1,'aace::alexa::LocalMediaSource::SessionState::endpointId()']]], ['engine',['Engine',['../classaace_1_1core_1_1_engine.html',1,'aace::core']]], @@ -16,5 +15,5 @@ var searchData= ['expecting',['EXPECTING',['../classaace_1_1alexa_1_1_alexa_client.html#a5f3b9fc09843bc68b5bb9f0ed6b8586eabd416d769c9ba62060c04ae8455e98d2',1,'aace::alexa::AlexaClient']]], ['expired',['EXPIRED',['../classaace_1_1alexa_1_1_auth_provider_engine_interface.html#abe4ab37548dfaf7744afe9078e1792eca38afd7ae34bd5e3e6fc170d8b09178a3',1,'aace::alexa::AuthProviderEngineInterface']]], ['externalmediaadapterengineinterface',['ExternalMediaAdapterEngineInterface',['../classaace_1_1alexa_1_1_external_media_adapter_engine_interface.html',1,'aace::alexa']]], - ['externalmediaadapterstate',['ExternalMediaAdapterState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html#a06ca04ec7f2b9a388144cd451261c967',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState::ExternalMediaAdapterState()']]] + ['externalmediaadapterstate',['ExternalMediaAdapterState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html#a5d3afec4f892bcf48396fb725d137017',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState::ExternalMediaAdapterState()']]] ]; diff --git a/docs/cpp/search/all_6.js b/docs/cpp/search/all_6.js index 62ccec717..ab7ff0bd5 100644 --- a/docs/cpp/search/all_6.js +++ b/docs/cpp/search/all_6.js @@ -19,7 +19,7 @@ var searchData= ['getplayerduration',['getPlayerDuration',['../classaace_1_1alexa_1_1_audio_player.html#a79508257fa720e5fe633c5b76c0ff911',1,'aace::alexa::AudioPlayer']]], ['getplayerposition',['getPlayerPosition',['../classaace_1_1alexa_1_1_audio_player.html#aa2b61c4887d9bca905914559b23fcf38',1,'aace::alexa::AudioPlayer']]], ['getposition',['getPosition',['../classaace_1_1audio_1_1_audio_output.html#a04ff4005d0f36300bc54421906b89299',1,'aace::audio::AudioOutput']]], - ['getproperty',['getProperty',['../classaace_1_1core_1_1_engine.html#abab5399f2030131a54f1ba93e4981508',1,'aace::core::Engine::getProperty()'],['../classaace_1_1property_manager_1_1_property_manager.html#a1892fedbf2193e03f040758207a4dea6',1,'aace::propertyManager::PropertyManager::getProperty()']]], + ['getproperty',['getProperty',['../classaace_1_1property_manager_1_1_property_manager.html#a1892fedbf2193e03f040758207a4dea6',1,'aace::propertyManager::PropertyManager']]], ['getrangecontrollervalue',['getRangeControllerValue',['../classaace_1_1car_control_1_1_car_control.html#a37f2556dd5b73fe6a098679b9cce60d5',1,'aace::carControl::CarControl']]], ['getrefreshtoken',['getRefreshToken',['../classaace_1_1cbl_1_1_c_b_l.html#ae957213803bd5ca4a6a19d4133160963',1,'aace::cbl::CBL']]], ['getsource',['getSource',['../classaace_1_1alexa_1_1_local_media_source.html#a7876023493487be41be9044c198dfba2',1,'aace::alexa::LocalMediaSource']]], diff --git a/docs/cpp/search/all_8.js b/docs/cpp/search/all_8.js index a91a0d762..b6422b89e 100644 --- a/docs/cpp/search/all_8.js +++ b/docs/cpp/search/all_8.js @@ -16,6 +16,5 @@ var searchData= ['isguest',['isGuest',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html#a1ca861f8fc670ade16dbcfc3209d504e',1,'aace::alexa::ExternalMediaAdapter::SessionState::isGuest()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#acf3bb6f9c5201741392a1387fbe774bb',1,'aace::alexa::LocalMediaSource::SessionState::isGuest()']]], ['ispowercontrolleron',['isPowerControllerOn',['../classaace_1_1car_control_1_1_car_control.html#a9a094718c3c42f12adae6adfb8a4cee2',1,'aace::carControl::CarControl']]], ['istogglecontrolleron',['isToggleControllerOn',['../classaace_1_1car_control_1_1_car_control.html#a122710f35e288fb86c40564b782ebc7d',1,'aace::carControl::CarControl']]], - ['isvalid',['isValid',['../classaace_1_1location_1_1_location.html#a2dd9abb6c2c005ca822c29d14fefada4',1,'aace::location::Location']]], - ['iswakeworddetectionenabled',['isWakewordDetectionEnabled',['../classaace_1_1alexa_1_1_speech_recognizer.html#a04744304f5997c94d4e76d2eb5f38660',1,'aace::alexa::SpeechRecognizer']]] + ['isvalid',['isValid',['../classaace_1_1location_1_1_location.html#a2dd9abb6c2c005ca822c29d14fefada4',1,'aace::location::Location']]] ]; diff --git a/docs/cpp/search/all_b.js b/docs/cpp/search/all_b.js index ae27b5126..9d05cd479 100644 --- a/docs/cpp/search/all_b.js +++ b/docs/cpp/search/all_b.js @@ -1,6 +1,7 @@ var searchData= [ ['navigation',['Navigation',['../classaace_1_1navigation_1_1_navigation.html',1,'aace::navigation']]], + ['navigationconfiguration',['NavigationConfiguration',['../classaace_1_1navigation_1_1config_1_1_navigation_configuration.html',1,'aace::navigation::config']]], ['navigationerror',['navigationError',['../classaace_1_1navigation_1_1_navigation.html#a391d9b1c3de2790bdf1e5d7845c22d05',1,'aace::navigation::Navigation']]], ['navigationevent',['navigationEvent',['../classaace_1_1navigation_1_1_navigation.html#a0593c914f53afaa11c2ccaca8216f17f',1,'aace::navigation::Navigation']]], ['networkinfoprovider',['NetworkInfoProvider',['../classaace_1_1network_1_1_network_info_provider.html',1,'aace::network']]], diff --git a/docs/cpp/search/all_d.js b/docs/cpp/search/all_d.js index 3d231b3b9..e6108ec26 100644 --- a/docs/cpp/search/all_d.js +++ b/docs/cpp/search/all_d.js @@ -1,7 +1,7 @@ var searchData= [ ['past_5fdue',['PAST_DUE',['../classaace_1_1alexa_1_1_alerts.html#a81cccb7e632cf26b7903d9c9c168fb22a560bb2d9ea9002aa8c70a4462ca6c304',1,'aace::alexa::Alerts']]], - ['pause',['pause',['../classaace_1_1audio_1_1_audio_output.html#ab0a3cb1163e4a2b4fa6ed0fbb54bdc4e',1,'aace::audio::AudioOutput::pause()'],['../classaace_1_1alexa_1_1_playback_controller_engine_interface.html#a3b32eb7e1dbfad9ca06089fd174634f4a291554596c183e837f0a6bec3767c891',1,'aace::alexa::PlaybackControllerEngineInterface::PAUSE()']]], + ['pause',['PAUSE',['../classaace_1_1alexa_1_1_playback_controller_engine_interface.html#a3b32eb7e1dbfad9ca06089fd174634f4a291554596c183e837f0a6bec3767c891',1,'aace::alexa::PlaybackControllerEngineInterface::PAUSE()'],['../classaace_1_1audio_1_1_audio_output.html#ab0a3cb1163e4a2b4fa6ed0fbb54bdc4e',1,'aace::audio::AudioOutput::pause()']]], ['paused',['PAUSED',['../namespaceaace_1_1alexa.html#a37ae7d120b16c200f504fbb646c98a0aa99b2439e63f73ad515f7ab2447a80673',1,'aace::alexa']]], ['pending',['PENDING',['../classaace_1_1alexa_1_1_alexa_client.html#a375451d4d9cb626701ac8cbaa02ffbe2ac69f06e1a9b016d133907b4e5f5864d2',1,'aace::alexa::AlexaClient']]], ['phonecallcontroller',['PhoneCallController',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html',1,'aace::phoneCallController']]], @@ -14,7 +14,7 @@ var searchData= ['playbackcontrollerengineinterface',['PlaybackControllerEngineInterface',['../classaace_1_1alexa_1_1_playback_controller_engine_interface.html',1,'aace::alexa']]], ['playbacksource',['playbackSource',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#ab65edcec57ea9126b9936b68f3694509',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::playbackSource()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ae5c486e6d4c79537597a8430d099b2dd',1,'aace::alexa::LocalMediaSource::PlaybackState::playbackSource()']]], ['playbacksourceid',['playbackSourceId',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#a1b0f4fbadc859257a4c2300f41494b16',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::playbackSourceId()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a42ff0f9ba02eff868248aa688db77221',1,'aace::alexa::LocalMediaSource::PlaybackState::playbackSourceId()']]], - ['playbackstate',['PlaybackState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html',1,'aace::alexa::ExternalMediaAdapter::PlaybackState'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html',1,'aace::alexa::LocalMediaSource::PlaybackState'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html#aadbf68e90a1b84c5714dc432cf2c7dbf',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState::playbackState()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a22cb98bddfdd580cc71069d3167a58a5',1,'aace::alexa::LocalMediaSource::LocalMediaSourceState::playbackState()'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#a0c96f884948baca3bd941afbb371aa15',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::PlaybackState()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a45f06189dbaaf23939994d0d921a6cb3',1,'aace::alexa::LocalMediaSource::PlaybackState::PlaybackState()']]], + ['playbackstate',['PlaybackState',['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html',1,'aace::alexa::LocalMediaSource::PlaybackState'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html',1,'aace::alexa::ExternalMediaAdapter::PlaybackState'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#aeac23f8b8544eff187f8cc29c43a254e',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::PlaybackState()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a45f06189dbaaf23939994d0d921a6cb3',1,'aace::alexa::LocalMediaSource::PlaybackState::PlaybackState()'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html#aadbf68e90a1b84c5714dc432cf2c7dbf',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState::playbackState()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a22cb98bddfdd580cc71069d3167a58a5',1,'aace::alexa::LocalMediaSource::LocalMediaSourceState::playbackState()']]], ['playbacktoggle',['PlaybackToggle',['../classaace_1_1alexa_1_1_playback_controller_engine_interface.html#a990f517d423450b712fcfd0488403e8c',1,'aace::alexa::PlaybackControllerEngineInterface::PlaybackToggle()'],['../classaace_1_1alexa_1_1_playback_controller.html#a15781abf2231c9b5de41444a27844a7d',1,'aace::alexa::PlaybackController::PlaybackToggle()']]], ['playcontrol',['playControl',['../classaace_1_1alexa_1_1_local_media_source.html#ad541a6f60242ad371b453570e1e8da4d',1,'aace::alexa::LocalMediaSource']]], ['playcontroltype',['PlayControlType',['../classaace_1_1alexa_1_1_local_media_source.html#aea96a47b1442b4c5fa2906b2e0d9a4a9',1,'aace::alexa::LocalMediaSource']]], diff --git a/docs/cpp/search/all_e.js b/docs/cpp/search/all_e.js index 5ec9bedf3..425037502 100644 --- a/docs/cpp/search/all_e.js +++ b/docs/cpp/search/all_e.js @@ -8,11 +8,10 @@ var searchData= ['refreshing_5ftoken',['REFRESHING_TOKEN',['../classaace_1_1cbl_1_1_c_b_l.html#a9d56e447b5e1fa27a79e9c0932af2babab0c63d28df32e59e41939aee63757077',1,'aace::cbl::CBL']]], ['registerplatforminterface',['registerPlatformInterface',['../classaace_1_1core_1_1_engine.html#abab09ff31a4c13f8841bc124d87c24eb',1,'aace::core::Engine::registerPlatformInterface(std::shared_ptr< aace::core::PlatformInterface > platformInterface)=0'],['../classaace_1_1core_1_1_engine.html#a5b1e5999b008bee74249d162c95be7c7',1,'aace::core::Engine::registerPlatformInterface(std::initializer_list< std::shared_ptr< aace::core::PlatformInterface >> platformInterfaceList)=0']]], ['removeallalerts',['removeAllAlerts',['../classaace_1_1alexa_1_1_alerts.html#a48eea8459c5a5c42819fb4fcd155ff89',1,'aace::alexa::Alerts']]], - ['removeuploadedcontacts',['removeUploadedContacts',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a3fa5b4ad76872e3f3aa39d5c54dbf7f6',1,'aace::contactUploader::ContactUploader']]], ['renderdocument',['renderDocument',['../classaace_1_1apl_1_1_a_p_l.html#a605da3ae66ca91baa83f71442e0c4273',1,'aace::apl::APL']]], ['renderdocumentresult',['renderDocumentResult',['../classaace_1_1apl_1_1_a_p_l.html#a42ad9effa8cb1ae3ca95fa65c3378993',1,'aace::apl::APL']]], - ['renderplayerinfo',['renderPlayerInfo',['../classaace_1_1alexa_1_1_template_runtime.html#a1afe1f3ac8d283d81d83cc86c87ae630',1,'aace::alexa::TemplateRuntime::renderPlayerInfo(const std::string &payload)'],['../classaace_1_1alexa_1_1_template_runtime.html#a43b20a5021af05074ed7fb5bc6b04171',1,'aace::alexa::TemplateRuntime::renderPlayerInfo(const std::string &payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)']]], - ['rendertemplate',['renderTemplate',['../classaace_1_1alexa_1_1_template_runtime.html#a8641f59365ad4d927674a1893e4bad2a',1,'aace::alexa::TemplateRuntime::renderTemplate(const std::string &payload)'],['../classaace_1_1alexa_1_1_template_runtime.html#a0aed566472c6db7b8749aa1f85aac143',1,'aace::alexa::TemplateRuntime::renderTemplate(const std::string &payload, FocusState focusState)']]], + ['renderplayerinfo',['renderPlayerInfo',['../classaace_1_1alexa_1_1_template_runtime.html#a216ae3f6aa681cd2b5abead91eb17e49',1,'aace::alexa::TemplateRuntime']]], + ['rendertemplate',['renderTemplate',['../classaace_1_1alexa_1_1_template_runtime.html#aa3d04935b3c41e98610a0e427bf4f3f1',1,'aace::alexa::TemplateRuntime']]], ['repeat',['REPEAT',['../classaace_1_1alexa_1_1_playback_controller_engine_interface.html#a990f517d423450b712fcfd0488403e8ca5be68175be14dfaa080165456c2e9555',1,'aace::alexa::PlaybackControllerEngineInterface']]], ['repeatenabled',['repeatEnabled',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#ad18c03b18fc5fd59d4502cb5902841c9',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::repeatEnabled()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac7d32d117f01f4e07020b68eb3d7a329',1,'aace::alexa::LocalMediaSource::PlaybackState::repeatEnabled()']]], ['requesting_5fcode_5fpair',['REQUESTING_CODE_PAIR',['../classaace_1_1cbl_1_1_c_b_l.html#a9d56e447b5e1fa27a79e9c0932af2baba699a1731760b4edc72e1528fde0e839f',1,'aace::cbl::CBL']]], diff --git a/docs/cpp/search/all_f.js b/docs/cpp/search/all_f.js index 597653cb1..46a154cc1 100644 --- a/docs/cpp/search/all_f.js +++ b/docs/cpp/search/all_f.js @@ -11,7 +11,7 @@ var searchData= ['server_5ferror',['SERVER_ERROR',['../classaace_1_1alexa_1_1_auth_provider_engine_interface.html#a006d3fd3bee07feafa325968054abc37a3fd4acc4cfaa41114f84707b95f05f31',1,'aace::alexa::AuthProviderEngineInterface']]], ['server_5finternal_5ferror',['SERVER_INTERNAL_ERROR',['../classaace_1_1alexa_1_1_alexa_client.html#a05af151f4b7fdd47b9ea56e504074e05a6a701b3f16c45b9d96fec4ac97805d9c',1,'aace::alexa::AlexaClient']]], ['server_5fside_5fdisconnect',['SERVER_SIDE_DISCONNECT',['../classaace_1_1alexa_1_1_alexa_client.html#a05af151f4b7fdd47b9ea56e504074e05ac15c6f3c089148a1bfa565ab4efea186',1,'aace::alexa::AlexaClient']]], - ['sessionstate',['SessionState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html',1,'aace::alexa::ExternalMediaAdapter::SessionState'],['../classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html',1,'aace::alexa::LocalMediaSource::SessionState'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html#a9261f692ab89c0a12b494cf707d83daa',1,'aace::alexa::ExternalMediaAdapter::SessionState::SessionState()'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html#aa5e42c3124172f96c11377bed58963aa',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState::sessionState()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a1a0533445205c67cca585e45ba1e9486',1,'aace::alexa::LocalMediaSource::LocalMediaSourceState::sessionState()']]], + ['sessionstate',['SessionState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html',1,'aace::alexa::ExternalMediaAdapter::SessionState'],['../classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html',1,'aace::alexa::LocalMediaSource::SessionState'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html#a4d0362ceeb3aeb4a5523e3a9c1b355b2',1,'aace::alexa::ExternalMediaAdapter::SessionState::SessionState()'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html#aa5e42c3124172f96c11377bed58963aa',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState::sessionState()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a1a0533445205c67cca585e45ba1e9486',1,'aace::alexa::LocalMediaSource::LocalMediaSourceState::sessionState()']]], ['setaplmaxversion',['setAPLMaxVersion',['../classaace_1_1apl_1_1_a_p_l.html#ae78b5ed9cf53ac882d12bdff99d69638',1,'aace::apl::APL']]], ['setbandlevels',['setBandLevels',['../classaace_1_1alexa_1_1_equalizer_controller.html#a9f0774201117c45bc87f68e571f2478e',1,'aace::alexa::EqualizerController']]], ['setdefaultzone',['setDefaultZone',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#ac1c48da7ee8a6244c27414b97a40f3a0',1,'aace::carControl::config::CarControlConfiguration']]], @@ -21,7 +21,7 @@ var searchData= ['setindicator',['setIndicator',['../classaace_1_1alexa_1_1_notifications.html#ac88ce22736f266b4ef6d703b7e2fbc58',1,'aace::alexa::Notifications']]], ['setmodecontrollervalue',['setModeControllerValue',['../classaace_1_1car_control_1_1_car_control.html#a68e0a7b00fa0024f83240e273817390a',1,'aace::carControl::CarControl']]], ['setposition',['setPosition',['../classaace_1_1audio_1_1_audio_output.html#a2d621811ac53c6128ad435546ba964e7',1,'aace::audio::AudioOutput']]], - ['setproperty',['setProperty',['../classaace_1_1core_1_1_engine.html#a65f89859ff67cfaa56051785543ceae2',1,'aace::core::Engine::setProperty()'],['../classaace_1_1property_manager_1_1_property_manager.html#a07bd961c86047b1b1e5de7366bf83820',1,'aace::propertyManager::PropertyManager::setProperty()']]], + ['setproperty',['setProperty',['../classaace_1_1property_manager_1_1_property_manager.html#a07bd961c86047b1b1e5de7366bf83820',1,'aace::propertyManager::PropertyManager']]], ['setrangecontrollervalue',['setRangeControllerValue',['../classaace_1_1car_control_1_1_car_control.html#a6eb554713a311dcf2dbe6aca00e1739e',1,'aace::carControl::CarControl']]], ['setrefreshtoken',['setRefreshToken',['../classaace_1_1cbl_1_1_c_b_l.html#aeb62feeb8cdaad65b1d8dea41f243d7b',1,'aace::cbl::CBL']]], ['setuserprofile',['setUserProfile',['../classaace_1_1cbl_1_1_c_b_l.html#a5ce90c8c986bdb7afa6ce7fcfb6a4be5',1,'aace::cbl::CBL']]], @@ -48,7 +48,6 @@ var searchData= ['started',['STARTED',['../classaace_1_1alexa_1_1_alerts.html#a81cccb7e632cf26b7903d9c9c168fb22a17130e6c806885e23770df1519b18eb7',1,'aace::alexa::Alerts']]], ['starting',['STARTING',['../classaace_1_1cbl_1_1_c_b_l.html#a9d56e447b5e1fa27a79e9c0932af2baba034312d8adc8099c1c6f53aaff745e26',1,'aace::cbl::CBL']]], ['startnavigation',['startNavigation',['../classaace_1_1navigation_1_1_navigation.html#abb26aed1a2b2fb215fd9c69cb9b6511c',1,'aace::navigation::Navigation']]], - ['state',['state',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#a2c1bd247d514dd6f8475e608282adbdf',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::state()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0c31f8757f4f16cdaa82b7488afd21c5',1,'aace::alexa::LocalMediaSource::PlaybackState::state()']]], ['stop',['stop',['../classaace_1_1audio_1_1_audio_output.html#a80a92aeb055e394e6661c43f9217c670',1,'aace::audio::AudioOutput::stop()'],['../classaace_1_1core_1_1_engine.html#a456599306224a018b0c7b708594671f2',1,'aace::core::Engine::stop()'],['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#adbeb8a3a5c7f6e7bfd290ebe81770cae',1,'aace::phoneCallController::PhoneCallController::stop()']]], ['stopcapture',['stopCapture',['../classaace_1_1alexa_1_1_speech_recognizer.html#afbbd237e855308ed0d440c7f3d469a69',1,'aace::alexa::SpeechRecognizer']]], ['stopforegroundactivity',['stopForegroundActivity',['../classaace_1_1alexa_1_1_alexa_client.html#a5ac8bb84af2126339c7bf685d3540bac',1,'aace::alexa::AlexaClient']]], diff --git a/docs/cpp/search/classes_1.js b/docs/cpp/search/classes_1.js index 7110937c9..617073dd1 100644 --- a/docs/cpp/search/classes_1.js +++ b/docs/cpp/search/classes_1.js @@ -4,6 +4,5 @@ var searchData= ['carcontrolconfiguration',['CarControlConfiguration',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html',1,'aace::carControl::config']]], ['cbl',['CBL',['../classaace_1_1cbl_1_1_c_b_l.html',1,'aace::cbl']]], ['cblconfiguration',['CBLConfiguration',['../classaace_1_1cbl_1_1config_1_1_c_b_l_configuration.html',1,'aace::cbl::config']]], - ['configurationfile',['ConfigurationFile',['../classaace_1_1core_1_1config_1_1_configuration_file.html',1,'aace::core::config']]], - ['contactuploader',['ContactUploader',['../classaace_1_1contact_uploader_1_1_contact_uploader.html',1,'aace::contactUploader']]] + ['configurationfile',['ConfigurationFile',['../classaace_1_1core_1_1config_1_1_configuration_file.html',1,'aace::core::config']]] ]; diff --git a/docs/cpp/search/classes_7.js b/docs/cpp/search/classes_7.js index 249eed7ed..0635d050c 100644 --- a/docs/cpp/search/classes_7.js +++ b/docs/cpp/search/classes_7.js @@ -1,6 +1,7 @@ var searchData= [ ['navigation',['Navigation',['../classaace_1_1navigation_1_1_navigation.html',1,'aace::navigation']]], + ['navigationconfiguration',['NavigationConfiguration',['../classaace_1_1navigation_1_1config_1_1_navigation_configuration.html',1,'aace::navigation::config']]], ['networkinfoprovider',['NetworkInfoProvider',['../classaace_1_1network_1_1_network_info_provider.html',1,'aace::network']]], ['networkinfoproviderengineinterface',['NetworkInfoProviderEngineInterface',['../classaace_1_1network_1_1_network_info_provider_engine_interface.html',1,'aace::network']]], ['notifications',['Notifications',['../classaace_1_1alexa_1_1_notifications.html',1,'aace::alexa']]] diff --git a/docs/cpp/search/classes_8.js b/docs/cpp/search/classes_8.js index eafbdc8cd..f287acf26 100644 --- a/docs/cpp/search/classes_8.js +++ b/docs/cpp/search/classes_8.js @@ -5,6 +5,6 @@ var searchData= ['platforminterface',['PlatformInterface',['../classaace_1_1core_1_1_platform_interface.html',1,'aace::core']]], ['playbackcontroller',['PlaybackController',['../classaace_1_1alexa_1_1_playback_controller.html',1,'aace::alexa']]], ['playbackcontrollerengineinterface',['PlaybackControllerEngineInterface',['../classaace_1_1alexa_1_1_playback_controller_engine_interface.html',1,'aace::alexa']]], - ['playbackstate',['PlaybackState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html',1,'aace::alexa::ExternalMediaAdapter::PlaybackState'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html',1,'aace::alexa::LocalMediaSource::PlaybackState']]], + ['playbackstate',['PlaybackState',['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html',1,'aace::alexa::LocalMediaSource::PlaybackState'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html',1,'aace::alexa::ExternalMediaAdapter::PlaybackState']]], ['propertymanager',['PropertyManager',['../classaace_1_1property_manager_1_1_property_manager.html',1,'aace::propertyManager']]] ]; diff --git a/docs/cpp/search/functions_0.js b/docs/cpp/search/functions_0.js index 29fe0db4f..e040a1dc4 100644 --- a/docs/cpp/search/functions_0.js +++ b/docs/cpp/search/functions_0.js @@ -7,10 +7,6 @@ var searchData= ['addactionturnoff',['addActionTurnOff',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a2db0169e27a32bfddf2e7d54971ed121',1,'aace::carControl::config::CarControlConfiguration']]], ['addactionturnon',['addActionTurnOn',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#aa590e83d2ea0c72701d97efe6419ed5e',1,'aace::carControl::config::CarControlConfiguration']]], ['addassetid',['addAssetId',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#ae1038896bbf114e0ee90c50082e3dad4',1,'aace::carControl::config::CarControlConfiguration']]], - ['addcontact',['addContact',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a2b69454f9157b11c7e022d0e3d554671',1,'aace::contactUploader::ContactUploader']]], - ['addcontactsbegin',['addContactsBegin',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a542e1b6b49003f9f550178c8ecfb50a6',1,'aace::contactUploader::ContactUploader']]], - ['addcontactscancel',['addContactsCancel',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a83daa6d9078fd4a662afb6deb102c7bf',1,'aace::contactUploader::ContactUploader']]], - ['addcontactsend',['addContactsEnd',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a4ed1fe8a3b3eff4988c24b5187cf0298',1,'aace::contactUploader::ContactUploader']]], ['addcustomassetspath',['addCustomAssetsPath',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#ae9bc03e46eaf50a6d6afbd90ee13064a',1,'aace::carControl::config::CarControlConfiguration']]], ['adddefaultassetspath',['addDefaultAssetsPath',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a67b0af557aa409231020239fa7960255',1,'aace::carControl::config::CarControlConfiguration']]], ['addmembers',['addMembers',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a1aa86c1e0502e89b386bc6eabf2d8b61',1,'aace::carControl::config::CarControlConfiguration']]], diff --git a/docs/cpp/search/functions_2.js b/docs/cpp/search/functions_2.js index 9770d1d8b..2564f5211 100644 --- a/docs/cpp/search/functions_2.js +++ b/docs/cpp/search/functions_2.js @@ -16,7 +16,6 @@ var searchData= ['configure',['configure',['../classaace_1_1core_1_1_engine.html#a224b8c7fe1f66b210d4851ac31082364',1,'aace::core::Engine::configure(std::initializer_list< std::shared_ptr< aace::core::config::EngineConfiguration >> configurationList)=0'],['../classaace_1_1core_1_1_engine.html#afe5c533283f9f79917c0a5ddfbd0e718',1,'aace::core::Engine::configure(std::vector< std::shared_ptr< aace::core::config::EngineConfiguration >> configurationList)=0'],['../classaace_1_1core_1_1_engine.html#acf93c7857ba5151ae88f8781425d4fac',1,'aace::core::Engine::configure(std::shared_ptr< aace::core::config::EngineConfiguration > configuration)=0']]], ['connectionstatechanged',['connectionStateChanged',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#acaa5a6e69479b162c2783134f62ab43c',1,'aace::phoneCallController::PhoneCallController']]], ['connectionstatuschanged',['connectionStatusChanged',['../classaace_1_1alexa_1_1_alexa_client.html#a70491bf5bb02e0fce4d8fcf2bc206261',1,'aace::alexa::AlexaClient']]], - ['contactsuploaderstatuschanged',['contactsUploaderStatusChanged',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a739b78e1378111c68e5df42e0cc3f1e4',1,'aace::contactUploader::ContactUploader']]], ['create',['create',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a09e0dfb274d946c2b2a7d1726c0586c3',1,'aace::carControl::config::CarControlConfiguration::create()'],['../classaace_1_1core_1_1config_1_1_stream_configuration.html#a7168bd10c4756eb4087609edb9a4d587',1,'aace::core::config::StreamConfiguration::create()'],['../classaace_1_1core_1_1config_1_1_configuration_file.html#ad96c069ff3ba56714d05a1df4110c817',1,'aace::core::config::ConfigurationFile::create()']]], ['createalertsconfig',['createAlertsConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#af7a3007198c8d8e47ce33edbf5c902a7',1,'aace::alexa::config::AlexaConfiguration']]], ['createalexapresentationtimeoutconfig',['createAlexaPresentationTimeoutConfig',['../classaace_1_1apl_1_1config_1_1_a_p_l_configuration.html#a56ef719eddebda92b88505f908a8d85b',1,'aace::apl::config::APLConfiguration']]], @@ -26,7 +25,6 @@ var searchData= ['createcbluserprofileconfig',['createCBLUserProfileConfig',['../classaace_1_1cbl_1_1config_1_1_c_b_l_configuration.html#a5a70191fa2181583b169248fa94dcecb',1,'aace::cbl::config::CBLConfiguration']]], ['createcertifiedsenderconfig',['createCertifiedSenderConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a5d38a056525d20aad2114677d8d461ae',1,'aace::alexa::config::AlexaConfiguration']]], ['createconsolesinkconfig',['createConsoleSinkConfig',['../classaace_1_1logger_1_1config_1_1_logger_configuration.html#ae6aa1d5ddd52e173073d501861e6835a',1,'aace::logger::config::LoggerConfiguration']]], - ['createcontrol',['createControl',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#a0a9236ba93a3b3c0c1e85900f40af697',1,'aace::carControl::config::CarControlConfiguration']]], ['createcurlconfig',['createCurlConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a2012a3f45f54d16f5d8f260bb16c49c1',1,'aace::alexa::config::AlexaConfiguration']]], ['createdeviceinfoconfig',['createDeviceInfoConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#aceaa112768e13cd30722766cc9d1a2c6',1,'aace::alexa::config::AlexaConfiguration']]], ['createdevicesettingsconfig',['createDeviceSettingsConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a8e556b5044008752d356c6e72b095df5',1,'aace::alexa::config::AlexaConfiguration']]], @@ -37,6 +35,7 @@ var searchData= ['createlocalstorageconfig',['createLocalStorageConfig',['../classaace_1_1storage_1_1config_1_1_storage_configuration.html#a1619cb1c7be8fcb913454e16ceb49a1d',1,'aace::storage::config::StorageConfiguration']]], ['createloggerruleconfig',['createLoggerRuleConfig',['../classaace_1_1logger_1_1config_1_1_logger_configuration.html#a9875f58897e59ce67932f1c4f9edf085',1,'aace::logger::config::LoggerConfiguration']]], ['createmiscstorageconfig',['createMiscStorageConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a500f37306f03ef987e8d014cb7b64470',1,'aace::alexa::config::AlexaConfiguration']]], + ['createnavigationconfig',['createNavigationConfig',['../classaace_1_1navigation_1_1config_1_1_navigation_configuration.html#ab984104f14947c042b67c8ed17b55364',1,'aace::navigation::config::NavigationConfiguration']]], ['createnotificationsconfig',['createNotificationsConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a5205a15e4b9f8596a6aff6e4c26595fa',1,'aace::alexa::config::AlexaConfiguration']]], ['createoperatingcountryconfig',['createOperatingCountryConfig',['../classaace_1_1vehicle_1_1config_1_1_vehicle_configuration.html#a469681a9d4866c0e898f512fe98eb8ab',1,'aace::vehicle::config::VehicleConfiguration']]], ['createsettingsconfig',['createSettingsConfig',['../classaace_1_1alexa_1_1config_1_1_alexa_configuration.html#a08aee7c879ef040c17d32bd9a781a940',1,'aace::alexa::config::AlexaConfiguration']]], diff --git a/docs/cpp/search/functions_3.js b/docs/cpp/search/functions_3.js index ddcfee714..f1a658936 100644 --- a/docs/cpp/search/functions_3.js +++ b/docs/cpp/search/functions_3.js @@ -3,7 +3,6 @@ var searchData= ['deviceconfigurationupdated',['deviceConfigurationUpdated',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#a3d36c76efd0e96bd84196a8dcd5071de',1,'aace::phoneCallController::PhoneCallController']]], ['dial',['dial',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#a398192e0728d2e352483c6967419aba4',1,'aace::phoneCallController::PhoneCallController']]], ['dialogstatechanged',['dialogStateChanged',['../classaace_1_1alexa_1_1_alexa_client.html#a0c91642e76d6501af40ef878f12d7bf4',1,'aace::alexa::AlexaClient']]], - ['disablewakeworddetection',['disableWakewordDetection',['../classaace_1_1alexa_1_1_speech_recognizer.html#ae8655a4ecaab90892d240d5f21602e86',1,'aace::alexa::SpeechRecognizer']]], ['displaycardcleared',['displayCardCleared',['../classaace_1_1alexa_1_1_template_runtime.html#a056c771904624b16bafdd97d97619b80',1,'aace::alexa::TemplateRuntime']]], ['donotdisturbchanged',['doNotDisturbChanged',['../classaace_1_1alexa_1_1_do_not_disturb.html#a5ea5c9f9142db27b3a1c704012294f7b',1,'aace::alexa::DoNotDisturb']]] ]; diff --git a/docs/cpp/search/functions_4.js b/docs/cpp/search/functions_4.js index 59ded185d..3be0d74c3 100644 --- a/docs/cpp/search/functions_4.js +++ b/docs/cpp/search/functions_4.js @@ -1,9 +1,8 @@ var searchData= [ - ['enablewakeworddetection',['enableWakewordDetection',['../classaace_1_1alexa_1_1_speech_recognizer.html#ac8aa31ea0dcceddf5c7628a72cf58475',1,'aace::alexa::SpeechRecognizer']]], ['endofspeechdetected',['endOfSpeechDetected',['../classaace_1_1alexa_1_1_speech_recognizer.html#a7e4d179fd39031d3a898466841905748',1,'aace::alexa::SpeechRecognizer']]], ['equalizerbandtostring',['equalizerBandToString',['../namespaceaace_1_1alexa.html#aaa09d97f0a502bb056f6eb8b610b39cd',1,'aace::alexa']]], ['executecommands',['executeCommands',['../classaace_1_1apl_1_1_a_p_l.html#a14091f7b0a6e8898098d04ec67abac8c',1,'aace::apl::APL']]], ['executecommandsresult',['executeCommandsResult',['../classaace_1_1apl_1_1_a_p_l.html#a3599f0eec806b4e0d1315ca1f1e8d1b1',1,'aace::apl::APL']]], - ['externalmediaadapterstate',['ExternalMediaAdapterState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html#a06ca04ec7f2b9a388144cd451261c967',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState']]] + ['externalmediaadapterstate',['ExternalMediaAdapterState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_external_media_adapter_state.html#a5d3afec4f892bcf48396fb725d137017',1,'aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState']]] ]; diff --git a/docs/cpp/search/functions_5.js b/docs/cpp/search/functions_5.js index 96445b812..e455070cf 100644 --- a/docs/cpp/search/functions_5.js +++ b/docs/cpp/search/functions_5.js @@ -18,7 +18,7 @@ var searchData= ['getplayerduration',['getPlayerDuration',['../classaace_1_1alexa_1_1_audio_player.html#a79508257fa720e5fe633c5b76c0ff911',1,'aace::alexa::AudioPlayer']]], ['getplayerposition',['getPlayerPosition',['../classaace_1_1alexa_1_1_audio_player.html#aa2b61c4887d9bca905914559b23fcf38',1,'aace::alexa::AudioPlayer']]], ['getposition',['getPosition',['../classaace_1_1audio_1_1_audio_output.html#a04ff4005d0f36300bc54421906b89299',1,'aace::audio::AudioOutput']]], - ['getproperty',['getProperty',['../classaace_1_1core_1_1_engine.html#abab5399f2030131a54f1ba93e4981508',1,'aace::core::Engine::getProperty()'],['../classaace_1_1property_manager_1_1_property_manager.html#a1892fedbf2193e03f040758207a4dea6',1,'aace::propertyManager::PropertyManager::getProperty()']]], + ['getproperty',['getProperty',['../classaace_1_1property_manager_1_1_property_manager.html#a1892fedbf2193e03f040758207a4dea6',1,'aace::propertyManager::PropertyManager']]], ['getrangecontrollervalue',['getRangeControllerValue',['../classaace_1_1car_control_1_1_car_control.html#a37f2556dd5b73fe6a098679b9cce60d5',1,'aace::carControl::CarControl']]], ['getrefreshtoken',['getRefreshToken',['../classaace_1_1cbl_1_1_c_b_l.html#ae957213803bd5ca4a6a19d4133160963',1,'aace::cbl::CBL']]], ['getsource',['getSource',['../classaace_1_1alexa_1_1_local_media_source.html#a7876023493487be41be9044c198dfba2',1,'aace::alexa::LocalMediaSource']]], diff --git a/docs/cpp/search/functions_7.js b/docs/cpp/search/functions_7.js index a3a0ff288..aa1c4a9f6 100644 --- a/docs/cpp/search/functions_7.js +++ b/docs/cpp/search/functions_7.js @@ -3,6 +3,5 @@ var searchData= ['interruptcommandsequence',['interruptCommandSequence',['../classaace_1_1apl_1_1_a_p_l.html#abe1e559640f83434304f1b2b826fda62',1,'aace::apl::APL']]], ['ispowercontrolleron',['isPowerControllerOn',['../classaace_1_1car_control_1_1_car_control.html#a9a094718c3c42f12adae6adfb8a4cee2',1,'aace::carControl::CarControl']]], ['istogglecontrolleron',['isToggleControllerOn',['../classaace_1_1car_control_1_1_car_control.html#a122710f35e288fb86c40564b782ebc7d',1,'aace::carControl::CarControl']]], - ['isvalid',['isValid',['../classaace_1_1location_1_1_location.html#a2dd9abb6c2c005ca822c29d14fefada4',1,'aace::location::Location']]], - ['iswakeworddetectionenabled',['isWakewordDetectionEnabled',['../classaace_1_1alexa_1_1_speech_recognizer.html#a04744304f5997c94d4e76d2eb5f38660',1,'aace::alexa::SpeechRecognizer']]] + ['isvalid',['isValid',['../classaace_1_1location_1_1_location.html#a2dd9abb6c2c005ca822c29d14fefada4',1,'aace::location::Location']]] ]; diff --git a/docs/cpp/search/functions_c.js b/docs/cpp/search/functions_c.js index f793a170a..acafa599d 100644 --- a/docs/cpp/search/functions_c.js +++ b/docs/cpp/search/functions_c.js @@ -2,7 +2,7 @@ var searchData= [ ['pause',['pause',['../classaace_1_1audio_1_1_audio_output.html#ab0a3cb1163e4a2b4fa6ed0fbb54bdc4e',1,'aace::audio::AudioOutput']]], ['play',['play',['../classaace_1_1alexa_1_1_local_media_source.html#ab6fdd7996ddcadc828f3f9de03824626',1,'aace::alexa::LocalMediaSource::play()'],['../classaace_1_1audio_1_1_audio_output.html#a5318ee52ef7ec7216ede5d09b7099c80',1,'aace::audio::AudioOutput::play()']]], - ['playbackstate',['PlaybackState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#a0c96f884948baca3bd941afbb371aa15',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::PlaybackState()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a45f06189dbaaf23939994d0d921a6cb3',1,'aace::alexa::LocalMediaSource::PlaybackState::PlaybackState()']]], + ['playbackstate',['PlaybackState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#aeac23f8b8544eff187f8cc29c43a254e',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::PlaybackState()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a45f06189dbaaf23939994d0d921a6cb3',1,'aace::alexa::LocalMediaSource::PlaybackState::PlaybackState()']]], ['playcontrol',['playControl',['../classaace_1_1alexa_1_1_local_media_source.html#ad541a6f60242ad371b453570e1e8da4d',1,'aace::alexa::LocalMediaSource']]], ['playeractivitychanged',['playerActivityChanged',['../classaace_1_1alexa_1_1_audio_player.html#a13c5a430737a7d55a39525da2a90a7a1',1,'aace::alexa::AudioPlayer']]], ['playererror',['playerError',['../classaace_1_1alexa_1_1_local_media_source.html#a5a007447092c61ff90785b4fa9fa0fd3',1,'aace::alexa::LocalMediaSource']]], diff --git a/docs/cpp/search/functions_d.js b/docs/cpp/search/functions_d.js index d8da93b3d..9c06e579a 100644 --- a/docs/cpp/search/functions_d.js +++ b/docs/cpp/search/functions_d.js @@ -4,11 +4,10 @@ var searchData= ['redial',['redial',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#aa4487723257e8e3ac2b7ba8c335b461d',1,'aace::phoneCallController::PhoneCallController']]], ['registerplatforminterface',['registerPlatformInterface',['../classaace_1_1core_1_1_engine.html#abab09ff31a4c13f8841bc124d87c24eb',1,'aace::core::Engine::registerPlatformInterface(std::shared_ptr< aace::core::PlatformInterface > platformInterface)=0'],['../classaace_1_1core_1_1_engine.html#a5b1e5999b008bee74249d162c95be7c7',1,'aace::core::Engine::registerPlatformInterface(std::initializer_list< std::shared_ptr< aace::core::PlatformInterface >> platformInterfaceList)=0']]], ['removeallalerts',['removeAllAlerts',['../classaace_1_1alexa_1_1_alerts.html#a48eea8459c5a5c42819fb4fcd155ff89',1,'aace::alexa::Alerts']]], - ['removeuploadedcontacts',['removeUploadedContacts',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#a3fa5b4ad76872e3f3aa39d5c54dbf7f6',1,'aace::contactUploader::ContactUploader']]], ['renderdocument',['renderDocument',['../classaace_1_1apl_1_1_a_p_l.html#a605da3ae66ca91baa83f71442e0c4273',1,'aace::apl::APL']]], ['renderdocumentresult',['renderDocumentResult',['../classaace_1_1apl_1_1_a_p_l.html#a42ad9effa8cb1ae3ca95fa65c3378993',1,'aace::apl::APL']]], - ['renderplayerinfo',['renderPlayerInfo',['../classaace_1_1alexa_1_1_template_runtime.html#a1afe1f3ac8d283d81d83cc86c87ae630',1,'aace::alexa::TemplateRuntime::renderPlayerInfo(const std::string &payload)'],['../classaace_1_1alexa_1_1_template_runtime.html#a43b20a5021af05074ed7fb5bc6b04171',1,'aace::alexa::TemplateRuntime::renderPlayerInfo(const std::string &payload, PlayerActivity audioPlayerState, std::chrono::milliseconds offset, FocusState focusState)']]], - ['rendertemplate',['renderTemplate',['../classaace_1_1alexa_1_1_template_runtime.html#a8641f59365ad4d927674a1893e4bad2a',1,'aace::alexa::TemplateRuntime::renderTemplate(const std::string &payload)'],['../classaace_1_1alexa_1_1_template_runtime.html#a0aed566472c6db7b8749aa1f85aac143',1,'aace::alexa::TemplateRuntime::renderTemplate(const std::string &payload, FocusState focusState)']]], + ['renderplayerinfo',['renderPlayerInfo',['../classaace_1_1alexa_1_1_template_runtime.html#a216ae3f6aa681cd2b5abead91eb17e49',1,'aace::alexa::TemplateRuntime']]], + ['rendertemplate',['renderTemplate',['../classaace_1_1alexa_1_1_template_runtime.html#aa3d04935b3c41e98610a0e427bf4f3f1',1,'aace::alexa::TemplateRuntime']]], ['reset',['reset',['../classaace_1_1cbl_1_1_c_b_l.html#a6b9bf59fb1f4a358273851049b2a74b6',1,'aace::cbl::CBL']]], ['resume',['resume',['../classaace_1_1audio_1_1_audio_output.html#a16da42e4ec758e6635ab01c01bd435e5',1,'aace::audio::AudioOutput']]] ]; diff --git a/docs/cpp/search/functions_e.js b/docs/cpp/search/functions_e.js index b33702b84..33acc2243 100644 --- a/docs/cpp/search/functions_e.js +++ b/docs/cpp/search/functions_e.js @@ -5,7 +5,7 @@ var searchData= ['senddtmffailed',['sendDTMFFailed',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#a7711ff33033a10bb6ec080269ac30ba6',1,'aace::phoneCallController::PhoneCallController']]], ['senddtmfsucceeded',['sendDTMFSucceeded',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#a4d89b0bc7309cd32a096641a45f559e5',1,'aace::phoneCallController::PhoneCallController']]], ['senduserevent',['sendUserEvent',['../classaace_1_1apl_1_1_a_p_l.html#a650185d2e461fa04a54ca6389cea9b7e',1,'aace::apl::APL']]], - ['sessionstate',['SessionState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html#a9261f692ab89c0a12b494cf707d83daa',1,'aace::alexa::ExternalMediaAdapter::SessionState']]], + ['sessionstate',['SessionState',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html#a4d0362ceeb3aeb4a5523e3a9c1b355b2',1,'aace::alexa::ExternalMediaAdapter::SessionState']]], ['setaplmaxversion',['setAPLMaxVersion',['../classaace_1_1apl_1_1_a_p_l.html#ae78b5ed9cf53ac882d12bdff99d69638',1,'aace::apl::APL']]], ['setbandlevels',['setBandLevels',['../classaace_1_1alexa_1_1_equalizer_controller.html#a9f0774201117c45bc87f68e571f2478e',1,'aace::alexa::EqualizerController']]], ['setdefaultzone',['setDefaultZone',['../classaace_1_1car_control_1_1config_1_1_car_control_configuration.html#ac1c48da7ee8a6244c27414b97a40f3a0',1,'aace::carControl::config::CarControlConfiguration']]], @@ -15,7 +15,7 @@ var searchData= ['setindicator',['setIndicator',['../classaace_1_1alexa_1_1_notifications.html#ac88ce22736f266b4ef6d703b7e2fbc58',1,'aace::alexa::Notifications']]], ['setmodecontrollervalue',['setModeControllerValue',['../classaace_1_1car_control_1_1_car_control.html#a68e0a7b00fa0024f83240e273817390a',1,'aace::carControl::CarControl']]], ['setposition',['setPosition',['../classaace_1_1audio_1_1_audio_output.html#a2d621811ac53c6128ad435546ba964e7',1,'aace::audio::AudioOutput']]], - ['setproperty',['setProperty',['../classaace_1_1core_1_1_engine.html#a65f89859ff67cfaa56051785543ceae2',1,'aace::core::Engine::setProperty()'],['../classaace_1_1property_manager_1_1_property_manager.html#a07bd961c86047b1b1e5de7366bf83820',1,'aace::propertyManager::PropertyManager::setProperty()']]], + ['setproperty',['setProperty',['../classaace_1_1property_manager_1_1_property_manager.html#a07bd961c86047b1b1e5de7366bf83820',1,'aace::propertyManager::PropertyManager']]], ['setrangecontrollervalue',['setRangeControllerValue',['../classaace_1_1car_control_1_1_car_control.html#a6eb554713a311dcf2dbe6aca00e1739e',1,'aace::carControl::CarControl']]], ['setrefreshtoken',['setRefreshToken',['../classaace_1_1cbl_1_1_c_b_l.html#aeb62feeb8cdaad65b1d8dea41f243d7b',1,'aace::cbl::CBL']]], ['setuserprofile',['setUserProfile',['../classaace_1_1cbl_1_1_c_b_l.html#a5ce90c8c986bdb7afa6ce7fcfb6a4be5',1,'aace::cbl::CBL']]], diff --git a/docs/cpp/search/namespaces_0.js b/docs/cpp/search/namespaces_0.js index 55b5bf169..1051a96e4 100644 --- a/docs/cpp/search/namespaces_0.js +++ b/docs/cpp/search/namespaces_0.js @@ -2,6 +2,5 @@ var searchData= [ ['aace',['aace',['../namespaceaace.html',1,'']]], ['action',['action',['../namespaceaace_1_1car_control_1_1config_1_1action.html',1,'aace::carControl::config']]], - ['alexa',['alexa',['../namespaceaace_1_1alexa.html',1,'aace']]], - ['zone',['zone',['../namespaceaace_1_1car_control_1_1config_1_1zone.html',1,'aace::carControl::config']]] + ['alexa',['alexa',['../namespaceaace_1_1alexa.html',1,'aace']]] ]; diff --git a/docs/cpp/search/typedefs_1.js b/docs/cpp/search/typedefs_1.js index c890339c0..86c543c07 100644 --- a/docs/cpp/search/typedefs_1.js +++ b/docs/cpp/search/typedefs_1.js @@ -3,6 +3,5 @@ var searchData= ['callerror',['CallError',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#ae7491c5cce0b1868dfb1fefd0a2e52d3',1,'aace::phoneCallController::PhoneCallController']]], ['callingdeviceconfigurationproperty',['CallingDeviceConfigurationProperty',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#ae8320021335ca082bdcf800786d5c825',1,'aace::phoneCallController::PhoneCallController']]], ['callstate',['CallState',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#a000a8a46c8b591fed67d17d531028efa',1,'aace::phoneCallController::PhoneCallController']]], - ['connectionstate',['ConnectionState',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#a05037f25d4285444a0ae111af231fe36',1,'aace::phoneCallController::PhoneCallController']]], - ['contactuploaderstatus',['ContactUploaderStatus',['../classaace_1_1contact_uploader_1_1_contact_uploader.html#ace68da7d67191dbd4df87a8a7274dcf5',1,'aace::contactUploader::ContactUploader']]] + ['connectionstate',['ConnectionState',['../classaace_1_1phone_call_controller_1_1_phone_call_controller.html#a05037f25d4285444a0ae111af231fe36',1,'aace::phoneCallController::PhoneCallController']]] ]; diff --git a/docs/cpp/search/variables_a.js b/docs/cpp/search/variables_a.js index 342fcda13..335d90d66 100644 --- a/docs/cpp/search/variables_a.js +++ b/docs/cpp/search/variables_a.js @@ -4,7 +4,6 @@ var searchData= ['shuffleenabled',['shuffleEnabled',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#a80455c20bb3b0800f323a0ccf51b25e9',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::shuffleEnabled()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ad9dbda90ac6bebf653a00d373cc3f296',1,'aace::alexa::LocalMediaSource::PlaybackState::shuffleEnabled()']]], ['smallurl',['smallURL',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#a40bc2ec8931aae4f77d2655613246cc8',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::smallURL()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac2f9ba4ca5782c9ad8d6aa3dffe34d04',1,'aace::alexa::LocalMediaSource::PlaybackState::smallURL()']]], ['spiversion',['spiVersion',['../classaace_1_1alexa_1_1_external_media_adapter_engine_interface_1_1_discovered_player_info.html#a835f44aee5987c33adae9eb581129cfb',1,'aace::alexa::ExternalMediaAdapterEngineInterface::DiscoveredPlayerInfo::spiVersion()'],['../classaace_1_1alexa_1_1_external_media_adapter_1_1_session_state.html#a5ff9845559c445945ce46743577f02f0',1,'aace::alexa::ExternalMediaAdapter::SessionState::spiVersion()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a2b5d75eb773a180280a9e86311fb216a',1,'aace::alexa::LocalMediaSource::SessionState::spiVersion()']]], - ['state',['state',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#a2c1bd247d514dd6f8475e608282adbdf',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::state()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0c31f8757f4f16cdaa82b7488afd21c5',1,'aace::alexa::LocalMediaSource::PlaybackState::state()']]], ['supportedcontentselectors',['supportedContentSelectors',['../classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a8cff541377f47ba71c31fda6f53b46bf',1,'aace::alexa::LocalMediaSource::SessionState']]], ['supportedoperations',['supportedOperations',['../classaace_1_1alexa_1_1_external_media_adapter_1_1_playback_state.html#a7f87f3ccce182708d81da10642971c6c',1,'aace::alexa::ExternalMediaAdapter::PlaybackState::supportedOperations()'],['../classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a9663c11c93549bac86bc0794e7a6193b',1,'aace::alexa::LocalMediaSource::PlaybackState::supportedOperations()']]] ]; diff --git a/extensions/aasb/.gitignore b/extensions/aasb/.gitignore new file mode 100644 index 000000000..71f4283bf --- /dev/null +++ b/extensions/aasb/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +samples/service/scripts/temp +samples/webclient/node_modules diff --git a/extensions/aasb/CMakeLists.txt b/extensions/aasb/CMakeLists.txt new file mode 100644 index 000000000..69ebaac3a --- /dev/null +++ b/extensions/aasb/CMakeLists.txt @@ -0,0 +1,18 @@ +# AASB + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASB LANGUAGES CXX) + +add_subdirectory(modules/aasb) + +# handlers +add_subdirectory(modules/aasb-core) +add_subdirectory(modules/aasb-alexa) +add_subdirectory(modules/aasb-apl) +add_subdirectory(modules/aasb-messaging) +add_subdirectory(modules/aasb-navigation) +add_subdirectory(modules/aasb-cbl) +add_subdirectory(modules/aasb-phone-control) +add_subdirectory(modules/aasb-address-book) +add_subdirectory(modules/aasb-car-control) \ No newline at end of file diff --git a/extensions/aasb/README.md b/extensions/aasb/README.md new file mode 100644 index 000000000..5ce72ccf0 --- /dev/null +++ b/extensions/aasb/README.md @@ -0,0 +1,328 @@ +# Alexa Auto Services Bridge (AASB) Extension + +The Alexa Auto Services Bridge (AASB) extension simplifies the integration work required to implement the Alexa Auto SDK. To generate messages and events without the AASB extension, you must create a handler and implement the message serialization and underlying event behavior for all the Auto SDK modules required by your service and applications. In contrast, the AASB extension provides a single platform interface that you can customize and implement to consume messages from and reply back to the Auto SDK Engine. + +**Table of Contents:** + +* [Overview and High-level Architecture](#overview-and-high-level-architecture) +* [Building the Auto SDK with the AASB Extension](#building-the-auto-sdk-with-the-aasb-extension) +* [Using the AASB Extension](#using-the-aasb-extension) + +## Overview and High-level Architecture +The most common approach to integrating the Auto SDK without the AASB extension is to implement custom handlers for each Auto SDK platform interface, as illustrated in the architecture diagram below. + +**System without the AASB Extension** + +

                                                                      + +

                                                                      + +The custom handlers transform API calls into messages specific to your system and send events to the service and applications using your system's message transport layer. In addition, you must implement a solution to do the reverse: handle events from the service and applications and send messages corresponding to platform interface calls. + +When you use the AASB extension, you implement a single custom handler (labeled "AASB Handler" in the diagram below), and the AASB extension includes its default implementations of the Auto SDK platform interfaces. For functionality such as audio input/output, where a message-based interface may not be the most appropriate solution (due to performance or integration complexity considerations, for example), you can override AASB behavior for a particular interface by creating a custom handler for that interface (labeled "Handler X" in the diagram below) and register that handler with the Auto SDK Engine as you normally would if you weren't using the AASB extension. + +**System with the AASB Extension** +

                                                                      + +

                                                                      + +The default AASB implementations register their platform interfaces with the Auto SDK Engine and serialize API calls into a standardized AASB message format by overriding the platform interface methods and converting the method parameters into the corresponding AASB message payload. For details about the AASB messages, see the [AASB protocol and message reference documentation](./docs/Introduction.html). + +The default implementations send the messages, each with a specific message topic, to the application through the AASB Message Broker interface (`MessageBrokerInterface`). The default implementations also subscribe to message topics that are sent from the application to the Auto SDK Engine, invoking the appropriate Engine interface method in the platform interface when the messages are received. + +>**Note:** The AASB extension adds its default implementation only if you have not registered the handler for the corresponding platform interface with the Auto SDK Engine. + +## Building the Auto SDK with the AASB Extension + +To build the Auto SDK with the AASB extension, run the Auto SDK Builder from the location into which you've installed the Auto SDK (for example, `AAC_SDK_HOME`) and specify AASB as an extension: + +``` +builder/build.sh -t extensions/aasb +``` + +For details about the Auto SDK Builder and build command arguments, see the [Auto SDK Builder README](https://github.com/alexa/alexa-auto-sdk/blob/2.1/builder/README.md) + +If you want to use the AASB extension with any of the other Auto SDK optional extensions, you must include these extensions and their corresponding AASB services in the build command. For example to build with the Alexa Communications extension, use: + +``` +builder/build.sh -t extensions/aasb extensions/extras/alexacomms +``` + +## Using the AASB Extension +To use the AASB extension in your service and applications: + +1. Implement a custom handler for the AASB platform interface by extending the `AASB` class to handle sending and receiving AASB messages to and from the Engine. + + >**Note:** In most cases, you will send the messages to the application layer using IPC. + + ``` +#include + + class AASBHandler : public aace::core::PlatformInterface { + + void messageReceived( const std::sting& message ) override { + // Handle the notification that an AASB message has been received from the Engine. + } + } +``` + +2. Create the Auto SDK Engine: + + ``` +auto engine = aace::core::Engine::create(); +``` + +3. Configure the Auto SDK Engine, using a file-based JSON configuration: + + ``` +engine->configure( aace::core::config::ConfigurationFile::create( "config.json" ) ); +``` + + Any AASB service that has been included in the build will instantiate its AASB default implementations automatically, before you start the Engine; you don't need to perform any other additional setup before starting the Engine. + +4. Register your AASB platform interface handler: + + ``` +engine->registerPlatformInterface( std::make_shared() ); +``` + +5. Start the Engine: + + ``` +engine->start(); +``` + +### Configuring the AASB Version Being Used + +If the Auto SDK is built with AASB, provide in the configuration a version string indicating the AASB version that the platform uses for communication with the Auto SDK. AASB version starts from 3.0. AASB validates the version before starting the Engine. Failure to provide a version string, which is considered valid if it lies within the range of minimum version supported and the current version, causes the Engine not to start. The following example shows the configuration with the AASB version string: +``` +{ + "aace.aasb": { + "version": "3.0" + } +} +``` + +### Overriding the Default AASB Implementation (optional) +In some cases you may want to implement the behavior for a particular platform interface directly to achieve better performance, or to simplify integration with existing software components. To override the behavior provided by the AASB default platform interface implementation, simply register a handler for that interface: + +1. Create the Auto SDK Engine. + + ``` +auto engine = aace::core::Engine::create(); +``` + +2. Configure the Engine using a file-based JSON configuration. + + ``` +engine->configure( aace::core::config::ConfigurationFile::create( "config.json" ) ); +``` + +3. Register the AASB platform interface handler. + + ``` +engine->registerPlatformInterface( std::make_shared() ); +``` + +4. Override the default AASB implementation for a specific platform interface by registering a custom handler with the Engine. For example, to register a custom LocationProvider handler: + + ``` +engine->registerPlatformInterface( std::make_shared() ); +``` + +5. Start the Engine. + + ``` +engine->start(); +``` + +### Configuring the AASB Interface Handlers (optional) + +Each Auto SDK Engine service defines an array of configuration objects for its interfaces, each of which includes the interface name, the "enable" setting, and an optional "config" object for interface-specific AASB configuration. The "enable" setting indicates to the service whether or not the interface should be registered. In most cases, you won't need to manually configure the interface configuration objects; however, in certain scenarios manual configuration may be required. + +Modules enable all interfaces that they implement by default. If you aren't overriding a specific platform interface, and you don't want AASB to provide its default handler, you can disable the interface using a configuration similar to the examples shown below for the TemplateRuntime and LocationProvider interfaces: + +``` +{ + "aasb.alexa": { + "TemplateRuntime": { + "enabled": false + } + } +} +... +{ + "aasb.location": { + "LocationProvider": { + "enabled": false + } + } +} +``` + +### Responding to Incoming Messages +Your application receives messages from the Engine by providing an AASB handler implementation and overriding the `messageReceived` method in the platform interface. AASB messages have a specific JSON format that allows you to determine what the appropriate response should be in your code. Each message contains a header section that identifies the `messageType`, `id`, and `version`, as well as `messageDescription` that includes a specific `topic` and `action`: + +``` +{ + "header": { + "messageType": "Publish", + "id": "50d95dd4-2536-4358-a7be-3e688a11a03a", + "version": "1.0", + "messageDescription": { + "topic": "TemplateRuntime", + "action": "RenderTemplate" + } + }, + ... +} +``` + +>**Note:** In most cases, the message `topic` and `action` correspond to a specific platform interface and method that you would need to implement in the Auto SDK if you were not using AASB. + +Your AASB handler implementation must parse the JSON message after it is received to properly handle the action, or to request other components in the system to respond (over IPC for example). Some messages require a specific immediate reply from your application, while others do not. + +In addition to the message header, each AASB JSON message includes a `payload` section, which provides the data for the specific message. For example, the `RenderTemplate` message sends the template information as the payload data: + +``` +{ + "header": { + "messageType": "Publish", + "id": "50d95dd4-2536-4358-a7be-3e688a11a03a", + "version": "1.0", + "messageDescription": { + "topic": "TemplateRuntime", + "action": "RenderTemplate" + } + }, + "payload": { + "type": "BodyTemplate2", + "token": "e8557c96-556a-4e05-8e18-83a1e5b2f79a", + "title": { + "mainTitle": "Amazon (company)", + "subTitle": "Wikipedia" + }, + ... + } +} + +``` + +Each message defines a specific schema for its payload data, so you should refer to the [AASB protocol and message reference documentation](./docs/Introduction.html) before implementing any message behavior. + +### Publishing Messages +Your application must notify the Auto SDK when a state has changed, or to perform an action. To do this, your application sends messages to the Engine using the `publish()` method of the AASB platform interface. The format is the same as that of the messages received from the Engine. To understand which messages to send, refer to the [AASB protocol and message reference documentation](./docs/Introduction.html). + +The following example shows how you would send a message to the Auto SDK to initiate a tap-to-talk interaction: + +``` +// this example uses nlohmann to create the JSON message object: +nlohmann::json message { + { "header", { + { "id", uuid::create() }, + { "messageType", "Publish" }, + { "messageDescription", { + { "topic", "SpeechRecognizer" }, + { "action", "StartCapture" } + }} + }}, + { "payload", { + { "initiator", "TAP_TO_TALK" }, + { "keywordBegin", -1 }, + { "keywordEnd", -1 }, + { "keyword", "" }, + }} +}; + +// use the aasb handler to publish the message: +aasb->publish( message.dump() ); +``` + +>**Note:** The example above uses nlohmann to create the message JSON; however, you can use any JSON library or method to create the message data since the message JSON is serialized to a string before being published. + +### Responding to Synchronous Messages +All messages that are received from the Auto SDK are sent asynchronously; however, certain messages require your application to respond immediately by publishing a special `Reply` message. For these messages, the Engine blocks its execution thread and waits for the response before continuing. If your application does not send a response before the message timeout expires, the Engine will fail to execute properly. Refer to the [AASB protocol and message reference documentation](./docs/Introduction.html) for details about which messages require a `Reply` message response. + +The `GetLocation` message is an example of a request sent by the Auto SDK that requires a `Reply` message response: + +``` +{ + "header": { + "messageType": "Publish", + "id": "23b578ed-6dc3-460a-998e-1647ba6cde42", + "version": "1.0", + "messageDescription": { + "topic": "LocationProvider" + "action": "GetLocation" + } + } +} +``` + +After receiving the `GetLocation` message, your application must respond immediately by publishing a `Reply` message. Publishing the `Reply` message works as described under [Publishing Messages](#publishing-messages); however, the message format is slightly different than a regular publish message. You must specify the `messageType` to be `Reply`, and rather than specifying the `topic` and `action` in the header's `messageDescription`, you should specify a `replyToId`, using the original `GetLocation` messages's `id` as the value: + +``` +{ + "header": { + "id": "4c4d13b6-6a8d-445b-931a-a3feb0878311", + "messageType": "Reply", + "version": "1.0", + "messageDescription": { + "replyToId": "23b578ed-6dc3-460a-998e-1647ba6cde42" + } + }, + "payload": { + "location": { + "latitude": 37.410, + "longitude": -122.025 + } + } +} +``` + +### Handling Audio and Other Stream-based Messages with AASB +Some interfaces (such as `AudioOutput`) have methods that require an object (such as `AudioStream`) to read and write their data. When these interfaces are implemented by an AASB handler, the underlying I/O implementation is wrapped by an object that implements the `AASBStream` interface. + +AASB messages that are associated with a corresponding stream pass a reference to the stream as the `streamId` in their payloads. For example, the payload of the following `AudioOutput:Prepare` message includes an audio source specified as a `STREAM`. The payload also includes a stream ID (in this case `cdfd1759-04bc-4e0c-b87a-02c8e590a88a`): + +``` +{ + "header": { + "id": "50d95dd4-2536-4358-a7be-3e688a11a03a", + "messageDescription": { + "action": "Prepare", + "topic": "AudioOutput" + }, + "messageType": "Publish", + "version": "1.0" + }, + "payload": { + "audioType": "TTS", + "channel": "SpeechSynthesizer", + "encoding": "MP3", + "properties": {}, + "repeating": false, + "source": "STREAM", + "streamId": "cdfd1759-04bc-4e0c-b87a-02c8e590a88a", + "token": "0082c6b3-9e36-4c17-ad78-2984e4bccc74" + } +} +``` + +To get a reference to the `AASBStream` object from the AASB platform interface, you can include the source ID in a call to the `AASBStream` interface's `openStream()` method: + +``` +auto stream = aasb->openStream( "cdfd1759-04bc-4e0c-b87a-02c8e590a88a", AASBStream::Mode::READ ); +``` + +Once you have a reference to the `AASBStream` object, you can use the methods provided by the interface to read data from the stream: + +``` +char buffer[2048]; +while( ! stream->isClosed() ) { + stream->read( buffer, 2048 ); + ... // do something with the buffer +} +``` + +You can also use the `AASBStream` interface's `write()` method to write data to the stream. Certain messages (such as `AudioInput:StartAudioInput`) pass in a stream reference and expect the stream to be opened in `WRITE` mode. Once the stream is opened, data should be written to the stream object until another message is received to stop sending data or the stream is closed. diff --git a/extensions/aasb/assets/AASBNewArch.png b/extensions/aasb/assets/AASBNewArch.png new file mode 100644 index 0000000000000000000000000000000000000000..c435314120743a619bb0a63834bfac59e22eb68f GIT binary patch literal 55519 zcmeFZc{tST|38jYq@pNC%DyC_2+1;1_N`E|jU|GeShBP`@4SE_4{4d`KP0E-QBPIxo?lB*SEBkj~zL4go1+N zn5xQ69SRC+A_WB%Bh4Z3epd}D9HA`_zC$9dI`H1MIy0A<8U7~y z_K~LFL@hH~%`H?EXFf3SMm0w_d0Z9^bv(=o5yK0`wsI>&3pIfPBtQ|}3(nKGgq3`ziMHz}rW+KL)C}^!`@{beH4U-u!A~ygDuK7>epvTm zGtN{i{O$nxJV!qjHT+8oREha9<&vLPrD^RJ3)>&Q2fm!b#DT$175@;Ru4DXhe71Pu zx#W?&UvHwI)TE?>XlmMUGQjq)N|Gu+_v=+OuW0<)TPP^m=^h?-8Qk#JQ13hO`$vN} zVR9+_5e}IlA>17A$qRw4nd~OJ^16fj*HceLPw$a-FfQdC=l|yR-cREOfHIWUv2!;#T=z+v z=N>=u>rD(lPIF+oPN%a`IWp~C^)39V(XUte)gr;uFCL`!zPK-w%R(l~zsRJv3>>LR zzIH9d@0A;nZm86scj226n;nK)EqvCBEKOn=XWF>qwdZGQGD z71y5NW@vsrLH&~~H(%%FSAGe5_h{R_W%@IlK7n`FW&Bj2uHxTkcgk^R{nXyz2zn?hb&}@Qo_@#uNpBfmA%Wb8Z57;9Hv9LK z`0M^4m~)t|&t3>aRlnDtWr?EY1bY2$Z)y@~^qPvOt5PWg`$_{RzS;{^V3 z0{>(Jd)e7vX9DQ;_z~g<2QTf$1Drpqe}0#LGx_MK0y$8-OK6ny{~BCg3!5E4&X<*{ zyBu!tjiJuSW4S;L@0heDCtL5?S%iK~w&XbsL5}cn`e7y)h&T-&$S-kbJ(v6Eb7#os zx*w+Ufpbb(|D5};jD_PLzWk#vAbtBs5B~8Rp_^|_~sTGq5e+cdG|7Nu>!f` zsebDr#`bGbK;!_f_ocy+$L!jt@NFrwMh$ORxQndXB8DrRTV~o44_q9VxI!-CQ-)?A z2LGw<>Y!o3E2b*3ic>P;U4$4rAu=ca62)XLT(P|^%DvZKFv32BBYrO6f z{JLNo+0D}>NKRh=eRT%jRZ9@Q;ko$($)FBaEk@}JFT=x;|iy5i@R`< zoW00cDYEmY8ab5wfTR+NjV(RIgrxiO@Dv91%*Uwo5$%sxt}pi*2VLicdj42flI3$2 z#IeUw<$P9DSw8A3pIsNyAR$^j*8#p>Rb!%E7we>(O`2{b3ph!1|C1?O(tkmK|Jf6kq} zVK%vd=4p^;d=ll6z@|Cg5hNpOVW1ESIdO=j^YY~DOBxNY{PIEn$y?my%fdx}#8A>N zB%ZucOAYr}CSARJDA6x<`0D0qPK*)X()?($UlHQB8*JOXM>sL+Zz`;!c29!RyU+Vz zUKusqUiaf4GY^%cK%8bMG5@gwMmQ+rP0-+vWFw^+2T+Ooq7W-y+T&=6=X~KlGFSRe$IYbnNPuJ}9G+&dje;81WUFse2s| zJC|amJ^SLg3^?{w7DY{_#B_ohejNdAKtll~q;?YyPc1-6@V}*m5fB1rLHLphk#_f= zl>&rZ`G=5yrL+G?By{suwFrB~kbMZ#U0cr*n&ahklh^C5ChD(Pi;*skI43HKPX^@Gr z2H5u2pet*-61LH@r8L(;z% zEQK0_J=M~8=IzFO1k+bqBY%EgloAdPpMNAr(9uhySF-nOuT@AO=&SX?uXkW%k`Wq)E} z7ttR-&@~#vW@6YG=_(b6ItvtKvkd0sK$@7kHq-4PAw#^sFs#=)43*kBwFs5Hq8;?ynCD#@Dubx<4A(j=#5knc#1B~vOVjbF_b%er zXV<=|icSr%i8^dCuMO~LTM}m{MB($5PNN>^WS!Bfmo4s=o?GjQW4t#SG&Ul<$T5Psk zaf|)9>TX*dZ9|zs<3l($o}$dwQqHj-1tQJTlbI^je6G{coZQoSC*7M&cmoG<3%z-< z9$jd)0IOpb6G_i?GIR{A4a(9VjTRf6xsolyB5D~$e2!Ir-T7^4V}^R{y%gPafoW(u zzOB1%fG+(;kvYsKR7x4O1Y?9zUs$Hh=S|1sMF-JYyd;bdvu{UKa0 z=iX(-g`!jV;N&YtG5Oni!foN2xFwRh>3korB2sG;>wp~M>>Ih$^TI0@nowT~WbK=# z*@sTk4ceASyG%Lko(*eyPD(j*^tt^|Uu(Fav#HeqWa8QwhvvfFaA9rwXs@7=3+KF! z#Vi^WeGfA|XR+EW-s${9#d_#N#?g7li!M*r;_vIsHY@;o#C^Ku1w3szRfRC>c1b5R zEcIgf6vp+do;Y6qQc6o~2xfKH!7!_i>t{MS8mvz!vG&IIg>x&X=`!GPH<|`H3$74K$4O<|}A>Xk(m8uLrt}@4b4>s zE8ow3Q)?EJl^((r*dng4O$73ax|lg+jg<$>UXH^(rTa<^eN}+s8c>GqldyF2r>OnvWT9NKOfHu;&|chL$-zXuQ9D--b=f`>G;DW87++ao%@T zXWDY@+3n71XZ0bH^0m#d)1flA{ev+UZm+PE-a<}~#KZLwU4;x*Y`&&ng{9)uUcP%)Ry8@}fl z6!Cy!rO*RAqqp#wl8R>b2#>}%3~qEg|AEikaB8GQTgsg?`VL%0`t60GXnT@Pq-`ckW`0Mr`wEMMz`q=F zt7cmeiZyYJkE%fy+ezPVr#86c^{z@3Z^?4SDeMv6JD@dLPP;+loSiRYPpUb61-?*y zDqPr3TPkq|?Qvv^7t>|3;GdJRR{`=|3)r8UaVStaQ_VN9Iz;UdHq|pU;-~VFyK2Wt z&C!DVV{cTs$q9YkNBh`BUsmSa;hTrt9AMhRBLuT-CjP1Rb!X=XD=}-wrYe^pAkrDO zn3SE4$R>$oS~MkfxHVHho_RJl#J#QB+sZOM{th`kEt&D%Kj5Xs;KG4L^oQqENIqA# zPkqaymD+qEv;32z@q+o9al#|gSE38Qt%S{(Y^%ri9!tMF-HH2r;4po2)v8EyrJ!6P z|B{3g#NDzlIeluOTNlPrXAF;W<3tSA-7wAH7Zu;b>&3ezYz9bB&C31KX zAixex%|b}u=jmhA2{R>@6Nm9Uy*vNH0zjJ@v+oW*wria_sFVG3#Hr=nx2XxMrK$R8 z^{MA*&*rMl-lm2Pglc2&u{4z538%IVkMy?so^-2#3@7M7bK(6FL+g!OcUT~H1r{wS zHw-0mF7((!cr*=N3;F4gBkSqwaQpIOhZ4Ihpt$7`yMVg6$i|i_NocIZIYh(*UN!a2 z_S{Et_e$>8Gx;NE8HdEPEe{m^Om7}oV9V*d7Z`n>J9$Wk=Z>v-nA)9%@1-j>;b*3U znlT-^Jm~0(>F|t_sV|>{({2YH7ua^x4VO++uT*N<86&nSS?gsdX(a8WShPkNTr06L z)1J8V}m&Dwc#npbdD#E^d5R*vR5sVz;mebDFwH=;m1tb>{Z)i5uGnEkPm` zi)jaC7Po37%3lE_!m(igs!9l^77 z&^o;?d9#I8tZ_iuy$y!f^l%R(Vs_{|mnYmrU03x8$d+NlyD`26t#W4`<+01UMj3n6 zmr%oPU#M*ca=YrgQr+ny;~#i`=v~s=^Yrv|Q5Ow#VuXxlD%djAW7|{kw(i&#M|xtf z&qnUBes+mBcK3>^*Y1{thF7VrQI_5e+d|YJ%6Dsto@E24!Ll}Qw1&+`4oS?c4u7e> z*3W_2e$bOP9^9vz;LBb~bQw{qxaO{9AnR_t#$7%040;~Jy5a3!k*Y$uwLO&U1YMFS z+zMcckXYKn745E}E0hv?a=EtDdZW@LUp8;_O_gTSXp*v{MFcDZ#~cT1MM@mMn%|DA z6>%sscNgU!2W=W_lKaYN^%CjaGYBf2`z3L$MMU6gnZuayosW9q?-hfZrTV&Qq%nfJ z>r*Is$;?iTPnL2bppHo8;~QwyqGP(iHP;C}&su~3`obNnZy!b{(#&y6ohc#MI@V*;{lt7v-*}gWe&Y-gqKb|FXZ{NI8Q4tt=&i~X_eaqtzC_`z zBcm4yxTWYClOgrpI>o8>N;S0|n{KtZO`uluBVCM&JUXC+#0@sBl4 zOXU}bnj|W_X})!Lh>zkA-dq`j-Kgn^jNoyoQ7DD*xh!=~4(O2*;%Zm&k2y3yqh*|` z^*@khy7HV(E$Td{daUq_Tj;K)X-X)NcCsS2e*o|6;{zL~+TDv*KZ_!XVCvj7zCx{V#*=WUIaIcX@clPRmJwJ{~uN@d2Yi-ITZed$$ zd(Z$BzR0l*uJQ%b>dx?u^W#aygFI%mT~FXSe{Ac zqcCeW^c50PYNF2?fB61kINw7ruU@C71fiGTJ5rrY6Rt>{70aJwM`$K&gdD3^5W$w` z&=Nb-)kUJ!M=nO9YaEaqlN~dzi?Oc2l7n#_;!M{!id3%A$Cqc~TJ#ibW-2^@E}Fq*;l8<41uDVH-MD?I|OsCu-Tug|*Tu{ql1a zYV}~-=Oe|&99mhe%~Mn7A}Lhvp8bvbNocG|xVn{yLE=1f@G~uZ8v+8^x@?Nw^+2V_ z;?fXO6S0E&c~6M0bObh-7nG(l)%cZPfV=`Vd}j5v4R5w;CR_6KAZuO$^2C)1;}*}{ zsS)kdO>bU{O<}^hn?n2Tx2%G4NRO(cvhFE;9MhjnV}#FK9{+)+%#eZv54$XA>ZJD` zD70%SW%7q^hR9kh7GK6eK09Z$hx1}%o4>`*gbnu@yEZhs(h|?!b$Ke@Gx`De!G4!Z z#(RD+^hnauPMi0OF?tA*gI)&Xcg24AUURGnLgB(FVge?YpKq2mDEi6EtI2(*$4T#I z%}|Z*g>DCt88KX;Wt(>cA|F31HYbZ0ANb@F;UgotE=oDPp-)2S2|J@y{Sg&>>sT$J z1q9PnZh~wBeBuQyv9*kpXL5BS${#v=O*daFJ5MLi;!Gg>qbJM8oyqXJJ&k(f4UBaaA^k|}5lOl_7ga>yrVG|9vc9en#_@#aE-hAnM17#vr;I_?Xt!$W#N#i5 z$a9ME+x|t>$Xuf`ts_k59~&k=ISgN^DKj*b8HM(W#PiHWlI*QJ`)!!narO+QIwqs1OAM&Isn6-e_-$jy4=X$a#yz#5d5>o`vZ+c!NT_1G^n@R8T zyXoaQ{WocVvaKg<>hocwl=zLcC*}1RYvGAs|=XrszcH+WMw* z<6D*{+q5^lt}pw(&B!4U8ME%<+z7#qGhfYTEo(5T_udIwejz}cee){hwoq-%p>d6` z5bT%bzBPSeMDvz7%xNwm{T;W0p44f!<7ysDG_=YxYIAT>L9pp(^rt=>CzLs)Jb1w$ zlFTC*lk*8NvN>bxFz7HXE`rUisvrA}k3|etjHusS{itoxPAE#hUDALPBa-VMy3P_4 zeZoEa{Oi?=z7%b=$RAlXW4=2kA4iN#3N2c=x?>+=q>AGjuf^s|3LYD~ARpD*-5Yp)@O1T#M*U#?fgIZhB( z1g%KJ)bMZif)`8J&pYdkyA!#qmr~B0mo$!)-YVLy8D2-~D)2pC{85z`=WtBIf2@pM zgV`DJL$Jg#!7&bH5VRpU>yKD9Du4VgNwC3ZH>x$sQg8aL5V_)PnDvlY)3DA7vaIvo8-OlqcHCxRA#JH41wC*HgcYN zO4m7nTJ+kTUd1_%fpW7EWL|7dJE)SrA!ScZ#Oc;#s~eZG_m)tQoiL(`!v|!&l6JUb z{;`tK$%L?#2BM@Y!hUIq+5g%0WhbIW1*R@YXT6@-nsn&s#+bMN>#d`5SkX`l{k+@S z4OOByGkAQ?d%3L?LT68G$J2_pWhr3|Ud}j9|F9kZ!Mv<&Aqws}bsp z*#0&s-ueE^0o>G77FGYPwr(oqJ<_?LjGDg9=MNihvQld?sl2Kc8MYp)gykPwYlW?! zBVBXBgzer=>jr}JH~Zis zR}(I3c-FuRR($$h^j8FFt8v8%K3MG3p~wQRx`8wD5m9kpe4TgWFumF!o$yu5rZM== zKn;Y>N5U*^GZ?qcNU+#;Fa>G+W2o=an8@MdM9ZN#Qfa)%(536|JmL}OWS-Q%aGrs^ zi!B%^B4`utIeh0ICOmgO=MTNAW*i_-1VfvjW;M=@TGn^+OGaEmd~>cIFT)XqXo$lZ zDuiQi++_cIfJJ$ZGJnMZevIg1#b0${28$Op_9`Qm-Y?jBa~)DmL%jLm6n@M49CbxL zm?5Q@G|a%jl?H9;C84Ur2fzH4)R9G$=QzU(!({CMnD=cT6b zlVGS7^w)Q}%nW4TA^*#&&k`luisPBQs^_R(0MRb8S*PCtEbB8fe&f8ILrT9JU;Bml z^=*O{Te1hv<`fl#3X-3vnF~LGw^r3TOlbnc!5mEqrr1_#%Zv0pBpoU+=F7^Pt6*b({B++n(3)2;mcAV-nm{fmG z(F?i-o~3Y!3L<&QaL+yQqyeH8v?^hTG{I029sljO)DQsbrim$}xe7ifMb$a135JDj z+JE(}BurO4EdMSinZo(O?s;Z^L=2BB!w)c!?Ak~(do#Vs=ow#Uu;xSkZaHdYHNCfloM8scx>*_?N7|JwPflOgf zNmh>t6+}pN9@O^o8>0j#5TAM6ko28gDW zT1sKL;?M4nfSopfb4_8KnfqQd*ErA-G>wY0Bv2Vi$X|WSu}&M7Qf>I0OkuXIZZ?z} zZWz&hT^@{UwfiD%P5^-@(zw-44?36?FH{7F^zMV2XK9}J_;UXzvN(aS@ZTRlb8rHp zPdW|CiajK&H0ol*Z?4a3MU*~8Dc0Tw0zVNpV-F~?hyT^LCZ8eNWxPs`kSWyf%eadK zaBH5d0KYsSfjs^mE+CK~hQ((sC1bS@e+S6fbBs#k|A8#HG0q3}y@0#|Aewio*vsk% zS*249-dvui@rS-K6A1Dn10uLN+D5>EDrumbkWW5*%;2 zLBtNO{SRcJG>$%`v;(ObKlF{yG2)KDDfsTS$3$E!9t@_|S9 zHW~m^cAo4bms!8pw@=8qt2ze(jDaSQf}n8AD#8(LQyh{Z?+ZwXle6kSL8d^HZ*mH=e=d09g-pKXlOhqk;C1xtz^<3bJ=hMiBMbeu^jeix2-KA>$z^~uR+|* zx63i@2#7=sOq96iZ(DgLIWXqO$QuYNt-3`Iz8w+J`w(W)95olkY(svQOeJRaH*(;T zSD^iblg$%Hi2o{@iHH1nk!O%eq&DEV4I>lek)QaAuGVOul~79;pD z3nrFP#|pHFzSf;-QqzdUh4)(qSM1tx)yL0W2pHrtMBVfj#P~r~u-rxd=Fy6Y0UQgbDYGbC!pxUzpWTp*=;08rjB@?F8 z&C%)i>tE;;TBv$aMKHqIOvhdJuw1o_R8XxZ>A@Y^#LY2ZkqW2jYfFmz1*1vtQC2bmwdPcd4s3}Gp96pbCRqYO7s*f# z%LxO?I^Lh*%VY#vXvF&O%mFi5^J#U%`Dq>M>Q5e!LGVAcceVkBR~G&5->D;HnT`+B z;!JA19#7S9!rVXD*@5h9xOI11$+|3f^WPa2e3%*FdkVLIiXEpy;;%Z#iU9#s2+{vL zYr#800amGbJ_rTu>*r*v2}os14;4#ZSn|BgdiD7}RPB|#-;NN~MPWq%BRVNx8%m(^ zhf-bC_{Mn>FYrL;!Zk`QydwIvP5S>p8Auild{%*JLcNnJT3E==J?14&Dg6(Q&u>Sw zG5iAA*ltl1%S8Zo%5viy>@3*FbDR;T2HnO3d!mXvmQ=SVW}2HEwY#S&PsfrM8EHAj z8-4t1MJP{a{A8ddGF=upl}y1;eD6$G()n*Zoge$=K`P|ioErR_fLal`_TlNHWNx?I z_&eNYrb5Q$Qj&RX+ImRqKF}h-EiMK#-yn)0b-+h|U~!W*Ad{t_({+4B4G)Zq3e@sr zgm+XtH?;mY-fy4Xx9&o{8?KKtv%{914w3a}`hU`+KX9AQAKKdMN9MJN)q%`QWM4o* zb%N#-Qqk{QI+@v2G<%w$?)NP;$$qK29xe=RL?c32^IPZ@rnyDvIi3(+G(HlK3s zv-^Cuh#c^tL7`&qQUPRlzV_qqaQk_!h?T88nb*uk{<^=B4Uod026!s2+MhaP>!sY+ z1m4;@y|Y~Y2rj<#_l)Dupf2|B?*0!p2rMtEhZzBa*tf>`%B1Tc|FQGk<4pgB@}r`}mC<}EX99dwp`ZjF1*EN?E}eR*GM@QL zHEWjo>I8GL(TC{2Wq2@vXmmDW`&--wJb!d-kJk?*9v|6nnK1ZM5R9nr83zJB^7!rB z9reAqz#BXm-LGkSE>uaFpmw2dwZCI{|G2sT@47iKL3*I6#>r414+fmv_BR5|srGbe zhIY@&DMf$_^0mN~!Y4zL_7 zCVSH^6?tHA)JZNc$p0Ye`rd2U)vuidX^Kj5`Dse}BYQ?5qjI`Scq6%sD`P_djys5t zcsGk4pKfPj|3^!&WSLuC5;Kw!who8g5 zs?mg6?XOAX9>TU-aE&k66dO|PjHu>1DU`=e;%N6qE<|vYbEkt3{0sxy~>l zSEr^9n&8J9Rj-|~SWnx%=1l(WzFkn~9(mE1Qq3j9pLY%PSsK;kYtj2VjtH#Mun!gT zRg-rQ+0B0@*N)^TpzK~eVMNcMH+uJ4C(zWq9Z-dyI+`!*rT9e4SP>K<@*E6%cT~%B zC|{xhJ(y44PXs_5O9P+V@~9REKOSA>Yi~m>B)@F0`Lun;bqQ4J*=A3c z1_bMze_jCP7X_6+!~U-tpptre9rP9art8&diNk!spxLuWz_1k%_&$dL5gX$3gP>2K z{{=Hxr2h>4^$s;Whmx9#b6>>NPSgQF#1t(rW6908Gk+msK*WM=cL@-0-qVQ^SUwHv zb@rY)Q7i1P>C;Tn90I8eWemLtFR0$GkeeiA0-O^$N5Ag#7ZB0c_raD#Lo_~EZ;LWL zk;15d0u-JMG|%?-%0(EypE&xoR)p#zyQvz`3+w+-MYzan#y|tqOt{1o;k#SGbV2Vt zgImFG)c(+mdeyp-Ks$v0rlMpWbO}Gcrng~*N)ZBs?Ql@ds4fpzSYl_|!ecb!7H9#+ zz6ZPytN!Gpifp%4Zxcqmt>nj(=wlnRuM%<ruW?WF?2zy#hWddLjm_3!H zw@W!xq1~GoZnGgcM3VLD^cILihCL#|E7w{3)n|~2JoJ6GT%o1Q=M9Q1BC83w=JERn zEV^0qRYMk~rh1r_)x#6*WtR|%zQUSGqSsSqH{xILPK{2QOD*) zuw%*m=Z56?AiJB&*7q{QiO@Wf^wJJmI8JDiKLoTVW=q!UH`54RCYBwomWA7s^p-8X zLTf`S$mY+-px1dcWlO|>V3PJ>r#jTq%He;-&A)Q0 zA)w7zaFPL2vHzBUX2*fTSwMy1Auu1}V%7D~!ZEmol(z_66 z?lDzxcWo|kL)2q%D3gd4k<5$TZnJ4AmV~J`yopaUiS6wyzE78RuclBh%Nfbks{efy zomHdV+-M6a^q-7hMm}!x_OQZqNyJHSCOJ=U0^CB)0nY)3{DB)nUy~>v^}LIZ67fM^ zvHzjxwlvDCIVAU}F+tYI&AJoEnPre(dd0T8^AH@HaWP7Y&Pp8(Fff%xF)bzfP=43M zZYHee!UzD-erq}1^h5teKVvw6T9xqgX#Ut**F~viMWpjCZCNMt#nqx-YyV%zexQ_z zSFHl|@}UM188w0|!p#rst5@@D?CPZ%@jj&b1qdNsr4*PTpLbPv(9yEH?_s@+2u2RB|$Aq(Cv4k5KYaSK-LEW(~% zm#v30{4XXH=mBhz1G`{N@BBa(NUm#sGj>WTRof4ZYm)=KRS>;CVEhkjG_c4v)YzGgkh51G*TN+xzB4N|1$(UV zLT!&mWK;L`uUn`kIIpl0XCCTH9nVSF##!ir~H_ogP-;Rib{0HH_ zq@A*;d^qChtTcWMH6VQ&zk@|VbaG93fp5~T$o+mU#;vOis$PHE6=0b!xUR%@)Q>S> z<1kSyk(Lv0(hKbx?|Q9?SPwpEdUE@a6nfZsNuXg^-;}pA$ zz>YjED?Zt4v_fa$osFm^QKJdq{~px*ct7@bw9x5`jde%O>!_;CsGZ?z)6rn5wdVIeX&#j}8(%Am{s60f*+VSq=lJ0V8aa4U6>sD2+4H zZ8fSstJ7Z!AALK?BDp3c1<^cX-Tm30sTJA}SA9i>ghWQ0AJ05^G?7xMfKaUFO^UUfs8%NQKg){4Ou7 z-J$eRte0(Rgh;Gr%$vp~&58B;t(p5wD$i;iI^HYle0G`ZvH@$q@x|F*?jH?@Y6y4L z#^U+ExehoRb8$DK!k$Ww@L^%v(FdI~o3PvsLnMimc}uyv@oa#LPw{>}1+e$AimGDi znyK?^H&K+G<#!tO2n=%vC)S&~iQCz(P6N{wJkBvWCq}q>cO;Xgo{al-=j!P6`jql1 zjvYGA${(HGCp$M5z<(T!N8SqrZ~rVR(Z4w|p?Aj3!}G(@v#SlN`p1@gu3x*7&)j3z zsFffj?YnL8xdejag}o+nVbrGvV2i)6#lDJS#7Iwk$_=><2pxuVos~f{-S6)QrXQ2f68=0=lnMxjq$#>PB-GKonkE7*N|OjWv}7FWDc%#t00`B|X||9U9xu>7;8tpHkK#K*sbX9JYF2zxP9Cit}20g+aMotuYbIkS12<^QY1WF%-Z!{LL=0clp5tADDP#H zp1_{z5=ZW(tXd>Vj;Dw9EFr^8cgS0AEO0A(ij>#tGe{6I{9FsCZCuS)*rIEB3m55k z=oE(z-meM!O8t69b19|TYbv~5$Z{@_x3sD4dEobceZKDpnT^AK8hL7lJB^O!uoDNaC z0#tff8|>u8G7G~98((rdoX|pza=N1H*G5qEXRn@DY!(j-5t>(RQ`>BUkj_R+X0{hi zOwik+TSk2dOQ=}wa{>cJmf?W3i_XmXQE-uvm}4z`>LHH|(yTLUbk2`$tf@>I-fo*) z4c7SmR-EoyXe%PKmmZz?@;1k;|5&Nr&{T|(eF5UsV79)9^;pf0>V=6zaHBGB?mI2R ze3PRF90r9}Wyo%WnyacWWQK0c2$2-z2o@!8*kz3yw0-(gKFam9B*nD44Ij8;KYjRPfj5jo#hnNvdKAZ`h$+^{B2{kXe8Ws-#k=z}W_(QMHfY z)jd=ping4Hx;l3T8Ss=2;-Cm(Tddmb8GUe zhb{V9>!$!Fxdb8^O5aJd;W_oE}(oI6wQ`g#l-a*vnlF-^Kf&b}g-m z;XI)w-WqE97ljD8#pq&YV>501Id;4ca>t9M-}Y^;-Ez-oUBRXZp`aYY0<}{6Q9dMT zJMj_zr@Dvr;*YM~8OWfk>Nwa}DsW5iho;Gby~_M!)1p@2qkcN(1-v}o4AxV4H50Hr zwlR;IEVVb$Gdyp%-pFB9^0!vfJ-qw6eSA062D+5CAF&DVlFB)>ki@^%S zwcSZ7jra2;`B~an$Ag@W&)&t}@MSMFZw=!NNUP+Sp3D7obYGjB9`a9J|lbyBgZS2^FB%p zR}wqTp~MHc5D61Rq?XY9P=&<5HVBvRyu&;uBuL?clRQ%0b$40QtVb?9(DE2ITD&{g zZ~Mstm7w@yeV!voKQBBbKxt6&X@IAU&C2SOSbf@$;J%@SHrwqF{yOWu3Qiedp#=Wb zT=Re09gN+&`dkg9-@7+VquJfzA`Zbm1`V19Jkq6h;gmjzFh#7Diho_18VY6_1@<^D zYRe7Yw9<+gI9X=_6`}%gPERdF{ z;A2?gly$5b%<0dgHW&D&1$)A30!+iR7#jz#%@qIacR&68m*to7~gh(1t(uxxcY<4}lM@mqP76aDBfFHFH^4?v4gM@we#lUj+%c}`6jFjG4fKp z;&UuBc;N8zd7awj1N=3|*<^S^WyEhaGa>7j4?^t+xw@3;BQ8v<^{Yb+D^1V1&T`KQ zs|W%da&+5}n;N2B$YNt~W34eyR;R|IL#&i!Ptcm{CLD}UDem6=nFVXK!ZGVz_XNK* z!&-txU17g%e$r0o0SmsGNNjP!g9zDKS`by4TXocHl2_mfmZbFntc?U9*tk+(1Q+rX zm(ROZPSsp1n<}5`XDz*DMupspE3V9zy=L(-nJDu(- z>;Mg&G_T?eKf|)N&X6_op|l(RA*MU)mVV&y?VIFX-E955nAj9nD|X7=4K&nl=;!8$ zIbp3mQFjV#NJkcQHK=sH;UO9ca%4|>B}OWqFY{jtY2lqn|Sm@>tx-t%o@u{ zAumU~pg${2+L?o~$XZ5SR5j!}m*84_|9(Km#?np+K!w@AhlydF7q;S!Ue-i!_9i;S z9$wDp+d-^w^R5V6BB`fbGPNHJAd2pQ_6hxF?t}Uq7BMTHm)`GoTa%^rFX(-ET>5!) z#k>n9^7sn>Tl=b2CDxOPC^&H;9~n`Pbee8%k~HsBNg+T&vO}f5=oULMvh-Ic%R0KR z1mx-@g-Lgz+Fn;1HA{xAl#)1hQXUGqj~J@t?IM#Rc%7A`U;JqLT&BDpnG-M8{N;vk zON)a>IM{`3D(*YnKQ7CJ7tg}_$v!XhT9J#t`X2Gd3zkBb%d|Q#^IK9AM9WuCLn)m@{XWgxrEgkRo0zV z`-bu028Sq^-% z&n@=+@bL|z^j@JQic^U7ZuEQ!djwzZwSmazWA@uRo)F35Ljjue!y*6%19leHny+7<&Ph@Ab*lT;T5eH!k+rFumL! z`3rY)xj{awWD_NFp;C8;ck5H#0rBZCAcOyI=dL<=_nZas!$hIe0M|l)nwv)jhl!_06`I1} z^W%`C?42k>Q|~5{)~)zj)Em;o>7^xW73?M{VDmJ2!@58`1c}r0g=zfN-sBMUs>zdy z=Y`f?d`%$O?D+$FNX-f@*g1h;@6J=TtAxbG(&DjTFR(Mkw`Rv-Hy=r|h6w-6b|@Vj zM4ZSO>s+T?-ZK}M*Q;~!~yU-mJ|0!TMi$;<>?n3A-1yKWL&GhHg|_04Ptkx+o+Dh%_lQ?^eHr3&Thyxcp*BTAmpdQLm3$E-z7sAt zRz7FW>)>A{P^$od@*cC>w-W79E|CexK%srthimJ|bP+#;W^U;*c2HiEwg?EEDOfpF zEj>H1s9FnlTKW;PJ72q;^qU@l)uw_*F0@86w=Ta%^a+O$mE%Ns|7t)Le(_d(h4+h* zH@>@bFaZO+>E+C0NFq_4MdES!F#+=p|6zc)x;=Mi2;%(o9SoI%^W9t?8QL8)-NN?g zJ}zs%evJ60*#Sx7Td79sNjQvL+_L{JV!0xi53lRigy3?)w(D10p`}D=(+RpXupRm$ zZOI-kwd_CkIlm^FU{ey~Fp7vFHp~y?*`@2mdo5Dv5Vk}BMjLF12;4CBQHSqtxDPc{ zeGx@eTRg2@2)YybRMM2+de>)ht;>~ldVW~Sa%0%BDRe!7ytw4hjU8E14b4Z6T-fZf z=T3ygaawn!I6xLqRa>@q%L1na4Rj+$&tB+*Mh>NLUD?UMTazYB>GYW##GgToI-u60 zF4H@kboJF$zU7NBfH4b$!nb%2cH)+X($%6b=oCM^Erm`v1J>{?12c$aF9mG0(&Noq zyiHSRiAtd7p)KbLJ@U5}LKo4U@v&0DeL1GQ@ih;FuY53614gW2UyWrW#JllPh-DsW zQ~e?|1{b35yC}GlH^^h%l@YxhS`x8{+In;WD@8tqgXX z+?_ny1?|H6-Wm#6gJtK6vR0DTnU@WONqXt2kJijw;akF4!PyaY^DwS5HxYA zoNL3nCK=Uow|etPhH_g!v!`_D-tAmq!tbnO9e|fStUa`wxZQ-BzACoU8U3Kvbp(Cz{i z%!9b8&iEo_JDvq3)(rE2TD3S7@3!30B-cr(`@qbjy=%@MVK;g+9`k5&JD6Yg46A3F z`{+w&@LNAfKDfSB#00bF70GTWcGmtpX5mM1fCkvJK6XQ)B;z7nIYF-f;x}gJi*Y6L zd?CqCbijJtYBE0Iitqcy;hHW}h)r_=N;>EpSX{OLc>OqW*y3r&HJ7@4)kr>3Fl~z* z#l$ODYI(mAPvM3P5fY`gq9DHTfiefgj$)8UtJL}vhXD{AnrV@+m%-8e1bX$$$HWC= zPdlG!C%Ug|KqUDuwQCVA->)c*1ggaM+sv{N#O#2D5#Osoxlq6+VJKQvxUrHRme_Zh^<3; zhuj&NN9)oNl4Av^NV??nNfmfTuR_f8a0gY8O!wEKx}SK>I5ovgKJYT>3u&8fvkqGN z43$Bmb_fz?X%&x4jTxT>*5RsQESbpv6pukU@K_L*t-}1Mf zH>AjVEviDC>qPYPj92jsr*X1ip^U*zIkfW9D}JKZra|6J(StT$tbQAtIV7=%I5rb2 z7isFDl;S(BNw~~lC2~1`64Lu62}5@fo@tA8Z46yA!!~LsJSD;Y7klp=6y>(`jVh>s zs3a8;kqjb9K|$gmNEQ%~97ZKcmJ9<7K@b7SNhB&cOO`kaDw$EDWXUiC%n$|!7~rna zea>;8_xrv&@4a>FR^594*oBUpXV%lJSNE^Gf87fsnVEgP;*?JUpV*}b=kHU-W*HnO zHINB3Pk42WC6g`C|5^pf=`apX#Q;`CWs)aD(DUc@9>%^u_3&N?%TYl~dK!&oE>sWa z+B6K!sI>A}F5GwUt+fo>(Zr?GMqKDRAC-Meefut6%-~{dpbY+mo#4Zo*o_Xo_IXPiWo;%Os){&FWM(AO?-iTY zD12?aW0)(LEO2)1Y4m-3fe32fx=bTZd6SDvBJuT*s)R#{b9nP))tCNk*Ig}V5Oo(o z=O-TqPc^zx^p#sHdf9x_)>_XE6PI^8NT##opo2>wCU{(OdlD#IzM|=c32rFCks6DX z_!52H0VCg86MR7$!&{ROfx~-W8nD_GCQP=cQH#b%tnFl@m(VUf28kU5=V_owPh+&o zn*Fxz(0!2$efwPMQe|aZX=)Zr{S#YG*W7*>NFnoeyByx7mnR82u02Hf?YH)9bgPze zuSJrdRiOCbXW|w-P~yIC(4tXI;X75S-Bo$dbSYPT;zL305xm~!t5`5JKP_x{YmBY(xWBd6-z_nRUw#%X%>0OiBh%X!3Sf3Dug%Rc^`7XwJWW2;>w{ctCex z8ZGIy*^!@=9%o#)**-XI%8lGwW9t&}DfQqx*ab{rh_rAFUT%p2uCndBGvTqkK6`QdHoU7>N@xPyez+n(CNeK0Gp2h!w-%!jc~pZSlEQ6{W4aEJDyY+=kAo!*U-_`6#Z&l-(s^pj=ynarS zS&YsUXjOS?8c2GSpYdLhH^6;Qsd$V#m3-4F7k>3o;~LiGU~yPyI?uG_?IcRVdFfJJ z>C?`m!lKF823w>$kCzFL24eIf;-Wn!&e6jsZbklTdLTa2$Cu#=%o>9Db``hm|*7ILe%soLf15;$hH zTZLKm${vrixd;!tUsPkFk4s6kdo%l$a!&b8rstJqj0zL9y4a<-EF{SxxI|N&yD=vr zHmq4GIAgRR&wcS=lMcqd_K`I!duTPsVl`xJekNQn;X8YJ(n!DQ@Do)gIUR{z1vQoE zCtp;#=`72d@x^w=JGu8?SKkManuE!3G7E}-8#%;v!Tv21eEKxvTgvk!{?xRYa}c-e zozly0xXta!*L!bXF(15xlREUK*5ypmrOp4uAUagdET1|h$6~c5C36P;RcNw_;%>6eE4(tZ29Q= zucMSewX>Avflu4r|GBg06(9wJq%1H-_QO;i4H2aMvy0e_;g`62>WLc;WQEBXCOa3pk8b<;LS zT#ckBu2a>*^kI?{CR~wkT!$*rvQxatxshAa8#45}+vuYvrV_7|g}x?CR_rw4jI-YX znK^o)qyvSWtJF~06zS=OEz2n3OFaGR;JwhLO`nWUT61sM`trTxmWL}5e9HRo5HRdp zvia3&N3`g&w6LB3mYyLeTYq<;14zzpl|R;z{^Vowd#wQkmC{!^7SM>!%lw9S{! zvODfj3Mna}VFIOSp2-OhpQ$pR)bjG0ArH#Pf@lg*A{x*-F`BJkm6v0!B0ba4m9{(T z*8A}cke=6JZquKw4hlqXzmQhBpLgSa0m4vp zz>K3aNqo~YE7OM>ez$;Q_N5U?4gK}8^_h|z->Kmu42Km*^kQB!*>l|q+5+uYC$fT7 zge*H#m7$BD*XdxxrisM{eODqoZ;qWD(URKBcRyYDTFiO=cA^`-Haa9Q2>z*6f;xQH4dGK`QJKDv7A=Vrzm4jQwu1Kg z4Hfxmj5Jv#9ah4d(qqDp;My}Y^OQMVvsBBH8LJZdhU3FvI2IMe3kuuzdbp$Mc;uVu z#ke?m>=icL?l2g(i{o0uuhZ?F4Py{W74&kR2lJbRQUa86YDW*=It)!332CaQ?WrEk zsxL7FYBuEOd|YQC^vPZ*#j5i5LJ$z_SXnHOi)BZ;RLB(w+!!$^syb9$pS%~++HKH# z;1LDgKFane4^BV3gsYFKIkHl}?uXNCb7?)eBIctHh;r}t^AQcq(mqPzvN+8tCJFb4 zn8^EkQQBcW%w$wcW=*Wp)24!{?&OGP*OF`3(T0zuH|A&t)Uiz7+o7ZOr3-a1o`>i) zB!~2AwsG{q`XZ|)`n93zJ6s>)nMs$!)5pN|IS9_rw@BG`f)trTi>KwPOnvH`=jK$~I^cJ6g#yDGl z>YDp1!MiluI^U%mAKGskm$7riS9XS>WZ!LRRAKV9>w@Q#I5NieR30!@GLcWK%$lEJ zXX6Bq>&U#gd)%p>xtMbksn^9?ki}QVKj-vlNO|07yItEM2rV8&UfSv>o2EY$CJ-L# zIUg_|4}$J>pBf4iPOY_{V*SD^nh2K~?Yb?0y5qoPAI&tUhSt-_kj2kkCx>L554*)0 zO?!MSu-CoOv*=2T;ExN6_~gN1!4?fEq~mPo4yRu;;a%jch@FAn5WklZ{Af1Qb!pU4 zx7&!FS649Zt>BRnGe+l#jWDYLX~*ewb&NT}S&R?_V^f%0esL;7*ROVee*KUvl1GS zm;G=u_#BNUecr=1gVhaf+m=aYc;cwXB%7$7%5FK|vNqFBX&~06jLZDQag7spl;UIS zl4rS&MbN;HUwd+0?wJYRDOg>gvU{%W2q_SoUcs|WWvcfYD%$_ak77Q$-^YOL6={gTX>#idHOAccjXZeYcAhnwgmCU^k_f;)YUwUQf|^refw z{gqh1`PU$^y}H+VhvJ-2yRqv)|Dp%cllL|8Jeqg#Ig3?i8VMC$^Rq|$4@@tuH+Elw zD29JAmD+3P7ftng`)Lg05Z#?z*}gTRo$Zr+y038gx%0+=^6tS7DNt}Jt+&RUd2l#2 z+;aXWSMRF~bQ2An95TF^Zw-EE2TtRxO30(=N~q!8$H`9w`mZwjjIEO#A8BQw2C#Ma zJrB_5r*L{WTv2w@9qy&*%Y{JKV|l-JOBK~O#VZfkmshpz86ThZe0 z5*zWC&aBd&QNG7{8hTaOShpL>9&(N;c8IDvo|4iyn>hSqu3X6K6Jy1*At8R8Ly=Qf zvL_iid?Igwk1i`xbCR_0xaYO)P@;O$Ki1QRjmt(OCK&+_1Om=wyPj`5R@ zN@a&p%i#;{>2j7D>D-**Ns04CiJgI*n^m7FzmR`(yd^)vf-+<~rm~Pvmgrs|+ z#17aZd!-}*iPLt=gK5k)k-Hu@)IhdRh2pKG%|%1>8VMwI8O3`0cUDX`XE5kk=*q( zriYjId$@&U&^zR*r}eejRGRm`YbZ#1mU_p@*mxCrZUFEIff!j}8 zEhYWvp819_E5ecs%Q^h9!db}w=quE}%+99CfMO&r5)oLf4s6lvrWzISG^<;UKFbR;|G_!@ONY4`f&icdqwcazn_zvpYK#S-E1-fEq!s?52UnKQZWCO5 zUCAMpr=9)}rimP~aO?!h-QWI|Iy&ymldeR5t-^-|=R<;tTXw)nFwR4sgADVUCo+Sz zGXEz6All_Wj70%jf?%u|hIMI@wcG{!j{k2gNa_s9^de~GNU0Yf-04HNDqqNqr-563 znfuR$_2+>H#9#AN&4&C(^QT%SLF(v#u7!=z9rgk%Ji7>U49YMF{t){6k3c>+F`GBwNBkqt0|VZc z*?YV}%r2lqhUJmbw-KUFTs;+l-2~k&Y9{pXE6cd)?9&fA!4^IFKY5RT+oFH20!YMI zvGf1g*8H;L5c+ES?6WSo!@_CB^YO9<$}$+Pw`?nqnb@py-F5;lMM8>kkp(^ zTlEa^UwKST4xxJQ^JBnmx-G_(S-tRB&MTnMT>rNe1V}Ce>W<%i*5|Fn05*I`?9G27 zlI^q2e_P9W05NU_W&AcO-Pb?=M~5FEC>fdU8z2HD)0ehG)q^0QjEY;wUkga&Lfn5# zA}aWG3Xy<3^ef8kV_A2^t6QTq-cv~4Do(B>b@lbt7IpFoRLj(F=m!%vE@z>Ie0+_g zAXiU8D!ea1&-UZorj2jVz?d5x-~b0kU173LlQ5BHu4YacmV#LTp#qNyB(jldW&^BPcluf_{B2+ z6UQU(w-ro+uLl?|oEYc$xff$9S|HC|l%txYGW#`xla=+Z&2TAGS~&F}-SHt&jSo-H z94D7y!Gd;Z0Tu!nbyISVdfMs&_a~OtdCBeG1Q+VNXv0H6MQnad(} z`8muPKj?lgvTxsJAtjeNMj}9iovruBx>%p8%b;vQ9$b!LJ)y<fyvT4F-rcOa@cq`5-NSjD-4G@b4A!R<<#Fu@DHF zc`{a^;AE7o26wtkR(}7^NJ8!Je?$((-)RoSOtOPH;ecqE8MO_TwC!f@8}56y9X!V0 zU-h@(jo;i|TLh>Vp%8!s^4ERxD+_9wl_d(65PVD#*7Pk*eGDnRe;-7x5sacL;OZrF zFlLiDtKEP&p6$BMb#Z!58~qddQ!Op`*oph$B=`Ge9dh#$0@w(}k2qdZ90#;xDVo1O z9D*=?Dv#jDy_7Z+)XThT`tVU-2Hdi0I(mh*1<9rMME>5fX?mKP&+5Oz z@ooi0M{=2ul*i$4usFC8ipKY=X{n4<tB{(4ndb09!?EO9D5hr-qlO-#)Ad*c*yFZC(QmZ^bBa zLxmZcnplatm2?cDF;U2bdscMSoRp~hL%+A+iIgqD%{M3mfx6Ic2i%WEb<=~9NGlO> zm>keDaZ73RyMqbxQxKRR0_Y@w?GcSk2NhX8wok$<$F%|ioZPo zyNM3g-5S%1S`yxNK8czRzGzQe&xwp*ngs4M&gr3HBiQwE=-xX)4X1ewaN%RH{UpjC zqx_uCnzJ5WJrCAgKhRnNi#|&fu>NlWhvSOZhjBFU!$LilN_l*8!XPnWm_D+!boMy8 zC+o);Q^BftQ;Ab~->p{WPY<+G@{fXJLrpGy98yY2j`)dGO<})>AIVlOehEStwwA;n z9e+GP<|E<+-WR32njd0>V__ufRXNu$t3!`Am@PxI69_tGGM3>$_ly3f`+gMI{ehBE zO{!YdT@j+7o~Zp+$Dzuv&|yXVZjos~_eG%Ux_{TkU#bo_f@dgXlqc~%pc1TlN=e)$ z{O?@~gb3P4f)f(QRnErdj}0d`dcytp2mCkHSp>Ke5ttlH^a%o4CXFabD^r# zcp=#c@u#in3eVKezz@quNAM|NoAq&J1E^2KM;bbzogR`ceH)%!U8 zT8}^_yC~7#f9Lp!>3`aXyP5*?v{IlVesq`XV?Fg8N=O8RJ|8JaRPa(dE>*>*O@_JZ zY1hHb_yoWT2cx_QY+^18@kF=+7%pk;gI_p)nY_C8SE(%24}r;aE2l#Oi*AqQ`XwGn^<+km!Ijf#)(QI_U^8;LG2A%Cm5mi0d!&$VxIIESdL^D!u7V@w_OFog$fDLfi z!h8drQjepJuFz+^1we%Q4%zXclezMe)H3)latTaV&1@W(i7j{Y;J>64$L5h~n$IG) ze{EoSPU|2MVq`-C0Mb?l58P6Bt2R6M97^ZB@}qo9BZ!xa{o~%(AmE(=p2!C3@tSHK zyv}dg7f?V#`rWyHKdaZDjfS}M%l9(DfHfg-0p{nT+cpDA3%zM6>UxVpJT#Ad%^ZmS z(*IaXlo+)mz%c8&PHkU_$l&EFIvn{k{~O2>VE-19gJ`lJZ|xN2cm6W zSzY4eO9Y=F)i8G=@|byk3@z(3AU3HOiVfdkpq^c4Cv>0w6__CHT(@2vJJCq}bCC$| zYINE>7kg5;uPjCgSP6dL-TfEJ^LJy#-?j{5BZpYty-&eH=*Euy0V@ShfW$?xuIre9 zQO*4>Y0d*s7rZbLP9yc-dY5A)haAsP13X|FUihmkVp>Ax?LU!sPw?3e)%stEpC(H8 z2FJ(xN956K%`E=dP5I=&6b>Mdnm^>hqI9DE43s&0`bMG)^`()fuu5ZN=v4D%zx2u# zrS5Y9Pgd2(DCYXF6(5)8PYtOuF(vK2eP($0B-N7j>45X##a>^z$qBM*t&YFU$v@=t z>_Dlkegr*A5D}DnR}w|uD70zsv}=jP;nXM)Pe6m3<`?Bb%7C&&o%2D=w*EQjA%@{J3(6n| zPhyxw{C?6=506ld9C%U)yCxe*{Do7GPfgfOef;q+kp2OretOcAZ1&1Z(4yX@M?N4l z6J2aFe+81QUde)RJM`XVAh+3KHY-M;pd#03*`E->`uF9?8plWf3=)3t=0$sZx@QN( zS3Emy<*iVEfr^+wvQ-#Ge#PAe%RnsL+ad$z8-hCjgAW7@In}5jD-8(B4B40FPEdyfd|)VZe9hOK2wf57r_9~_?f@CB7Zalv4Y*y zQah@4BT6EJDk$SW$?R>z1|&{fJirmpoAYoM3FAG8OZmFfH${$z@hM& z7zJg4DCjLQ3R3iEZwlZoC_6Q`*K@T6sn^f*tmFE$UglPubrhO#Mk{m1#kzL$G3DX+ zwh;Nv=n6y9wZeyYdaf>Ja62RU^>Rl9q%MDG7RV+eEv4}RTmEzS$1(`Fx;xGOQ1ifh z{wYl?I-4uy;C!P%5|NlF8N*XE5p z?q4v`!srG;-()^Lc3c%KJW+<0O9*^T`-foI$VJzGC_C8JXO;BX#4XjMo3={HH(I9# zIYKw0Qk|N%%HW}4ee~~gBvwWLWu}zM=nbo?)%=;@miK_p{d*xH8*<_uI3n~+rT5Op z0mZogfag{v|I#0t4P4RFndCbwI9})U-n~!;&*HiUl=B)0 zkA{r&&O@3u$|475K z9I#R|0Z}hKGR>TRpy+@2v-J5%k$c)fIQFra%?RoE2@Re z23&}@M>4hvQvear!R1a#^UNwzspfL|ldA9#D5+MCB*v&az zJKdy_tv*jHlJX#EqDdseTdq(&Hc2 zKF(=tKKFS>y_Wk zX9^xCFOgluDncbPwXUUC4j1lz_?Y`Sb~7vtNJkGy$Ms9kmqTz|tVFo&h{d6QCXRql z3jb|Fe@W*8s9B%8?YqQN*K9|T+~irk1;fLw_4j)}f6CcDXh}fl3}?m|u33P@;m+=K z-oeJoOA4WEN4=(2$F2A}L-H5WwjyvAsvU-R`v9O`*TkDRKZY|L?%n4xnt?j|4IlR9 zTAM7p`pGefTfVvIH4F7I92F_z2HX`*g;yDzNhZ#3w=Uf<9*Asll1qMyhTx(mAvRbKo%)ZiBEI_RuPF zFk6~x*pr{|_@-K> zJiB1;8hJegt&)(i|E4w}z_-4mBmtAC_d+_$<S8ZaQ@rx)a_V2lkhhYRlKh*|?hR%HVo!ACS6>0rxXBe6{_i5i|$=ycp z5qjT7DH!b-vmGTVz?;O;-cFy9po4LUlk+=d9du|`-=P1Xbc(RAQ->OTqSfGRUErm` zZauNAxxC|PwTtRPS}YZ5b9kgTf-6}~44S81>T;j1-W#5&gc z<$RgyRD-r}m({35^_H0bjQ;Mtx$2<|u0P~d9kS~yI->Tn9n|8-^(H7DQVJ$+^P`ps zU3&EfhN1;L;MH`l+D++9j#a5EG=767I*zk}UaG8dU+tUxY+ZVd%Jm*LthYf2-2#<# zwg_B?vkLYm6@0P8=7MHQbc6k zS0+I@G$m2jJEizI67bJ*)$X{Qm)z2%b=dB!ou5$^02D*-`N5-Da1o1=Lt}Mes-%+?1zv14%()yKh=6p-Ul4W;KnHJj|*u{c6PZ0bHt$1!PPE4thwOD>NWaAwD* zDQ`ZwDZ6Xcn<_62JF@4|$qh8`aS!lW-{sz0s-O+CoigUL)#Z!TCvm#w3fkB+U7Q^ zE4MaxEct!3w~t^l^;Oo+L+T&TX`E4!tYL($hr|W|-4nBJsO`9%IhQ;-I8;BIt0mA>(<$65h< zx$-7H4@+sH`bB9}or&?BZ{Ezc=^bPgtoJ8QbRwOP>H@oUw*{pYdcs@TBEQq?V_ekJ z-Q=xnRW_B*9g@qV%^e2AS~EAR7g=&exT)baeotPK9hU&0&ixK8r!4TY1dh|0h%4_ZS zdmkbk2Xiuvy$3G{Vb|3|ZyfHS1$o>QwUepA?x1nz+xURf41Wq_sKs}C zYhB2zH^q5lj$#)*z|*u}X7?q916*}VGspxgej?&`Sx_ftfQflxU#c4Jf*zjK4J06Xmh@On!Unm z@oHV^z{rtST%UXtvxGoD7`j6>b?`tyz_VQP+d3S$gQ9oR6i>W}(At;CeEh4Jij`#< zf*^|Y$`Tte%@SYY)f~1PpS@Ht!tI0vG&OX7t(}awKtuZ5nu);MbmE?y_3%ArMr~#{ zzWY*b%X=xjT|3_HolFU($`@6AA?_#=-`RycfEbGn1;`Nrf=#7SBh4aJ8Z(auRBsBD z=^J4_8f`7Sc!)UKO`4ip%cbh-D`3xtB{0r^o6f3u^u?$TxBPfx@aqY$omnK#2u6SZ zQlZ6*y*e-7uOti*ml&TW>-4#f1YtIS_Q-oPZaiEoG0}!Be-Z340 zEF#s4V(Pig;wmY^KV3UJR%S7vitL!FKFZ5L3^!Yt)M4L+<6?$PB$~e?f235}#a*;{ z%jDb^#T;j(LLXbMO&>OT7XPV%aZA(C%}&qPij6Q}1jE>V7Z`D9%zlDJ`I&IKuTZ@H#@b0OPz@@O!_oTd?pUy>Yw@=IYp)gi_ z`rKX{3&RrpLuCd6W(sG9kh+~o2>&D=>i!yX#K5}aWTQc6qS`Jdt^6YVZPt6U!-MQ` zxY_RKPuF-n^x}G*ktVerXkmI4l_}AD107&I^&t(I7->1${l)GWlZ7Z|HjfGTb3VAs z^8wolVTNnCz$oR`edW-1dguu+RGlx8L{D$tb=}@uI^`M~unK%3gwzkMm>1$yD3j-J zle{_3?kyDSDW1eu5$|>G9!^v$7R)lF4cTCIO<9d|J$f>T zk)27Kgsm7;x9;td!LDqxB3Nj-qT2oF2HU}5Mb8AR(ZQh~hhk*v-cg7 zHh*S?(jDKa=JWcBsL z@>pfo;pU2%Gb$|#Rq`bU4muUU@FOlx)r1(e6c6PlBX)1~N7;2b1A>WujulcDXYR6m z@sfU~9MXT5*DZolmeNWvJ_=luxdD9*#e76>60}2SCpVTadNuaXR#*-1^u4pET*f~o zW7zAyVG#TNo@%om7lO|vk5ehUrpICh>*TDOU^JI_T@-ytY|`nX=Zn)_HR>qLDasy| z8qCq&RNnwbQKe{`pHs0kRja~IxxjfR8T#{RXF9I}wtU^o=i_Xs-|^kuwu~H=`o2Gj4T2}0cxCHNtmu>)8^jMhXmRX}=dlWf zKqwKrm3i$U7>9TgdQ(0yQ7IOVM5Gqq;_)qWkI&E2RarA}b-FvDctAQO+|;0yqCSB$ zEOS^J^2JA(H~b_y@Kw6{;_CRC#ktQF{4IiRd-7rDW175oR3_@(a=;J`EkHswXL`a< zuh%Tz|Ko#JkL=+iR7%>$x47pxVFG-2)uSW%faKuJ-C=3aqF`)5 zIzTft<+rcnJlD;cTxlMYr5L%yk8057)<8jy78l#6TlbcVQAtwXk*;a7ZBb0B z-OC?fl;xeEXR#ypHm?7va-8H}9S&&?VQ&uucm@D2Jcq(@S(VP^4IC0SseBs^4(evi zHb7gWx63YV@=f20{38L^-3uEXiH_88uIOdT0CMurJ?9|R=uG*v#0`B!daS6QsdfMR z626fteP-lDlUeORV?p8>AM4D?v>ng9wrtqMWze&EdgI=rX`f?zzt;4N(^_TDzP{NW zYg;FFS7woO^P%ij?-{XpVdsvVq^Dwed%gPNa+AgtDqov#DZGeado7zX4qx^FPcbn$Fjyb%_tU6o@1T@vS zKN7z9V9?98I$o!p=kxPpfcZ?B%VKZe?4U=s?dBLkDEqVI;1u(lfjTu9ZohV}2P(7X z=;<*-Il${=&|nl9qdTay%rFGWPPw)KAV%XR3pRJ+RC z7RfZI`0c*q$38j{pb4WWt8CBp8D}tGx+8%%30&~Qp?Nr%uPIlf(RuBQjbCayC*|kr z8qnnsF}kDTQx{V7JdA#t{`2jRgJScBrZ#6i>wEYsEC){~i`iE+);%dOZ(vCwIAJr1 z6m98o0yB^2vIU^4pH`F(;HDOB!JzG-stsRPEq1-Twiwec>osW9@2m>w6zR}ZZ#u4q zxrLHAjwRY}9FAdB!`=DkCJWD+Z+D8iW}Na6iBImbY!`$av8maL#3f+LqPq=*R7+B9 zx(4L6w-ApCt?-=1%F(`4n7C3Z_XIE7#pNTD5-qn8>@LjrmVR}{9mhap?OVGp-m;ae z5a^*|eYLd96`S5du~=S@(vRx*K#I`Xp2&#(tH#B9yt+$c^}RMTZVF699zK#7^_y(+ z_DGiYttWsPf*o4mZ?ywuP^d%muB8|TrOIA>0B(vhVE*J=jM>~X z&_Klv?I6~U3>JFdT#IXK;zO()DT6K{*Oi0r8@uqGa|gN#xHCCt{4k{tsG{|>o~>0y;=i30uN2YM{O!4HQ(fq<`%?ag8cWpZAuT6VQ zOpVM`t^R`xkf%wuwZ?Pcy>n-?!3(P@^avYn1-IH+{%e`rGD9KUn*UT)@=g zA;w;DaqpF-@_QY5hq4zzW!Ggsejg3V^jPAV9^Uz$hpXJ%UYkq-*o0C-c0)rsUgYeU z61um9)A7(}V~$;;vjs<4b?^S3rr_!&>8Bs=``W*e+Tw#Xz%ffiN-zhT-*nb>Da3dlA`Xy`+7^nglNXv0aPP zOJp@sEAR!e4xe7GOn2!7J_9Y{y;{UlxLI2y=Nh)iv`JioKq75DV;=&I9`g6sP_u2N zT*VqSz;e3ZNE_%1K-o}-yHSwCZxRG){1$KBR)y>ewo)NghMGJ|#+V%9=JW3E;HkdK zDKlra??pJ_Gx4ct(2{8YCUzR&zsibvp&riAjA3g0@}h=yi?r1)PYx~>6RX_Mmc0BK zge~Ho6FQX-!1TIdkA_$ZM4tCnT*oH&GGk!QW@2Z3f@4Q8J$-bG9(~M0NeX9CbfSLLXwH~=_si#KF$o0C3W>o_G{pjVb&W!3_^!DiL(=-D#*`~VK>hJzfVt| zEgJBF8ji8|(Mb0qFc^G*zm?W1l19~u^JA24ra4EMu7^IW%gjX+UiZGAPe%v7Jxb-kYHp!HaHy6Rj8J@O(^VVDU zF~k`EQGNB@igleb=eSp}<|Jd2xo*Z%?Y;ck&BEF>_~HC^<(tM@^Vo5HRtpFC?(tAE z5C{#dh1`BLSaEVgY3ysL_F}9mWd}Z4bsqXfC09IcKv-{({ZcI4p~z5ekLoIq-uXK5 z!DgGKxW zXdL7a3Q9GW&FV;Boc-2-2h7`VrOnWtqw8So#Wk;u`IwWAJ;PH)+hl%6a!^bL)r>Ck ztexx5(Z!4h?|e_~h}nu}Vk`}=QvkL>q4l2|$@bo6@Opu6iD4MeK4|qC@i2JHo2^|t z+41$Z%ZC2Q2Zx;VAC_o&T)n2xBbY&YyK!e*+`9kPu7iNv^B*e#krj>@hq^2+=a^V2 zMRiTV^?YYNen6{MPA^e?Iq?kliet779hE^ac_6KDR?iU zfyY-CWb$+3a%7q%ooD8h8H73SnkHjkfT*>Zm=59D)@dn|jnD<)W`F+01}DyKP_gOz zURakvOrsa!h!34f3DFUR6dw<#wQQe_l4L1UgYqRf)SEcIe=Tg*`0DCmW3lg%Ef@gW za(>ZT3EyLK7)gvBx_S(>zjh3)vs(-{jAgg$4CnsP12I69#40oVzDg3p6oO*C)h5`q za=Ig}?I=Y8V0YF#DI%CySgolwp0QuuW6gWz8AsUIi5XdZun`H)a$LBK51CvX4y!Tc zK=w&&qIR_F%fgD%XNQZ`Tncm-*Pdyg_K^VYIrI;) z4Vo&!jdg5$EU1>Iin;pXJf?D~q&Vs4k-T6Gl4qFU;DeU3dxQJt>vKuj_r4E!s3dDf znqWMs;nv?HaF?lJ_gd*Rj*JS2cc&a4-fr`Dv*%xB_A*Au@Z?0%!jF6w3g665NQfl) zoD_)7Ba2XSisYTvD{{7GkZ=nC)r@Y_v%6q*qC+j1v9u}GIvf7p-Qwn8kmCovy*Ya`k?}!OuXcIO z$E$W9uVPa+HjWkO=YC*NQUslGPXr0>7=kWpLT5b{i85+>5_7(J1N9I(9utc-l61^% zyt#^d?~ZT6cHZOBsd<-GIl#wHtiFSiydn7V?`*2$??Gw4r6v9e`yU>eoE8+)qYFc^ zl_otvoxi0xH&j`(t-cx7xH5SNrD_l6#KcxjCVH1zfq^YqI@UilZ6>_JiBlEA+GUa0 zl$||l9;1qU`zrO%a`-Q%_+a;uYP2s)~WuY(78yR}@YD>XOZUdUeM0Lk1?S}GEEuugD-Rf52}X#)2fQvL{H0A;2{ zP-zfw(Mv6hgEKB`Eb%v0ww)V_T^lAP%hB97-RN=zLoDh?_CCCWU4=e3^k^THKg}se z4O7MB2G4>l92K+JbvXr%1UHNiA2D$r2vE#OxUMpoaxz~!=BP9zx^)Jz#`LC3?Scwu zJh7U5R482togA;zYFzX48yD1G5V*j39W+#O2uAtIp@#F{ZEClLZZ7nC4dLvD1yVi9 z5kG+C%ll>oQ*0Dby*_224L@4dTkb0jy@Fq*H>f!jmTDU`@+cZ?)+@ahOE@V6rm6HA zHr_?#>@3B!ZtUeh-T*k#9F$7t-i1?kR>-?>I8G8k#p=j=J)+(L%-5lEU*Vd+K6#Bh zGQ;ad#-6dK)7_3V3CFPEgXOlP&OkA3Vo4gLX8DA0IK8>jH#k=~>P|VV6$2@w?@g_m z04$P}YwIkJ0GR@LPVwD6CBR}}{eWorI|+rzEdtb}mKf8@y?PeH0HY#zw;{(Wv$ufL zjR;JgswvY}Q2ydF&rLo2p11k(z_eC@-G*qyiy)}h=|arMHVNf&+pr}_=~R8*ILz0; zYvrwO$D?3(`d?n2rO>w4URQ7sU06$6loV{<^+q1Cx)X5|i6*>}+KL}HE_js~P=3fl z7^enmgG>|C+}mDxeTUO#vR`TMEL?tIb1VLJk=FWk22uN%cmX}0ktzxbM7Cf4p1bc8 ze`8 zK{wkcC#CAlD;#LWN1uM?OP-nnSc=Is+Mre^O!$M%K+OS)3@kc;o73HcTxLK}yV<4XZ|3=7wnf9yg7BoZOW?!{>j;%z-zodRo?Du)jc9RW| ze!?%Mtv&sl{{qY+t=ly4nj&D@)CT^bwUI;i?}w5f|2wr0WQD&G+p)m?9e|~AD!n&p zmcPmJ<9|w?YGOzJqXzMpLG{`udK(;YM(Zw3qC{HW-j&-uRMS=}(TCJ8&jF+B`hoWL zeei8J?t(9uA%6KwG4OG>D)k_+dzPO6(RTyQd_d%;J|Pm3HfitOCYD4@iFW_rx~czn ztgB-Iujv3uxbcLh8j$7-`sx2Nyx{Jh9E&*7gG{Ro+yJ`Pav~TjOezoBx>y##$2SG< zJ_Julp8lU#{r}Cb#$#vc>`2%f^eBFHuW}ObCsJg}xxD+Y{5-U0&-sXZ-fy?qcB=R| zy!cIRDp?gms^{Ea2t3)cVe9F$Nv}mB->iRD%b1kpCObHv3^0LW;MThr0{(0O`-@V( z?f1jzwDIuCYsWdM&8O)dIxgCeveqW@UvY35-F*d2i`7YXlPREOyUjs|SHa(l;eS|) zU+j8tknqW*l%P#b$W3hI>|vA!r>3l^NY$3&KjZncn~w-*j9o9 z=GJLp>0z)!<07Thd16EUhd->@UzBx0_`)%8l)a7uaLKay&S$yYqbkRaoXVzgGHpE19%>uA?6Qg$R~Yk z*a?BAkH0PwIRv&BLMy?TqXK##aMhm{xQFgM<1bJBWyIC;!>?aF21rIf`I|JqFmC=N z(ucdbAIAf6$ur!TX2nv0@65eNq@!!KL5aNs4IX6!B}RINwGRAlr~&1nPsD`_=EjAG z6MF~1LP!*VHF+O+Xm;l>E;2a~(gjPOQldb0WA1d3O((%Vd903dehH^fBHrXwYFszh z9>X5GQ3ft(kG*N8Am+PQRc!z)^@~`U-%C7>2ErPO5x+o9WJue{DzGvHLC(vlPa zPj*x4iHZyb0>0CDvHuFea~<3>gktgo-5YoDyXF3K#QtNjwwL}N52NbP)1R0V7lB1*{41#1Nhmkl4f`|mk14_8W zD+nW~NFG3tAd)1{0Na4ymiMczt=ifjyFaAfqKe{uPj{a_r~7pGd7f?;+`7FAHo`U2 z`FW0sN5GYbJ-?GOc>GLhQ#=Mmoc23_7@UQI%Gaqwx^00F#4Ad|1{U0H!K(j)d*R|K z4V4v%i1Kfr0}QMkK5BLS?qBK>r^wHNchtZFm)Pr_M~)F3nw3c>jsg7{CizQW|N7jS zVyd~DT4M$UlBVZ9y=Ryuz*05ox25W_7yV~lmnp&9Aosgb4ZLlkJ;Tce-fsBw_8*;` zj(Y#Hsy}w}3nKoS=??E^Fuy1SFjn`rnLT~~1PcadO}Gh=HFN^rW& zg0w%znLOqdVoB8bMN>jaAaG3Q@LMgIo$%J5DE|R0svjh-!1)9m;j(l`7z4PM# zv-DOmP&&$pVj~(LwSI9NDxVU(NZ*?h{ELhv5cUiB_kU4aQQx``(+1ZoZv43F<&%e&Y3f`78=So?wl^V4goF{WLo^q08F$S zESJ!gp(Z+j@$m}x^vO)i>jE+d}a2L+6YCw4&oS&qM$x7%o%= z)oFgx-vZiySjLzEM9lwRDgTec|2NhS5->rIECL|nEdizYg4Vb4`GmEfb2Y3d=VY;u zSw%XgAd;(Zf6i_$ejFmOm&vW|2!#B7d0Jv>-R`-~Nb+E@O1rXWz|L~o1F@{$WbIfE zkj~ttoWLl@8TV>}OR4KZlJiKFW|pdp?Ru9AIECGgx}QKNZu$+KElB)oUUL!$^M2w2 zt>s_ zE^R1xVXwI$AL4zA1fmZ?qo(^2Z`BN$!lm0&SC&<15-ps}W59VAoE6EAH$Iac3683P z6-Rn6PtQIV*hjiRXOlz2K@PS^Fq(LW@(0e4N#W49V%(_w^#%V$F^BQDaXQ)))&Me< zb9`_C^S*zxq>2h`&xkn?hHL^i*Rq@hhjB*4!^a6UcNt4Bg*LF__O}+eRJ5qls9m7! zx5u_71RM-^;7)C;fKOm>tzUHm$M=}st~|S|@(2*lI#|332lqFq5?r8X2HXv4MPiv6 zb8lP`xd;Bz`haGM(w3R{WOQ#3Arn~K$i3e|l+{%*F1V@W(fErDbi+Ia76@su!IT|~BHT!pl)-iTRrGk$q zr*SKuq~UTb<=}e_bCgnVyZRrkYlX4eB;)f{%G zdKi#aJ`&c$u^S}V+-J?Eo_}QoFtJ`7Yp688i z((I?2L<(Fzijb3$ev0-i2aeacoIgv#ZRlSKqk?S}cPDzP_M0kdN)3?57!^4{9Q?E0 zGUaIHz~X@p6Pp3Vs5jRf^X?aXPV;3|+Vi6+L?O6Ya1c9Cmp^MbLL#Awjl7x?IVPG6 zQgM6MDn*|6nAh6;O7xKSLE2d+QH7fds`vsQKAl`_5mi%pY9Q`#Z15EnDt9q0G6uFZ`_2Ydv$9*<&y^ZHC*#zUeT8y% zv0Hi(_eOR|SK4Q>@aOLFIa^-ygl%UsenXj~7|d}>%X6!?a~5Qx3j6OegZq!qAI$4s zq~-lWea&Nt|F&nX6PB~;=*3lUd9o5rUdHEg413=dUxDd*n|F{5QHNxHi?=2uGy?n> zIMyZ8W3c+{j@+U~mQ!a8m~@P08w9{{&q-WtcQ2}$WIARopc!p7()6%i6qXkaz*e^b zxjDe{E~gW-aV;={fsGNtYg^Lup;D>PIb2xy$Cd*q{9xa2WvTF0VE~qCLk}G}yDj6E zayEf1G2$AXW)pS^j6-x9;q-itArg)Y+#|0a6ugH$tOH)c<`Ic()cKg%2eMUc$&5+=nw(h_KhyQpDn0Z(iaDQ% z=zbJxF4@{vywEn@sJkEzZ>3*Wot$r4U4=Ir2VwmX+@D?= z6H+L#ec&smAxNO*uRn9-jw8HOIKO@^1JFew1JOv2WhULy$B&U zt|mG(Jn;-McAXLIN5M+ejdYi*w)@I1Rt?@LhQKHTGC0Pz=G@GtzL3nK|REZ zUtI33E)&HD9x?HJnMtmD=7#WDa~Pp!Y44hXTjsY2oH*D!6PXER9y|kg;aVCBeZhTq9$+dNnT~44D{xGc!6ZP!QWBfc!2pMOL%5 z)eS8mD6qp=dHoog6oF^eKSA?c$GE`5VuO7%4n-8MU+OJ354()$IpM zu3x)}ZI1VLc%xTq>V1odG$JuHr;#vU_r;L?Awt}bjUR9QReq)2yw5ui^_KYJ+2zod z{wQTvAL)F=`=nRfj&kcZm9hdjf2JVm`Xq>OUNH9qK~w#uAqT7k=`@X45u>n(2n9WT z?B=Ey3Wdsh{hGYIyj&8FlU(}r@@FgV>ijv}QEsL)U$T4u?Phb#EhJtp|4PSV>sC}gKigAU7N`7x$Y^`29m~Ie{1U@ z_*l9H%RHT^V`vn`4Zm6?W3TUw>UXf zy;3UKy#rq&;^jxWJ69u9QYed>7$fE_ouj5$3Sx;BD)Fvg+lj(4aTpyHa&j?0@Fw95 zBh=DZSp0ma8B<{7@+8M^2itzwBqQXFb9e5MkAj<9R()o%poIFz?HqW0qaqQoP;Bq& zbD!(6eJf$hPbcOOZ{%X}SE~hlxcNv1&<$Nazelrv*mieeLV;@HAd_WvEy1ruN3P+A zGzxJwA`VVpvG2>Xjy0Jr)iAkIO@5W5NXy}FI%gQB)|y!T)~(d;s;AHP_V-yOB)(iI ztWt&e+2c{cFU7^Xv4?DM<(YnXxl(~6mYXE;qJVScOmi7c5>Io6A$RGGD;bTWsswJN zWnS#QFqxKM@wdzfN0PfZ)z3bQcoT_|!fUC}yU`;wuw0LR;5x!=`*fhg=PnB_JIDM( zU&WPV;q4w$;V!aOLBa2SE9Z3^#Qg3q6NuXT?Z`@5tK4(!zt>Q8-LaF-Pi#G@O?R_W zT

                                                                      cQ|;_SgRV6c~F*A;PURN4n;L>Iqd58*Xh zIe(G%wlg*3ID)J5nZ2&OIgNu%eClE{g>|^4kx{w}eMNP(h=6$`dy8+(WjMfXe6}B| zqJp?z0KF8SB%nYMRuIUrsJc$4~KQ8KLmeBzQ&%RMq4~FeD`X$ zZY-EVHng}w-y{cOT(U-qcYR~xe4U|hq4}s#z@W1q)~{FOu%jX9{N8!;c|w1GSU$FQ zVwDefd#K22vSx1>&P`9a&5#I}yo*FZ>1lMD_kH@cSzos4 zj~gr7Gn5#{6sT_}NlUAaOAN7s5*>+$_yc=O=flm19BsN$Jw@`@D5xNu=pVi4mPbf* z_D!XV2Me2?)=);3aHPoqKip_uB`Od4Ai2Y#4M;R#?Wz|VzPv4F?t#I|b zM?!(7HSLLqIkQ8PyoM$3Mvq|2q`2vf{o6L95|zAq*<%vSHqT|h=tUV<*1~2sVVAN! zfYBq8lJ2Dh-`viTg>8f!teu50pREN$=%)=EH}*9X;$mvA5^O-}bfF7Ee4#URtXI z1!~iCbA=P*wl~Wcf zRYLkPl@4wRsrBnIoOL}bJ?}!Z0<=qYMk5B?@TWc;P7LquX}pzjsF6L=b&kHwhhbGE zU=iffYSzt0*L!M9^BQ`l^NmtpOF)bTX+hv%9u8-~etn4Uz1Eap-(pV%Jv59HxB?vrI2b!*em(Ha)ZMPRCrN~FAcWvR$j-Bl`N1Qgzv@!Kc zz3aryzdG???d1j>TxKmk=9Ay}>O#gVqA!OWHSAqQHN2VFks7GC|Lk-}P)n-FFQN@i zB~+;n{1ZH6#Hoh62SbBD1uYa+xVY|=o1K?%n@p|WH}dpJpBR7ZaZU%M#}Ci71j|Lr z_^u516X42_*w<*9GL27ynZvozA)g;hhGs2r?Pj$=-xmL^7^?96=r6A0C;?-&m@iK_ zhs}83BgXv6`V?3Tp;N;4>+lC28qKXCu||dWcSj1_N=u6fYajX*F2F<>Uol9Nfi1?AlHRX&7D&ft5;~SD@P^%@ojV) zT2#MM?^GduM0&dp)KN2@+&HRpw!Z9nQD?%DtclAJ_&tvwIo^2D*s@`DI~S=jZJfJ# z^}r5@@bALmpML8E$y=*_P~KI{jVsL&RI{@HKK89IJ}u>u>=R=K$ZPcuUfj970sLqf(#2Namu2ZZ$D>6={)N8Zm{jz3l6J>W=DD6y)S>34NpZlL>3J i+h?StA=g<#j_^MFRk?|=w|1TZKN>1J%H=n$LjMClYP!?_ literal 0 HcmV?d00001 diff --git a/extensions/aasb/assets/AASBOldArch.png b/extensions/aasb/assets/AASBOldArch.png new file mode 100644 index 0000000000000000000000000000000000000000..b496eee891444dfa381bcc08794b54c862dab1db GIT binary patch literal 36815 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

                                                                      OHysLMAGGW0i-4dRx^z;k1!k;blE;j=6kGAA|i= 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 + + + + + + + + + + +

                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      StartService

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the application the the AASB service has started +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AASB",
                                                                      +      "action" : "StartService"
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AASB"String
                                                                      messageDescription.action"StartService"String
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AASB",
                                                                      +      "action" : "StartService"
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AASB/StopServiceMessage.html b/extensions/aasb/docs/AASB/StopServiceMessage.html new file mode 100644 index 000000000..1c20fad9c --- /dev/null +++ b/extensions/aasb/docs/AASB/StopServiceMessage.html @@ -0,0 +1,1109 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      StopService

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the application the the AASB service has stopped +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AASB",
                                                                      +      "action" : "StopService"
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AASB"String
                                                                      messageDescription.action"StopService"String
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AASB",
                                                                      +      "action" : "StopService"
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/ClearAllExecuteCommandsMessage.html b/extensions/aasb/docs/APL/ClearAllExecuteCommandsMessage.html new file mode 100644 index 000000000..48ed3c9eb --- /dev/null +++ b/extensions/aasb/docs/APL/ClearAllExecuteCommandsMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ClearAllExecuteCommands

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that APL render finished clearing all commands +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ClearAllExecuteCommands"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"ClearAllExecuteCommands"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ClearAllExecuteCommands"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/ClearCardMessage.html b/extensions/aasb/docs/APL/ClearCardMessage.html new file mode 100644 index 000000000..b55b1fae7 --- /dev/null +++ b/extensions/aasb/docs/APL/ClearCardMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ClearCard

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that APL render finished clearing document +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ClearCard"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"ClearCard"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ClearCard"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/ClearDocumentMessage.html b/extensions/aasb/docs/APL/ClearDocumentMessage.html new file mode 100644 index 000000000..497113eef --- /dev/null +++ b/extensions/aasb/docs/APL/ClearDocumentMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ClearDocument

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to clear the APL document rendering +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ClearDocument"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"ClearDocument"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ClearDocument"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/ExecuteCommandsMessage.html b/extensions/aasb/docs/APL/ExecuteCommandsMessage.html new file mode 100644 index 000000000..5eeb3b54c --- /dev/null +++ b/extensions/aasb/docs/APL/ExecuteCommandsMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ExecuteCommands

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation that an APL document needs rendering +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ExecuteCommands"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}},
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"ExecuteCommands"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadThe APL commands to be executed represented as a JSON string + + String +
                                                                      tokenThe presentation token associated with the APL document + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ExecuteCommands"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText",
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/ExecuteCommandsResultMessage.html b/extensions/aasb/docs/APL/ExecuteCommandsResultMessage.html new file mode 100644 index 000000000..25b97addb --- /dev/null +++ b/extensions/aasb/docs/APL/ExecuteCommandsResultMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ExecuteCommandsResult

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of the command execution result +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ExecuteCommandsResult"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}},
                                                                      +    "result" : {{Boolean}},
                                                                      +    "error" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"ExecuteCommandsResult"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenThe token associated with the commands + + String +
                                                                      resultTrue if rendering was successful, otherwise false + + Boolean +
                                                                      errorError message if rendering failed, otherwise empty + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ExecuteCommandsResult"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText",
                                                                      +    "result" : true,
                                                                      +    "error" : "error-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/GetVisualContextMessage.html b/extensions/aasb/docs/APL/GetVisualContextMessage.html new file mode 100644 index 000000000..8b5bebe23 --- /dev/null +++ b/extensions/aasb/docs/APL/GetVisualContextMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetVisualContext

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to return the current visual context +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "GetVisualContext"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"GetVisualContext"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "GetVisualContext"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/GetVisualContextMessageReply.html b/extensions/aasb/docs/APL/GetVisualContextMessageReply.html new file mode 100644 index 000000000..89a93ffe6 --- /dev/null +++ b/extensions/aasb/docs/APL/GetVisualContextMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetVisualContext Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetVisualContext

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "GetVisualContext",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "visualContext" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"GetVisualContext"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      visualContext + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "GetVisualContext",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "visualContext" : "visualContext-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/InterruptCommandSequenceMessage.html b/extensions/aasb/docs/APL/InterruptCommandSequenceMessage.html new file mode 100644 index 000000000..aa283965a --- /dev/null +++ b/extensions/aasb/docs/APL/InterruptCommandSequenceMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      InterruptCommandSequence

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to clear the APL document rendering +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "InterruptCommandSequence"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"InterruptCommandSequence"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "InterruptCommandSequence"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/ProcessActivityEventMessage.html b/extensions/aasb/docs/APL/ProcessActivityEventMessage.html new file mode 100644 index 000000000..d8b96d460 --- /dev/null +++ b/extensions/aasb/docs/APL/ProcessActivityEventMessage.html @@ -0,0 +1,1155 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ProcessActivityEvent

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of an activity event +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ProcessActivityEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "event" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"ProcessActivityEvent"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceThe source value for the activity event + + String +
                                                                      eventThe activity event type +
                                                                      Accepted Values:
                                                                      + ACTIVATED : GUI switched to active state
                                                                      + DEACTIVATED : GUI become inactive
                                                                      + ONE_TIME : GUI processed one-time event (touch/scroll/etc)
                                                                      + INTERRUPT : Interrupt event (touch)
                                                                      + UNKNOWN : Guard option for unknown received state
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "ProcessActivityEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "source-SampleText",
                                                                      +    "event" : "ACTIVATED"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/RenderDocumentMessage.html b/extensions/aasb/docs/APL/RenderDocumentMessage.html new file mode 100644 index 000000000..9c35cbbd1 --- /dev/null +++ b/extensions/aasb/docs/APL/RenderDocumentMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RenderDocument

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation that an APL document needs rendering +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "RenderDocument"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}},
                                                                      +    "token" : {{String}},
                                                                      +    "windowId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"RenderDocument"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadThe APL document to be rendered represented as a JSON string + + String +
                                                                      tokenThe presentation token associated with the APL document + + String +
                                                                      windowIdThe window ID where the APL document will be rendered or empty string for default window + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "RenderDocument"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText",
                                                                      +    "token" : "token-SampleText",
                                                                      +    "windowId" : "windowId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/RenderDocumentResultMessage.html b/extensions/aasb/docs/APL/RenderDocumentResultMessage.html new file mode 100644 index 000000000..ba71e36f1 --- /dev/null +++ b/extensions/aasb/docs/APL/RenderDocumentResultMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RenderDocumentResult

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of command execution result +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "RenderDocumentResult"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}},
                                                                      +    "result" : {{Boolean}},
                                                                      +    "error" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"RenderDocumentResult"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenThe token associated with the APL document + + String +
                                                                      resultTrue if rendering was successful, otherwise false + + Boolean +
                                                                      errorError message if rendering failed, otherwise empty + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "RenderDocumentResult"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText",
                                                                      +    "result" : true,
                                                                      +    "error" : "error-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/SendUserEventMessage.html b/extensions/aasb/docs/APL/SendUserEventMessage.html new file mode 100644 index 000000000..37454aecb --- /dev/null +++ b/extensions/aasb/docs/APL/SendUserEventMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SendUserEvent

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that user generated an event +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "SendUserEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"SendUserEvent"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadThe APL user event represented as a JSON string + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "SendUserEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/SetAPLMaxVersionMessage.html b/extensions/aasb/docs/APL/SetAPLMaxVersionMessage.html new file mode 100644 index 000000000..cdaff6bc6 --- /dev/null +++ b/extensions/aasb/docs/APL/SetAPLMaxVersionMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetAPLMaxVersion

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of the maximum APL version supported +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "SetAPLMaxVersion"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "version" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"SetAPLMaxVersion"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      versionThe maximum APL version supported + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "SetAPLMaxVersion"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "version" : "version-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/APL/SetDocumentIdleTimeoutMessage.html b/extensions/aasb/docs/APL/SetDocumentIdleTimeoutMessage.html new file mode 100644 index 000000000..1d49c99e7 --- /dev/null +++ b/extensions/aasb/docs/APL/SetDocumentIdleTimeoutMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetDocumentIdleTimeout

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of the idle timeout value +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "SetDocumentIdleTimeout"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "timeout" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"APL"String
                                                                      messageDescription.action"SetDocumentIdleTimeout"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      timeoutIdle timeout value in milliseconds + + TimeInMilliseconds +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "APL",
                                                                      +      "action" : "SetDocumentIdleTimeout"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "timeout" : 1000
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AddressBook/AddAddressBookMessage.html b/extensions/aasb/docs/AddressBook/AddAddressBookMessage.html new file mode 100644 index 000000000..58ed01325 --- /dev/null +++ b/extensions/aasb/docs/AddressBook/AddAddressBookMessage.html @@ -0,0 +1,1495 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AddAddressBook

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the engine on an availability of an address book +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AddressBook",
                                                                      +      "action" : "AddAddressBook"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "addressBookSourceId" : {{String}},
                                                                      +    "name" : {{String}},
                                                                      +    "type" : {{String}},
                                                                      +    "addressBookData" : {
                                                                      +      "navigationNames" : [
                                                                      +        {
                                                                      +          "entryId" : {{String}},
                                                                      +          "name" : {{String}}
                                                                      +        },
                                                                      +        ...
                                                                      +      ],
                                                                      +      "contactNames" : [
                                                                      +        {
                                                                      +          "entryId" : {{String}},
                                                                      +          "firstName" : {{String}},
                                                                      +          "lastName" : {{String}},
                                                                      +          "nickname" : {{String}}
                                                                      +        },
                                                                      +        ...
                                                                      +      ],
                                                                      +      "phoneData" : [
                                                                      +        {
                                                                      +          "entryId" : {{String}},
                                                                      +          "label" : {{String}},
                                                                      +          "number" : {{String}}
                                                                      +        },
                                                                      +        ...
                                                                      +      ],
                                                                      +      "postalAddresses" : [
                                                                      +        {
                                                                      +          "entryId" : {{String}},
                                                                      +          "label" : {{String}},
                                                                      +          "addressLine1" : {{String}},
                                                                      +          "addressLine2" : {{String}},
                                                                      +          "addressLine3" : {{String}},
                                                                      +          "city" : {{String}},
                                                                      +          "stateOrRegion" : {{String}},
                                                                      +          "districtOrCounty" : {{String}},
                                                                      +          "postalCode" : {{String}},
                                                                      +          "country" : {{String}},
                                                                      +          "latitudeInDegrees" : {{Float}},
                                                                      +          "longitudeInDegrees" : {{Float}},
                                                                      +          "accuracyInMeters" : {{Float}}
                                                                      +        },
                                                                      +        ...
                                                                      +      ]
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AddressBook"String
                                                                      messageDescription.action"AddAddressBook"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      addressBookSourceIdA unique identifier for an address book. + + String +
                                                                      nameFriendly name of the address book, or an empty string if not available. + + String +
                                                                      typeType of the address book AddressBookType. +
                                                                      Accepted Values:
                                                                      + CONTACT : Contacts
                                                                      + NAVIGATION : Navigation Address
                                                                      + +
                                                                      + String +
                                                                      addressBookDataA filled out AddressBook object. + + Object +
                                                                      addressBookData.navigationNamesList of NavigationName + + List +
                                                                      addressBookData.navigationNames.entryIdA unique identifier of entry in an address book. + + String +
                                                                      addressBookData.navigationNames.nameName of the entry, or an empty string if not available. + + String +
                                                                      addressBookData.contactNamesList of ContactName + + List +
                                                                      addressBookData.contactNames.entryIdA unique identifier of entry in an address book. + + String +
                                                                      addressBookData.contactNames.firstNameName of the entry, or an empty string if not available. + + String +
                                                                      addressBookData.contactNames.lastNameName of the entry, or an empty string if not available. + + String +
                                                                      addressBookData.contactNames.nicknameName of the entry, or an empty string if not available. + + String +
                                                                      addressBookData.phoneDataList of PhoneData + + List +
                                                                      addressBookData.phoneData.entryIdA unique identifier of entry in an address book. + + String +
                                                                      addressBookData.phoneData.labelAlphanumeric phone label (Example: HOME, MOBILE), or an empty string if not available. + + String +
                                                                      addressBookData.phoneData.numberNumeric phone number, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddressesList of PostalAddresses + + List +
                                                                      addressBookData.postalAddresses.entryIdA unique identifier of entry in an address book. + + String +
                                                                      addressBookData.postalAddresses.labelAlphanumeric phone label (Example: HOME, MOBILE), or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.addressLine1First line of the postal address, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.addressLine2Second line of the postal address, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.addressLine3addressLine3 Third line of the postal address, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.cityCity name, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.stateOrRegionState or Region name, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.districtOrCountyDistrict or County name, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.postalCodePostal code or Zip code, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.countryCountry name, or an empty string if not available. + + String +
                                                                      addressBookData.postalAddresses.latitudeInDegreesGeo latitude in degrees. + + Float +
                                                                      addressBookData.postalAddresses.longitudeInDegreesGeo longitute in degrees. + + Float +
                                                                      addressBookData.postalAddresses.accuracyInMetersAccuracy in meters, or zero if not available. + + Float +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AddressBook",
                                                                      +      "action" : "AddAddressBook"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "addressBookSourceId" : "addressBookSourceId-SampleText",
                                                                      +    "name" : "name-SampleText",
                                                                      +    "type" : "CONTACT",
                                                                      +    "addressBookData" : {
                                                                      +      "navigationNames" : [
                                                                      +        {
                                                                      +          "entryId" : "entryId-SampleText",
                                                                      +          "name" : "name-SampleText"
                                                                      +        }
                                                                      +      ],
                                                                      +      "contactNames" : [
                                                                      +        {
                                                                      +          "entryId" : "entryId-SampleText",
                                                                      +          "firstName" : "firstName-SampleText",
                                                                      +          "lastName" : "lastName-SampleText",
                                                                      +          "nickname" : "nickname-SampleText"
                                                                      +        }
                                                                      +      ],
                                                                      +      "phoneData" : [
                                                                      +        {
                                                                      +          "entryId" : "entryId-SampleText",
                                                                      +          "label" : "label-SampleText",
                                                                      +          "number" : "number-SampleText"
                                                                      +        }
                                                                      +      ],
                                                                      +      "postalAddresses" : [
                                                                      +        {
                                                                      +          "entryId" : "entryId-SampleText",
                                                                      +          "label" : "label-SampleText",
                                                                      +          "addressLine1" : "addressLine1-SampleText",
                                                                      +          "addressLine2" : "addressLine2-SampleText",
                                                                      +          "addressLine3" : "addressLine3-SampleText",
                                                                      +          "city" : "city-SampleText",
                                                                      +          "stateOrRegion" : "stateOrRegion-SampleText",
                                                                      +          "districtOrCounty" : "districtOrCounty-SampleText",
                                                                      +          "postalCode" : "postalCode-SampleText",
                                                                      +          "country" : "country-SampleText",
                                                                      +          "latitudeInDegrees" : 1.0,
                                                                      +          "longitudeInDegrees" : 1.0,
                                                                      +          "accuracyInMeters" : 1.0
                                                                      +        }
                                                                      +      ]
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AddressBook/AddAddressBookMessageReply.html b/extensions/aasb/docs/AddressBook/AddAddressBookMessageReply.html new file mode 100644 index 000000000..7c32c1e3b --- /dev/null +++ b/extensions/aasb/docs/AddressBook/AddAddressBookMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AddAddressBook Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      + This messages is sent as a reply to AddAddressBook

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AddressBook",
                                                                      +      "action" : "AddAddressBook",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AddressBook"String
                                                                      messageDescription.action"AddAddressBook"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      successFalse if address book was already added or some internal error, otherwise true on successful. + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AddressBook",
                                                                      +      "action" : "AddAddressBook",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AddressBook/RemoveAddressBookMessage.html b/extensions/aasb/docs/AddressBook/RemoveAddressBookMessage.html new file mode 100644 index 000000000..30248b436 --- /dev/null +++ b/extensions/aasb/docs/AddressBook/RemoveAddressBookMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RemoveAddressBook

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the engine on a non-availability of an already available address book. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AddressBook",
                                                                      +      "action" : "RemoveAddressBook"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "addressBookSourceId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AddressBook"String
                                                                      messageDescription.action"RemoveAddressBook"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      addressBookSourceIdA unique identifier for an address book. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AddressBook",
                                                                      +      "action" : "RemoveAddressBook"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "addressBookSourceId" : "addressBookSourceId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AddressBook/RemoveAddressBookMessageReply.html b/extensions/aasb/docs/AddressBook/RemoveAddressBookMessageReply.html new file mode 100644 index 000000000..a977564d7 --- /dev/null +++ b/extensions/aasb/docs/AddressBook/RemoveAddressBookMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RemoveAddressBook Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      + This messages is sent as a reply to RemoveAddressBook

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AddressBook",
                                                                      +      "action" : "RemoveAddressBook",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AddressBook"String
                                                                      messageDescription.action"RemoveAddressBook"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      successFalse if address book is not already added or some internal error, otherwise true on successful. + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AddressBook",
                                                                      +      "action" : "RemoveAddressBook",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Alerts/AlertCreatedMessage.html b/extensions/aasb/docs/Alerts/AlertCreatedMessage.html new file mode 100644 index 000000000..e9a361924 --- /dev/null +++ b/extensions/aasb/docs/Alerts/AlertCreatedMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AlertCreated

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of an alert created, with detailed alert info. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "AlertCreated"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "alertToken" : {{String}},
                                                                      +    "detailedInfo" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Alerts"String
                                                                      messageDescription.action"AlertCreated"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      alertTokenThe AVS token of the alert. + + String +
                                                                      detailedInfoThe alert info payload + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "AlertCreated"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "alertToken" : "alertToken-SampleText",
                                                                      +    "detailedInfo" : "detailedInfo-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Alerts/AlertDeletedMessage.html b/extensions/aasb/docs/Alerts/AlertDeletedMessage.html new file mode 100644 index 000000000..516a9936d --- /dev/null +++ b/extensions/aasb/docs/Alerts/AlertDeletedMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AlertDeleted

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of an alert deleted, with the alertToken. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "AlertDeleted"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "alertToken" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Alerts"String
                                                                      messageDescription.action"AlertDeleted"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      alertTokenThe AVS token of the alert + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "AlertDeleted"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "alertToken" : "alertToken-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Alerts/AlertStateChangedMessage.html b/extensions/aasb/docs/Alerts/AlertStateChangedMessage.html new file mode 100644 index 000000000..b553c91b8 --- /dev/null +++ b/extensions/aasb/docs/Alerts/AlertStateChangedMessage.html @@ -0,0 +1,1172 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AlertStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of an alert state change +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "AlertStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "alertToken" : {{String}},
                                                                      +    "state" : {{String}},
                                                                      +    "reason" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Alerts"String
                                                                      messageDescription.action"AlertStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      alertTokenThe opaque token that uniquely identifies the alert + + String +
                                                                      stateThe new alert state +
                                                                      Accepted Values:
                                                                      + READY : The alert is ready to activate and is waiting for channel focus.
                                                                      + STARTED : The alert is activated, and rendering is perceivable by the user.
                                                                      + STOPPED : The alert has stopped due to user or system intervention.
                                                                      + SNOOZED : The alert is active but has been snoozed.
                                                                      + COMPLETED : The alert has completed on its own, without user interaction.
                                                                      + PAST_DUE : The alert has expired and will not be rendered.
                                                                      + FOCUS_ENTERED_FOREGROUND : The alert has entered the foreground.
                                                                      + FOCUS_ENTERED_BACKGROUND : The alert has entered the background.
                                                                      + ERROR : The alert has encountered an error.
                                                                      + DELETED : The alert has been deleted.
                                                                      + SCHEDULED_FOR_LATER : The alert has been scheduled to trigger at a future time.
                                                                      + +
                                                                      + String +
                                                                      reasonThe reason for the state change + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "AlertStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "alertToken" : "alertToken-SampleText",
                                                                      +    "state" : "READY",
                                                                      +    "reason" : "reason-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Alerts/LocalStopMessage.html b/extensions/aasb/docs/Alerts/LocalStopMessage.html new file mode 100644 index 000000000..35ee00720 --- /dev/null +++ b/extensions/aasb/docs/Alerts/LocalStopMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LocalStop

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a platform request to stop any active alert, such as when a user presses a physical 'stop' button. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "LocalStop"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Alerts"String
                                                                      messageDescription.action"LocalStop"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "LocalStop"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Alerts/RemoveAllAlertsMessage.html b/extensions/aasb/docs/Alerts/RemoveAllAlertsMessage.html new file mode 100644 index 000000000..45c01ac37 --- /dev/null +++ b/extensions/aasb/docs/Alerts/RemoveAllAlertsMessage.html @@ -0,0 +1,1130 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RemoveAllAlerts

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a platform request to clear the user's +pending alerts from storage. This may be useful for a scenario in which a user's pending alerts should not go +off after he logs out of the application. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "RemoveAllAlerts"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Alerts"String
                                                                      messageDescription.action"RemoveAllAlerts"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Alerts",
                                                                      +      "action" : "RemoveAllAlerts"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AlexaClient/AuthStateChangedMessage.html b/extensions/aasb/docs/AlexaClient/AuthStateChangedMessage.html new file mode 100644 index 000000000..31bee6822 --- /dev/null +++ b/extensions/aasb/docs/AlexaClient/AuthStateChangedMessage.html @@ -0,0 +1,1170 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AuthStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of an AVS authorization state change +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaClient",
                                                                      +      "action" : "AuthStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}},
                                                                      +    "error" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AlexaClient"String
                                                                      messageDescription.action"AuthStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      stateThe new authorization state +
                                                                      Accepted Values:
                                                                      + UNINITIALIZED : Authorization has not yet been acquired.
                                                                      + REFRESHED : Authorization has been refreshed.
                                                                      + EXPIRED : Authorization has expired.
                                                                      + UNRECOVERABLE_ERROR : Authorization has failed in a manner that cannot be corrected by retrying.
                                                                      + +
                                                                      + String +
                                                                      errorThe error state of the authorization attempt +
                                                                      Accepted Values:
                                                                      + NO_ERROR : No error encountered
                                                                      + UNKNOWN_ERROR : An error was encountered, but no error description can be determined.
                                                                      + AUTHORIZATION_FAILED : The client authorization failed.
                                                                      + UNAUTHORIZED_CLIENT : The client is not authorized to use authorization codes.
                                                                      + SERVER_ERROR : The server encountered a runtime error.
                                                                      + INVALID_REQUEST : The request is missing a required parameter, has an invalid value, or is otherwise malformed.
                                                                      + INVALID_VALUE : One of the values in the request was invalid.
                                                                      + AUTHORIZATION_EXPIRED : The authorization code is invalid, expired, revoked, or was issued to a different client.
                                                                      + UNSUPPORTED_GRANT_TYPE : The client specified the wrong token type.
                                                                      + INVALID_CODE_PAIR : Invalid code pair provided in Code-based linking token request.
                                                                      + AUTHORIZATION_PENDING : Waiting for user to authorize the specified code pair.
                                                                      + SLOW_DOWN : Client should slow down in the rate of requests polling for an access token.
                                                                      + INTERNAL_ERROR : Internal error in client code.
                                                                      + INVALID_CBL_CLIENT_ID : Client ID not valid for use with code based linking.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaClient",
                                                                      +      "action" : "AuthStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "UNINITIALIZED",
                                                                      +    "error" : "NO_ERROR"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AlexaClient/ConnectionStatusChangedMessage.html b/extensions/aasb/docs/AlexaClient/ConnectionStatusChangedMessage.html new file mode 100644 index 000000000..476b72ba7 --- /dev/null +++ b/extensions/aasb/docs/AlexaClient/ConnectionStatusChangedMessage.html @@ -0,0 +1,1172 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ConnectionStatusChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of an AVS connection status change +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaClient",
                                                                      +      "action" : "ConnectionStatusChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "status" : {{String}},
                                                                      +    "reason" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AlexaClient"String
                                                                      messageDescription.action"ConnectionStatusChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      statusThe new AVS connection status +
                                                                      Accepted Values:
                                                                      + DISCONNECTED : Not connected to AVS
                                                                      + PENDING : Attempting to establish a connection to AVS
                                                                      + CONNECTED : Connected to AVS
                                                                      + +
                                                                      + String +
                                                                      reasonThe reason for the status change +
                                                                      Accepted Values:
                                                                      + NONE : No reason specified.
                                                                      + SUCCESS : The connection status changed due to a successful operation.
                                                                      + UNRECOVERABLE_ERROR : The connection status changed due to an error from which there is no recovery.
                                                                      + ACL_CLIENT_REQUEST : The connection status changed due to a client request.
                                                                      + ACL_DISABLED : The connection attempt failed because connection was disabled.
                                                                      + DNS_TIMEDOUT : The connection attempt failed due to a DNS resolution timeout.
                                                                      + CONNECTION_TIMEDOUT : The connection attempt failed due to a connection timeout.
                                                                      + CONNECTION_THROTTLED : The connection attempt failed due to excessive load on the server.
                                                                      + INVALID_AUTH : The provided access credentials were invalid.
                                                                      + PING_TIMEDOUT : There was a timeout sending a ping request.
                                                                      + WRITE_TIMEDOUT : There was a timeout writing to AVS.
                                                                      + READ_TIMEDOUT : There was a timeout reading from AVS.
                                                                      + FAILURE_PROTOCOL_ERROR : There was an underlying protocol error.
                                                                      + INTERNAL_ERROR : There was an internal error.
                                                                      + SERVER_INTERNAL_ERROR : There was an internal error on the server.
                                                                      + SERVER_SIDE_DISCONNECT : The server asked the client to reconnect.
                                                                      + SERVER_ENDPOINT_CHANGED : The server endpoint has changed.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaClient",
                                                                      +      "action" : "ConnectionStatusChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "status" : "DISCONNECTED",
                                                                      +    "reason" : "NONE"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AlexaClient/DialogStateChangedMessage.html b/extensions/aasb/docs/AlexaClient/DialogStateChangedMessage.html new file mode 100644 index 000000000..b3ad11daa --- /dev/null +++ b/extensions/aasb/docs/AlexaClient/DialogStateChangedMessage.html @@ -0,0 +1,1144 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      DialogStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of an Alexa dialog state change +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaClient",
                                                                      +      "action" : "DialogStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AlexaClient"String
                                                                      messageDescription.action"DialogStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      stateThe new Alexa dialog state +
                                                                      Accepted Values:
                                                                      + IDLE : Alexa is idle and ready for an interaction.
                                                                      + LISTENING : Alexa is currently listening.
                                                                      + EXPECTING : Alexa is currently expecting a response from the user.
                                                                      + THINKING : A user request has completed, and no more user input is being accepted. Alexa is waiting for a response from AVS.
                                                                      + SPEAKING : Alexa is responding to a request with speech.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaClient",
                                                                      +      "action" : "DialogStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "IDLE"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AlexaClient/StopForegroundActivityMessage.html b/extensions/aasb/docs/AlexaClient/StopForegroundActivityMessage.html new file mode 100644 index 000000000..9b380e3d1 --- /dev/null +++ b/extensions/aasb/docs/AlexaClient/StopForegroundActivityMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      StopForegroundActivity

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine to stop foreground activity +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaClient",
                                                                      +      "action" : "StopForegroundActivity"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AlexaClient"String
                                                                      messageDescription.action"StopForegroundActivity"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaClient",
                                                                      +      "action" : "StopForegroundActivity"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AlexaSpeaker/LocalAdjustVolumeMessage.html b/extensions/aasb/docs/AlexaSpeaker/LocalAdjustVolumeMessage.html new file mode 100644 index 000000000..215f361a9 --- /dev/null +++ b/extensions/aasb/docs/AlexaSpeaker/LocalAdjustVolumeMessage.html @@ -0,0 +1,1156 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LocalAdjustVolume

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a relative adjustment to the volume setting of the Speaker, +originating on the platform. +The delta value is relative to the current volume setting and is positive to +increase volume or negative to reduce volume. +The volume delta value should be scaled to fit the needs of the platform. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaSpeaker",
                                                                      +      "action" : "LocalAdjustVolume"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : {{String}},
                                                                      +    "delta" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AlexaSpeaker"String
                                                                      messageDescription.action"LocalAdjustVolume"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      typeThe type of Alexa speaker being set +
                                                                      Accepted Values:
                                                                      + ALEXA_VOLUME : The Speaker type that is controlled by AVS
                                                                      + ALERTS_VOLUME : The Speaker type that is controlled locally by the platform
                                                                      + +
                                                                      + String +
                                                                      deltaThe volume adjustment to apply to the Speaker + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaSpeaker",
                                                                      +      "action" : "LocalAdjustVolume"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : "ALEXA_VOLUME",
                                                                      +    "delta" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AlexaSpeaker/LocalSetMuteMessage.html b/extensions/aasb/docs/AlexaSpeaker/LocalSetMuteMessage.html new file mode 100644 index 000000000..f83295aa8 --- /dev/null +++ b/extensions/aasb/docs/AlexaSpeaker/LocalSetMuteMessage.html @@ -0,0 +1,1155 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LocalSetMute

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a mute setting change event +originating on the platform, such as a user pressing a "mute" button. +If the Speaker is Type::AVS_SPEAKER_VOLUME, the Engine will respond with a +call to setMute() on each AVS-synced Speaker. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaSpeaker",
                                                                      +      "action" : "LocalSetMute"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : {{String}},
                                                                      +    "mute" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AlexaSpeaker"String
                                                                      messageDescription.action"LocalSetMute"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      typeThe type of Alexa speaker being set +
                                                                      Accepted Values:
                                                                      + ALEXA_VOLUME : The Speaker type that is controlled by AVS
                                                                      + ALERTS_VOLUME : The Speaker type that is controlled locally by the platform
                                                                      + +
                                                                      + String +
                                                                      muteThe new mute setting of the Speaker + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaSpeaker",
                                                                      +      "action" : "LocalSetMute"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : "ALEXA_VOLUME",
                                                                      +    "mute" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AlexaSpeaker/LocalSetVolumeMessage.html b/extensions/aasb/docs/AlexaSpeaker/LocalSetVolumeMessage.html new file mode 100644 index 000000000..2abb35534 --- /dev/null +++ b/extensions/aasb/docs/AlexaSpeaker/LocalSetVolumeMessage.html @@ -0,0 +1,1155 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LocalSetVolume

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a volume change event +originating on the platform, such as a user pressing a "volume up" or "volume down" +button. If the Speaker is Type::AVS_SPEAKER_VOLUME, the Engine will respond with a +call to setVolume() on each AVS-synced Speaker. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaSpeaker",
                                                                      +      "action" : "LocalSetVolume"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : {{String}},
                                                                      +    "volume" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AlexaSpeaker"String
                                                                      messageDescription.action"LocalSetVolume"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      typeThe type of Alexa speaker being set +
                                                                      Accepted Values:
                                                                      + ALEXA_VOLUME : The Speaker type that is controlled by AVS
                                                                      + ALERTS_VOLUME : The Speaker type that is controlled locally by the platform
                                                                      + +
                                                                      + String +
                                                                      volumeThe new volume setting of the Speaker + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaSpeaker",
                                                                      +      "action" : "LocalSetVolume"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : "ALEXA_VOLUME",
                                                                      +    "volume" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AlexaSpeaker/SpeakerSettingsChangedMessage.html b/extensions/aasb/docs/AlexaSpeaker/SpeakerSettingsChangedMessage.html new file mode 100644 index 000000000..bf15d587f --- /dev/null +++ b/extensions/aasb/docs/AlexaSpeaker/SpeakerSettingsChangedMessage.html @@ -0,0 +1,1175 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SpeakerSettingsChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation that the speaker settings have changed for +a specific speaker type. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaSpeaker",
                                                                      +      "action" : "SpeakerSettingsChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : {{String}},
                                                                      +    "local" : {{Boolean}},
                                                                      +    "volume" : {{Integer}},
                                                                      +    "mute" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AlexaSpeaker"String
                                                                      messageDescription.action"SpeakerSettingsChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      typeThe type of Alexa speaker being set +
                                                                      Accepted Values:
                                                                      + ALEXA_VOLUME : The Speaker type that is controlled by AVS
                                                                      + ALERTS_VOLUME : The Speaker type that is controlled locally by the platform
                                                                      + +
                                                                      + String +
                                                                      localrue if the change originated from calling AlexaSpeaker::localSetVolume + + Boolean +
                                                                      volumehe new volume setting of the Speaker + + Integer +
                                                                      muteThe mute setting of the Speaker + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AlexaSpeaker",
                                                                      +      "action" : "SpeakerSettingsChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : "ALEXA_VOLUME",
                                                                      +    "local" : true,
                                                                      +    "volume" : 7,
                                                                      +    "mute" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioInput/StartAudioInputMessage.html b/extensions/aasb/docs/AudioInput/StartAudioInputMessage.html new file mode 100644 index 000000000..083da1b35 --- /dev/null +++ b/extensions/aasb/docs/AudioInput/StartAudioInputMessage.html @@ -0,0 +1,1164 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      StartAudioInput

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to start writing audio samples to the Engine +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioInput",
                                                                      +      "action" : "StartAudioInput"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : {{String}},
                                                                      +    "audioType" : {{String}},
                                                                      +    "streamId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioInput"String
                                                                      messageDescription.action"StartAudioInput"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      nameName of the Engine component that is requesting audio + + String +
                                                                      audioTypeThe type of audio data being requested +
                                                                      Accepted Values:
                                                                      + VOICE : Voice audio type.
                                                                      + COMMUNICATION : Communication audio type.
                                                                      + LOOPBACK : Loopback audio type.
                                                                      + +
                                                                      + String +
                                                                      streamIdStream ID that is used to write audio data to + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioInput",
                                                                      +      "action" : "StartAudioInput"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : "name-SampleText",
                                                                      +    "audioType" : "VOICE",
                                                                      +    "streamId" : "streamId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioInput/StopAudioInputMessage.html b/extensions/aasb/docs/AudioInput/StopAudioInputMessage.html new file mode 100644 index 000000000..da3eaa351 --- /dev/null +++ b/extensions/aasb/docs/AudioInput/StopAudioInputMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      StopAudioInput

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to stop writing audio samples to the Engine +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioInput",
                                                                      +      "action" : "StopAudioInput"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "streamId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioInput"String
                                                                      messageDescription.action"StopAudioInput"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      streamIdStream ID that is used to write audio data to + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioInput",
                                                                      +      "action" : "StopAudioInput"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "streamId" : "streamId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/GetDurationMessage.html b/extensions/aasb/docs/AudioOutput/GetDurationMessage.html new file mode 100644 index 000000000..989229511 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/GetDurationMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetDuration

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Request the duration of the current audio source. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetDuration"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"GetDuration"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetDuration"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/GetDurationMessageReply.html b/extensions/aasb/docs/AudioOutput/GetDurationMessageReply.html new file mode 100644 index 000000000..cc8e2e696 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/GetDurationMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetDuration Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetDuration

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetDuration",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "duration" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"GetDuration"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      durationThe duration of the current audio source. If the duration is unknown, then -1 should be returned. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetDuration",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "duration" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessage.html b/extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessage.html new file mode 100644 index 000000000..434dc2951 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetNumBytesBuffered

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the amount of audio data buffered. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetNumBytesBuffered"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"GetNumBytesBuffered"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetNumBytesBuffered"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessageReply.html b/extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessageReply.html new file mode 100644 index 000000000..7babd25dd --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/GetNumBytesBufferedMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetNumBytesBuffered Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetNumBytesBuffered

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetNumBytesBuffered",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bufferedBytes" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"GetNumBytesBuffered"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      bufferedBytesThe number of bytes of the audio data buffered, or 0 if it's unknown. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetNumBytesBuffered",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bufferedBytes" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/GetPositionMessage.html b/extensions/aasb/docs/AudioOutput/GetPositionMessage.html new file mode 100644 index 000000000..ae26aa236 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/GetPositionMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetPosition

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the current playback position of the platform media player. If the audio source is not playing, the most recent position played should be returned. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetPosition"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"GetPosition"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetPosition"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/GetPositionMessageReply.html b/extensions/aasb/docs/AudioOutput/GetPositionMessageReply.html new file mode 100644 index 000000000..b324a796f --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/GetPositionMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetPosition Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetPosition

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetPosition",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "position" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"GetPosition"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      positionThe platform media player's playback position in milliseconds. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "GetPosition",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "position" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/MediaErrorMessage.html b/extensions/aasb/docs/AudioOutput/MediaErrorMessage.html new file mode 100644 index 000000000..1c9e330d3 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/MediaErrorMessage.html @@ -0,0 +1,1166 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      MediaError

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of an error during audio playback. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "MediaError"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}},
                                                                      +    "error" : {{String}},
                                                                      +    "description" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"MediaError"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenThe unique token of the audio source. + + String +
                                                                      errorThe error encountered by the platform media player during playback. +
                                                                      Accepted Values:
                                                                      + MEDIA_ERROR_UNKNOWN : An unknown error occurred.
                                                                      + MEDIA_ERROR_INVALID_REQUEST : The server recognized the request as malformed (e.g. bad request, unauthorized, forbidden, not found, etc).
                                                                      + MEDIA_ERROR_SERVICE_UNAVAILABLE : The client was unable to reach the service.
                                                                      + MEDIA_ERROR_INTERNAL_SERVER_ERROR : The server accepted the request but was unable to process it as expected.
                                                                      + MEDIA_ERROR_INTERNAL_DEVICE_ERROR : There was an internal error on the client.
                                                                      + +
                                                                      + String +
                                                                      descriptionA description of the error. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "MediaError"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText",
                                                                      +    "error" : "MEDIA_ERROR_UNKNOWN",
                                                                      +    "description" : "description-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/MediaStateChangedMessage.html b/extensions/aasb/docs/AudioOutput/MediaStateChangedMessage.html new file mode 100644 index 000000000..18228f263 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/MediaStateChangedMessage.html @@ -0,0 +1,1164 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      MediaStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of an audio playback state change in the platform implementation. Must be called when the platform media player transitions between stopped and playing states. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "MediaStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}},
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"MediaStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source. + + String +
                                                                      stateThe new playback state of the platform media player. +
                                                                      Accepted Values:
                                                                      + STOPPED : The audio source is not currently playing. It may have paused, stopped, or finished.
                                                                      + PLAYING : The audio source is currently playing.
                                                                      + BUFFERING : The audio source is currently buffering data.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "MediaStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText",
                                                                      +    "state" : "STOPPED"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/MutedStateChangedMessage.html b/extensions/aasb/docs/AudioOutput/MutedStateChangedMessage.html new file mode 100644 index 000000000..c89b1329e --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/MutedStateChangedMessage.html @@ -0,0 +1,1152 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      MutedStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation that the muted state has changed for an audio source. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "MutedStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"MutedStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      stateThe muted state to apply to the audio source. +
                                                                      Accepted Values:
                                                                      + MUTED : Muted audio state.
                                                                      + UNMUTED : Unmuted audio state.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "MutedStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "state" : "MUTED"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/PauseMessage.html b/extensions/aasb/docs/AudioOutput/PauseMessage.html new file mode 100644 index 000000000..e95c1eb19 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/PauseMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Pause

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to pause an audio source. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Pause"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"Pause"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source being paused. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Pause"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/PlayMessage.html b/extensions/aasb/docs/AudioOutput/PlayMessage.html new file mode 100644 index 000000000..ae5a58ce2 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/PlayMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Play

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to play an audio source. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Play"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"Play"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source being played. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Play"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/PrepareStreamMessage.html b/extensions/aasb/docs/AudioOutput/PrepareStreamMessage.html new file mode 100644 index 000000000..4f615895b --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/PrepareStreamMessage.html @@ -0,0 +1,1242 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PrepareStream

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to prepare an audio stream for playback. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Prepare"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "STREAM",
                                                                      +    "channel" : {{String}},
                                                                      +    "audioType" : {{String}},
                                                                      +    "token" : {{String}},
                                                                      +    "streamId" : {{String}},
                                                                      +    "repeating" : {{Boolean}},
                                                                      +    "encoding" : {{String}},
                                                                      +    "properties" : [
                                                                      +      {
                                                                      +        "key" : {{String}},
                                                                      +        "value" : {{String}}
                                                                      +      },
                                                                      +      ...
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"Prepare"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      source"STREAM"String
                                                                      channelName of the channel that is providing audio + + String +
                                                                      audioTypeThe type of audio data to be played +
                                                                      Accepted Values:
                                                                      + TTS : Text-to-Speech audio type.
                                                                      + MUSIC : Music audio type.
                                                                      + NOTIFICATION : Notification audio type.
                                                                      + ALARM : Alarm audio type.
                                                                      + EARCON : Earcon audio type.
                                                                      + COMMUNICATION : Communication audio type.
                                                                      + RINGTONE : Ringtone audio type.
                                                                      + +
                                                                      + String +
                                                                      tokenA unique token for this audio stream + + String +
                                                                      streamIdThe URL audio stream being provided + + String +
                                                                      repeatingTrue if the platform should loop the audio when playing + + Boolean +
                                                                      encodingThe stream encoding format if known +
                                                                      Accepted Values:
                                                                      + UNKNOWN : Unknown encoding type.
                                                                      + LPCM : LPCM encoding type.
                                                                      + MP3 : MP3 encoding type.
                                                                      + OPUS : Opus encoding type.
                                                                      + +
                                                                      + String +
                                                                      propertiesList of properties associated with the audio stream + + Dictionary +
                                                                      properties.keyDictionary keyString
                                                                      properties.valueDictionary valueString
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Prepare"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "STREAM",
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "audioType" : "TTS",
                                                                      +    "token" : "token-SampleText",
                                                                      +    "streamId" : "streamId-SampleText",
                                                                      +    "repeating" : true,
                                                                      +    "encoding" : "UNKNOWN",
                                                                      +    "properties" : [
                                                                      +      {
                                                                      +        "key" : "properties-SampleKey",
                                                                      +        "value" : "properties-SampleValue"
                                                                      +      }
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/PrepareURLMessage.html b/extensions/aasb/docs/AudioOutput/PrepareURLMessage.html new file mode 100644 index 000000000..ff2fe3bd0 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/PrepareURLMessage.html @@ -0,0 +1,1197 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PrepareURL

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to prepare an audio URL for playback. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Prepare"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "URL",
                                                                      +    "channel" : {{String}},
                                                                      +    "audioType" : {{String}},
                                                                      +    "token" : {{String}},
                                                                      +    "url" : {{String}},
                                                                      +    "repeating" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"Prepare"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      source"URL"String
                                                                      channelName of the channel that is providing audio + + String +
                                                                      audioTypeThe type of audio data to be played +
                                                                      Accepted Values:
                                                                      + TTS : Text-to-Speech audio type.
                                                                      + MUSIC : Music audio type.
                                                                      + NOTIFICATION : Notification audio type.
                                                                      + ALARM : Alarm audio type.
                                                                      + EARCON : Earcon audio type.
                                                                      + COMMUNICATION : Communication audio type.
                                                                      + RINGTONE : Ringtone audio type.
                                                                      + +
                                                                      + String +
                                                                      tokenA unique token for this audio source. + + String +
                                                                      urlThe URL audio stream being provided + + String +
                                                                      repeatingTrue if the platform should loop the audio when playing + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Prepare"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "URL",
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "audioType" : "TTS",
                                                                      +    "token" : "token-SampleText",
                                                                      +    "url" : "url-SampleText",
                                                                      +    "repeating" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/ResumeMessage.html b/extensions/aasb/docs/AudioOutput/ResumeMessage.html new file mode 100644 index 000000000..ac5b2ba2e --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/ResumeMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Resume

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to resume an audio source. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Resume"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"Resume"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Resume"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/SetPositionMessage.html b/extensions/aasb/docs/AudioOutput/SetPositionMessage.html new file mode 100644 index 000000000..b1d03817b --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/SetPositionMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetPosition

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to set the playback position of the current audio source in the platform media player. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "SetPosition"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}},
                                                                      +    "position" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"SetPosition"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source. + + String +
                                                                      positionThe playback position in milliseconds to set in the platform media player. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "SetPosition"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText",
                                                                      +    "position" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/StopMessage.html b/extensions/aasb/docs/AudioOutput/StopMessage.html new file mode 100644 index 000000000..b4bf0a2e6 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/StopMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Stop

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to stop an audio source. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Stop"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"Stop"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      tokenThe unique token of the audio source. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "Stop"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioOutput/VolumeChangedMessage.html b/extensions/aasb/docs/AudioOutput/VolumeChangedMessage.html new file mode 100644 index 000000000..fe956a4d1 --- /dev/null +++ b/extensions/aasb/docs/AudioOutput/VolumeChangedMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      VolumeChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation that the volume has changed for an audio source. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "VolumeChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : {{String}},
                                                                      +    "volume" : {{Float}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioOutput"String
                                                                      messageDescription.action"VolumeChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      channelName of the channel that is providing audio + + String +
                                                                      volumeThe playback position in milliseconds to set in the platform media player. + + Float +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioOutput",
                                                                      +      "action" : "VolumeChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "channel" : "channel-SampleText",
                                                                      +    "volume" : 1.0
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessage.html b/extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessage.html new file mode 100644 index 000000000..1f9d1d7ca --- /dev/null +++ b/extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetPlayerDuration

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Returns the playback duration of the audio player. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "GetPlayerDuration"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioPlayer"String
                                                                      messageDescription.action"GetPlayerDuration"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "GetPlayerDuration"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessageReply.html b/extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessageReply.html new file mode 100644 index 000000000..465339458 --- /dev/null +++ b/extensions/aasb/docs/AudioPlayer/GetPlayerDurationMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetPlayerDuration Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      + This messages is sent as a reply to GetPlayerDuration

                                                                      +Returns the playback duration of the audio player. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "GetPlayerDuration",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "playbackDuration" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioPlayer"String
                                                                      messageDescription.action"GetPlayerDuration"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      playbackDuration The audio player's playback duration in milliseconds + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "GetPlayerDuration",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "playbackDuration" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessage.html b/extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessage.html new file mode 100644 index 000000000..f5f8743f3 --- /dev/null +++ b/extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetPlayerPosition

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Returns the current playback position of the audio player. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "GetPlayerPosition"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioPlayer"String
                                                                      messageDescription.action"GetPlayerPosition"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "GetPlayerPosition"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessageReply.html b/extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessageReply.html new file mode 100644 index 000000000..1c0e31496 --- /dev/null +++ b/extensions/aasb/docs/AudioPlayer/GetPlayerPositionMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetPlayerPosition Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      + This messages is sent as a reply to GetPlayerPosition

                                                                      +Returns the current playback position of the audio player. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "GetPlayerPosition",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "playbackPosition" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioPlayer"String
                                                                      messageDescription.action"GetPlayerPosition"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      playbackPosition The audio player's playback position in milliseconds + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "GetPlayerPosition",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "playbackPosition" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AudioPlayer/PlayerActivityChangedMessage.html b/extensions/aasb/docs/AudioPlayer/PlayerActivityChangedMessage.html new file mode 100644 index 000000000..8341a7be4 --- /dev/null +++ b/extensions/aasb/docs/AudioPlayer/PlayerActivityChangedMessage.html @@ -0,0 +1,1145 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PlayerActivityChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of a change in audio playback state +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "PlayerActivityChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AudioPlayer"String
                                                                      messageDescription.action"PlayerActivityChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      stateThe new playback state +
                                                                      Accepted Values:
                                                                      + IDLE : Audio playback has not yet begun.
                                                                      + PLAYING : Audio is currently playing.
                                                                      + STOPPED : Audio playback is stopped, either from a stop directive or playback error.
                                                                      + PAUSED : Audio playback is paused.
                                                                      + BUFFER_UNDERRUN : Audio playback is stalled because a buffer underrun has occurred.
                                                                      + FINISHED : Audio playback is finished.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AudioPlayer",
                                                                      +      "action" : "PlayerActivityChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "IDLE"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AuthProvider/AuthStateChangedMessage.html b/extensions/aasb/docs/AuthProvider/AuthStateChangedMessage.html new file mode 100644 index 000000000..5f315f11a --- /dev/null +++ b/extensions/aasb/docs/AuthProvider/AuthStateChangedMessage.html @@ -0,0 +1,1170 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AuthStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a change in AVS authorization state in the platform implementation +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "AuthStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "authState" : {{String}},
                                                                      +    "authError" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AuthProvider"String
                                                                      messageDescription.action"AuthStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      authStateThe new authorization state +
                                                                      Accepted Values:
                                                                      + UNINITIALIZED : Authorization has not yet been acquired.
                                                                      + REFRESHED : Authorization has been refreshed.
                                                                      + EXPIRED : Authorization has expired.
                                                                      + UNRECOVERABLE_ERROR : Authorization has failed in a manner that cannot be corrected by retrying.
                                                                      + +
                                                                      + String +
                                                                      authErrorThe error state of the authorization attempt +
                                                                      Accepted Values:
                                                                      + NO_ERROR : No error encountered
                                                                      + UNKNOWN_ERROR : An error was encountered, but no error description can be determined.
                                                                      + AUTHORIZATION_FAILED : The client authorization failed.
                                                                      + UNAUTHORIZED_CLIENT : The client is not authorized to use authorization codes.
                                                                      + SERVER_ERROR : The server encountered a runtime error.
                                                                      + INVALID_REQUEST : The request is missing a required parameter, has an invalid value, or is otherwise malformed.
                                                                      + INVALID_VALUE : One of the values in the request was invalid.
                                                                      + AUTHORIZATION_EXPIRED : The authorization code is invalid, expired, revoked, or was issued to a different client.
                                                                      + UNSUPPORTED_GRANT_TYPE : The client specified the wrong token type.
                                                                      + INVALID_CODE_PAIR : Invalid code pair provided in Code-based linking token request.
                                                                      + AUTHORIZATION_PENDING : Waiting for user to authorize the specified code pair.
                                                                      + SLOW_DOWN : Client should slow down in the rate of requests polling for an access token.
                                                                      + INTERNAL_ERROR : Internal error in client code.
                                                                      + INVALID_CBL_CLIENT_ID : Client ID not valid for use with code based linking.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "AuthStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "authState" : "UNINITIALIZED",
                                                                      +    "authError" : "NO_ERROR"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AuthProvider/GetAuthStateMessage.html b/extensions/aasb/docs/AuthProvider/GetAuthStateMessage.html new file mode 100644 index 000000000..f39ce6aeb --- /dev/null +++ b/extensions/aasb/docs/AuthProvider/GetAuthStateMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetAuthState

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the AVS authorization state of the platform implementation +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "GetAuthState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AuthProvider"String
                                                                      messageDescription.action"GetAuthState"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "GetAuthState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AuthProvider/GetAuthStateMessageReply.html b/extensions/aasb/docs/AuthProvider/GetAuthStateMessageReply.html new file mode 100644 index 000000000..ebfb89c07 --- /dev/null +++ b/extensions/aasb/docs/AuthProvider/GetAuthStateMessageReply.html @@ -0,0 +1,1155 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetAuthState Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetAuthState

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "GetAuthState",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AuthProvider"String
                                                                      messageDescription.action"GetAuthState"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      state The AVS authorization state +
                                                                      Accepted Values:
                                                                      + UNINITIALIZED : Authorization has not yet been acquired.
                                                                      + REFRESHED : Authorization has been refreshed.
                                                                      + EXPIRED : Authorization has expired.
                                                                      + UNRECOVERABLE_ERROR : Authorization has failed in a manner that cannot be corrected by retrying.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "GetAuthState",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "UNINITIALIZED"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AuthProvider/GetAuthTokenMessage.html b/extensions/aasb/docs/AuthProvider/GetAuthTokenMessage.html new file mode 100644 index 000000000..313146989 --- /dev/null +++ b/extensions/aasb/docs/AuthProvider/GetAuthTokenMessage.html @@ -0,0 +1,1129 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetAuthToken

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the token used by the platform implementation for authorization with AVS. +The platform implementation should retrieve an auth token if it does not have one. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "GetAuthToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AuthProvider"String
                                                                      messageDescription.action"GetAuthToken"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "GetAuthToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/AuthProvider/GetAuthTokenMessageReply.html b/extensions/aasb/docs/AuthProvider/GetAuthTokenMessageReply.html new file mode 100644 index 000000000..0ce9c3b02 --- /dev/null +++ b/extensions/aasb/docs/AuthProvider/GetAuthTokenMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetAuthToken Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetAuthToken

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "GetAuthToken",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "authToken" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"AuthProvider"String
                                                                      messageDescription.action"GetAuthToken"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      authToken The token used to authorize with AVS + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "AuthProvider",
                                                                      +      "action" : "GetAuthToken",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "authToken" : "authToken-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/CBLStateChangedMessage.html b/extensions/aasb/docs/CBL/CBLStateChangedMessage.html new file mode 100644 index 000000000..106d634c4 --- /dev/null +++ b/extensions/aasb/docs/CBL/CBLStateChangedMessage.html @@ -0,0 +1,1186 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      CBLStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of an authorization flow state change +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "CBLStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}},
                                                                      +    "reason" : {{String}},
                                                                      +    "url" : {{String}},
                                                                      +    "code" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"CBLStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      state +
                                                                      Accepted Values:
                                                                      + STARTING : CBL process is starting
                                                                      + REQUESTING_CODE_PAIR : Initiating the process to request a code pair
                                                                      + CODE_PAIR_RECEIVED : Code pair is received and is waiting on user to authenticate
                                                                      + REFRESHING_TOKEN : Refreshing token stage has begun
                                                                      + REQUESTING_TOKEN : Requesting for authorization token
                                                                      + STOPPING : CBL process is ending
                                                                      + +
                                                                      + String +
                                                                      reason +
                                                                      Accepted Values:
                                                                      + SUCCESS : The CBL state changed successfully
                                                                      + ERROR : Error occured in the CBL process
                                                                      + TIMEOUT : Request timed out
                                                                      + CODE_PAIR_EXPIRED : Code pair has expired and user will need to initiate the authentication process again
                                                                      + AUTHORIZATION_EXPIRED : Authorization Expired due to expired token
                                                                      + NONE : No reason specified
                                                                      + +
                                                                      + String +
                                                                      url + + String +
                                                                      code + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "CBLStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "STARTING",
                                                                      +    "reason" : "SUCCESS",
                                                                      +    "url" : "url-SampleText",
                                                                      +    "code" : "code-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/CancelMessage.html b/extensions/aasb/docs/CBL/CancelMessage.html new file mode 100644 index 000000000..e94d0f8b0 --- /dev/null +++ b/extensions/aasb/docs/CBL/CancelMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Cancel

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine to cancel the authorization process +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "Cancel"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"Cancel"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "Cancel"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/ClearRefreshTokenMessage.html b/extensions/aasb/docs/CBL/ClearRefreshTokenMessage.html new file mode 100644 index 000000000..6d7675f3b --- /dev/null +++ b/extensions/aasb/docs/CBL/ClearRefreshTokenMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ClearRefreshToken

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to clear the refresh token +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "ClearRefreshToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"ClearRefreshToken"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "ClearRefreshToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/GetRefreshTokenMessage.html b/extensions/aasb/docs/CBL/GetRefreshTokenMessage.html new file mode 100644 index 000000000..40bc8b0ad --- /dev/null +++ b/extensions/aasb/docs/CBL/GetRefreshTokenMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetRefreshToken

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the refresh token stored by the platform implementation, otherwise return an empty string +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "GetRefreshToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"GetRefreshToken"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "GetRefreshToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/GetRefreshTokenMessageReply.html b/extensions/aasb/docs/CBL/GetRefreshTokenMessageReply.html new file mode 100644 index 000000000..a762dcea2 --- /dev/null +++ b/extensions/aasb/docs/CBL/GetRefreshTokenMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetRefreshToken Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetRefreshToken

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "GetRefreshToken",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "refreshToken" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"GetRefreshToken"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      refreshToken + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "GetRefreshToken",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "refreshToken" : "refreshToken-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/ResetMessage.html b/extensions/aasb/docs/CBL/ResetMessage.html new file mode 100644 index 000000000..4a79f981e --- /dev/null +++ b/extensions/aasb/docs/CBL/ResetMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Reset

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine to reset the authorization state +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "Reset"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"Reset"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "Reset"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/SetRefreshTokenMessage.html b/extensions/aasb/docs/CBL/SetRefreshTokenMessage.html new file mode 100644 index 000000000..d3b186cae --- /dev/null +++ b/extensions/aasb/docs/CBL/SetRefreshTokenMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetRefreshToken

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implemnentation to set the refresh token +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "SetRefreshToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "refreshToken" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"SetRefreshToken"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      refreshTokenRefresh Token + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "SetRefreshToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "refreshToken" : "refreshToken-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/SetUserProfileMessage.html b/extensions/aasb/docs/CBL/SetUserProfileMessage.html new file mode 100644 index 000000000..20bdf1b5f --- /dev/null +++ b/extensions/aasb/docs/CBL/SetUserProfileMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetUserProfile

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to set the user profile requestUserProfile must be enabled in configuration +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "SetUserProfile"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : {{String}},
                                                                      +    "email" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"SetUserProfile"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      nameName of the user + + String +
                                                                      emailEmail of the user + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "SetUserProfile"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : "name-SampleText",
                                                                      +    "email" : "email-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CBL/StartMessage.html b/extensions/aasb/docs/CBL/StartMessage.html new file mode 100644 index 000000000..14287b091 --- /dev/null +++ b/extensions/aasb/docs/CBL/StartMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Start

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine to begin the authorization process +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "Start"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CBL"String
                                                                      messageDescription.action"Start"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CBL",
                                                                      +      "action" : "Start"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/AdjustModeControllerValueMessage.html b/extensions/aasb/docs/CarControl/AdjustModeControllerValueMessage.html new file mode 100644 index 000000000..9dd64f2af --- /dev/null +++ b/extensions/aasb/docs/CarControl/AdjustModeControllerValueMessage.html @@ -0,0 +1,1166 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AdjustModeControllerValue

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Adjusts the mode controller value +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "AdjustControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "MODE",
                                                                      +    "endpointId" : {{String}},
                                                                      +    "controllerId" : {{String}},
                                                                      +    "delta" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"AdjustControllerValue"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      controllerType"MODE"String
                                                                      endpointIdEndpoint Id + + String +
                                                                      controllerIdController Id + + String +
                                                                      deltaDelta value + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "AdjustControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "MODE",
                                                                      +    "endpointId" : "endpointId-SampleText",
                                                                      +    "controllerId" : "controllerId-SampleText",
                                                                      +    "delta" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/AdjustModeControllerValueMessageReply.html b/extensions/aasb/docs/CarControl/AdjustModeControllerValueMessageReply.html new file mode 100644 index 000000000..76dd0ae88 --- /dev/null +++ b/extensions/aasb/docs/CarControl/AdjustModeControllerValueMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AdjustModeControllerValue Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to AdjustModeControllerValue

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "AdjustControllerValue",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"AdjustControllerValue"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      successSuccess + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "AdjustControllerValue",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessage.html b/extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessage.html new file mode 100644 index 000000000..863f8b11e --- /dev/null +++ b/extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessage.html @@ -0,0 +1,1166 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AdjustRangeControllerValue

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Adjusts the RangeController value +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "AdjustControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "RANGE",
                                                                      +    "endpointId" : {{String}},
                                                                      +    "controllerId" : {{String}},
                                                                      +    "delta" : {{Double}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"AdjustControllerValue"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      controllerType"RANGE"String
                                                                      endpointIdEndpoint Id + + String +
                                                                      controllerIdController Id + + String +
                                                                      deltaDelta + + Double +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "AdjustControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "RANGE",
                                                                      +    "endpointId" : "endpointId-SampleText",
                                                                      +    "controllerId" : "controllerId-SampleText",
                                                                      +    "delta" : 
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessageReply.html b/extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessageReply.html new file mode 100644 index 000000000..1366f2aa0 --- /dev/null +++ b/extensions/aasb/docs/CarControl/AdjustRangeControllerValueMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AdjustRangeControllerValue Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to AdjustRangeControllerValue

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "AdjustControllerValue",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"AdjustControllerValue"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      successSuccess + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "AdjustControllerValue",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/SetModeControllerValueMessage.html b/extensions/aasb/docs/CarControl/SetModeControllerValueMessage.html new file mode 100644 index 000000000..19c4f9b9f --- /dev/null +++ b/extensions/aasb/docs/CarControl/SetModeControllerValueMessage.html @@ -0,0 +1,1166 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetModeControllerValue

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Sets the ModeController value +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "MODE",
                                                                      +    "endpointId" : {{String}},
                                                                      +    "controllerId" : {{String}},
                                                                      +    "value" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"SetControllerValue"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      controllerType"MODE"String
                                                                      endpointIdEndpoint Id + + String +
                                                                      controllerIdController Id + + String +
                                                                      valueValue + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "MODE",
                                                                      +    "endpointId" : "endpointId-SampleText",
                                                                      +    "controllerId" : "controllerId-SampleText",
                                                                      +    "value" : "value-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/SetModeControllerValueMessageReply.html b/extensions/aasb/docs/CarControl/SetModeControllerValueMessageReply.html new file mode 100644 index 000000000..2b4c05dd6 --- /dev/null +++ b/extensions/aasb/docs/CarControl/SetModeControllerValueMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetModeControllerValue Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to SetModeControllerValue

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"SetControllerValue"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      successSuccess + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/SetPowerControllerValueMessage.html b/extensions/aasb/docs/CarControl/SetPowerControllerValueMessage.html new file mode 100644 index 000000000..a7cd1bb03 --- /dev/null +++ b/extensions/aasb/docs/CarControl/SetPowerControllerValueMessage.html @@ -0,0 +1,1155 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetPowerControllerValue

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +set the PowerController to ON or OFF +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "POWER",
                                                                      +    "endpointId" : {{String}},
                                                                      +    "turnOn" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"SetControllerValue"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      controllerType"POWER"String
                                                                      endpointIdEndpoint Id + + String +
                                                                      turnOnIndicates turn on or turn off the controller + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "POWER",
                                                                      +    "endpointId" : "endpointId-SampleText",
                                                                      +    "turnOn" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/SetPowerControllerValueMessageReply.html b/extensions/aasb/docs/CarControl/SetPowerControllerValueMessageReply.html new file mode 100644 index 000000000..1a50ae478 --- /dev/null +++ b/extensions/aasb/docs/CarControl/SetPowerControllerValueMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetPowerControllerValue Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to SetPowerControllerValue

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"SetControllerValue"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      successSuccess + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/SetRangeControllerValueMessage.html b/extensions/aasb/docs/CarControl/SetRangeControllerValueMessage.html new file mode 100644 index 000000000..11b20849f --- /dev/null +++ b/extensions/aasb/docs/CarControl/SetRangeControllerValueMessage.html @@ -0,0 +1,1166 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetRangeControllerValue

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Sets the RangeController value +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "RANGE",
                                                                      +    "endpointId" : {{String}},
                                                                      +    "controllerId" : {{String}},
                                                                      +    "value" : {{Double}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"SetControllerValue"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      controllerType"RANGE"String
                                                                      endpointIdEndpoint Id + + String +
                                                                      controllerIdController Id + + String +
                                                                      valueValue of RangeController + + Double +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "RANGE",
                                                                      +    "endpointId" : "endpointId-SampleText",
                                                                      +    "controllerId" : "controllerId-SampleText",
                                                                      +    "value" : 
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/SetRangeControllerValueMessageReply.html b/extensions/aasb/docs/CarControl/SetRangeControllerValueMessageReply.html new file mode 100644 index 000000000..6f27322a6 --- /dev/null +++ b/extensions/aasb/docs/CarControl/SetRangeControllerValueMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetRangeControllerValue Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to SetRangeControllerValue

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"SetControllerValue"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      successSuccess + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/SetToggleControllerValueMessage.html b/extensions/aasb/docs/CarControl/SetToggleControllerValueMessage.html new file mode 100644 index 000000000..53ac56564 --- /dev/null +++ b/extensions/aasb/docs/CarControl/SetToggleControllerValueMessage.html @@ -0,0 +1,1166 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetToggleControllerValue

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +set the ToggleController to ON or OFF +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "TOGGLE",
                                                                      +    "endpointId" : {{String}},
                                                                      +    "controllerId" : {{String}},
                                                                      +    "turnOn" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"SetControllerValue"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      controllerType"TOGGLE"String
                                                                      endpointIdEndpoint Id + + String +
                                                                      controllerIdController Id + + String +
                                                                      turnOnIndicates turn on or turn off the controller + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controllerType" : "TOGGLE",
                                                                      +    "endpointId" : "endpointId-SampleText",
                                                                      +    "controllerId" : "controllerId-SampleText",
                                                                      +    "turnOn" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/CarControl/SetToggleControllerValueMessageReply.html b/extensions/aasb/docs/CarControl/SetToggleControllerValueMessageReply.html new file mode 100644 index 000000000..be6eada60 --- /dev/null +++ b/extensions/aasb/docs/CarControl/SetToggleControllerValueMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetToggleControllerValue Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to SetToggleControllerValue

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"CarControl"String
                                                                      messageDescription.action"SetControllerValue"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      successSuccess + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "CarControl",
                                                                      +      "action" : "SetControllerValue",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "success" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/DoNotDisturb/DoNotDisturbChangedMessage.html b/extensions/aasb/docs/DoNotDisturb/DoNotDisturbChangedMessage.html new file mode 100644 index 000000000..d3eea0b50 --- /dev/null +++ b/extensions/aasb/docs/DoNotDisturb/DoNotDisturbChangedMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      DoNotDisturbChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a platform request to set the DND State +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "DoNotDisturb",
                                                                      +      "action" : "DoNotDisturbChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "doNotDisturb" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"DoNotDisturb"String
                                                                      messageDescription.action"DoNotDisturbChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      doNotDisturbsetting state + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "DoNotDisturb",
                                                                      +      "action" : "DoNotDisturbChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "doNotDisturb" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/DoNotDisturb/SetDoNotDisturbMessage.html b/extensions/aasb/docs/DoNotDisturb/SetDoNotDisturbMessage.html new file mode 100644 index 000000000..f8073c612 --- /dev/null +++ b/extensions/aasb/docs/DoNotDisturb/SetDoNotDisturbMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetDoNotDisturb

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Handle setting of DND directive. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "DoNotDisturb",
                                                                      +      "action" : "SetDoNotDisturb"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "doNotDisturb" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"DoNotDisturb"String
                                                                      messageDescription.action"SetDoNotDisturb"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      doNotDisturbsetting state + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "DoNotDisturb",
                                                                      +      "action" : "SetDoNotDisturb"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "doNotDisturb" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/EqualizerController/GetBandLevelsMessage.html b/extensions/aasb/docs/EqualizerController/GetBandLevelsMessage.html new file mode 100644 index 000000000..5bff7e001 --- /dev/null +++ b/extensions/aasb/docs/EqualizerController/GetBandLevelsMessage.html @@ -0,0 +1,1129 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetBandLevels

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Retrieves the current equalizer gain settings on the device for each supported band. If unsupported band levels +are provided, the Engine will truncate levels to the configured range. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "GetBandLevels"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"EqualizerController"String
                                                                      messageDescription.action"GetBandLevels"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "GetBandLevels"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/EqualizerController/GetBandLevelsMessageReply.html b/extensions/aasb/docs/EqualizerController/GetBandLevelsMessageReply.html new file mode 100644 index 000000000..ec1efdc92 --- /dev/null +++ b/extensions/aasb/docs/EqualizerController/GetBandLevelsMessageReply.html @@ -0,0 +1,1184 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetBandLevels Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetBandLevels

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "GetBandLevels",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bandLevels" : [
                                                                      +      {
                                                                      +        "band" : {{String}},
                                                                      +        "level" : {{Integer}}
                                                                      +      },
                                                                      +      ...
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"EqualizerController"String
                                                                      messageDescription.action"GetBandLevels"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      bandLevels The supported equalizer bands and their current gain settings as integer dB values + + List +
                                                                      bandLevels.bandDescribes the equalizer bands supported by Alexa. The platform implementation may support a subset of these. +
                                                                      Accepted Values:
                                                                      + BASS : Bass equalizer band
                                                                      + MIDRANGE : Mid-range equalizer band
                                                                      + TREBLE : Treble equalizer band
                                                                      + +
                                                                      + String +
                                                                      bandLevels.levelDescribes the level of gain of a particular equalizer band as an integer dB value. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "GetBandLevels",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bandLevels" : [
                                                                      +      {
                                                                      +        "band" : "BASS",
                                                                      +        "level" : 7
                                                                      +      }
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/EqualizerController/LocalAdjustBandLevelsMessage.html b/extensions/aasb/docs/EqualizerController/LocalAdjustBandLevelsMessage.html new file mode 100644 index 000000000..8347abff1 --- /dev/null +++ b/extensions/aasb/docs/EqualizerController/LocalAdjustBandLevelsMessage.html @@ -0,0 +1,1174 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LocalAdjustBandLevels

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + Notifies the Engine that relative adjustments to equalizer band gain levels are being made directly on the +device. If adjustments put the band level settings beyond the configured dB range, the Engine will truncate the +settings to the configured range. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "LocalAdjustBandLevels"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bandAdjustments" : [
                                                                      +      {
                                                                      +        "band" : {{String}},
                                                                      +        "level" : {{Integer}}
                                                                      +      },
                                                                      +      ...
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"EqualizerController"String
                                                                      messageDescription.action"LocalAdjustBandLevels"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      bandAdjustmentshe equalizer bands to adjust and their relative gain adjustments as integer dB values. + + List +
                                                                      bandAdjustments.bandDescribes the equalizer bands supported by Alexa. The platform implementation may support a subset of these. +
                                                                      Accepted Values:
                                                                      + BASS : Bass equalizer band
                                                                      + MIDRANGE : Mid-range equalizer band
                                                                      + TREBLE : Treble equalizer band
                                                                      + +
                                                                      + String +
                                                                      bandAdjustments.levelDescribes the level of gain of a particular equalizer band as an integer dB value. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "LocalAdjustBandLevels"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bandAdjustments" : [
                                                                      +      {
                                                                      +        "band" : "BASS",
                                                                      +        "level" : 7
                                                                      +      }
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/EqualizerController/LocalResetBandsMessage.html b/extensions/aasb/docs/EqualizerController/LocalResetBandsMessage.html new file mode 100644 index 000000000..af7d5f8c3 --- /dev/null +++ b/extensions/aasb/docs/EqualizerController/LocalResetBandsMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LocalResetBands

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that the gain levels for the equalizer bands are being reset to their defaults. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "LocalResetBands"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bands" : {{List}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"EqualizerController"String
                                                                      messageDescription.action"LocalResetBands"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      bandsThe equalizer bands to reset. Empty @a bands resets all supported equalizer bands + + List +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "LocalResetBands"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bands" : 
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/EqualizerController/LocalSetBandLevelsMessage.html b/extensions/aasb/docs/EqualizerController/LocalSetBandLevelsMessage.html new file mode 100644 index 000000000..2417619c5 --- /dev/null +++ b/extensions/aasb/docs/EqualizerController/LocalSetBandLevelsMessage.html @@ -0,0 +1,1173 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LocalSetBandLevels

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that gain levels for one or more equalizer bands are being set directly on the device. If +unsupported levels are provided, the Engine will truncate the settings to the configured range. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "LocalSetBandLevels"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bandLevels" : [
                                                                      +      {
                                                                      +        "band" : {{String}},
                                                                      +        "level" : {{Integer}}
                                                                      +      },
                                                                      +      ...
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"EqualizerController"String
                                                                      messageDescription.action"LocalSetBandLevels"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      bandLevelsThe equalizer bands to change and their gain settings as integer dB values + + List +
                                                                      bandLevels.bandDescribes the equalizer bands supported by Alexa. The platform implementation may support a subset of these. +
                                                                      Accepted Values:
                                                                      + BASS : Bass equalizer band
                                                                      + MIDRANGE : Mid-range equalizer band
                                                                      + TREBLE : Treble equalizer band
                                                                      + +
                                                                      + String +
                                                                      bandLevels.levelDescribes the level of gain of a particular equalizer band as an integer dB value. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "LocalSetBandLevels"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bandLevels" : [
                                                                      +      {
                                                                      +        "band" : "BASS",
                                                                      +        "level" : 7
                                                                      +      }
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/EqualizerController/SetBandLevelsMessage.html b/extensions/aasb/docs/EqualizerController/SetBandLevelsMessage.html new file mode 100644 index 000000000..633a27d08 --- /dev/null +++ b/extensions/aasb/docs/EqualizerController/SetBandLevelsMessage.html @@ -0,0 +1,1172 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetBandLevels

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to apply the provided gain settings to the corresponding equalizer bands. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "SetBandLevels"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bandLevels" : [
                                                                      +      {
                                                                      +        "band" : {{String}},
                                                                      +        "level" : {{Integer}}
                                                                      +      },
                                                                      +      ...
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"EqualizerController"String
                                                                      messageDescription.action"SetBandLevels"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      bandLevelsThe equalizer bands and their gain settings to apply as integer dB values + + List +
                                                                      bandLevels.bandDescribes the equalizer bands supported by Alexa. The platform implementation may support a subset of these. +
                                                                      Accepted Values:
                                                                      + BASS : Bass equalizer band
                                                                      + MIDRANGE : Mid-range equalizer band
                                                                      + TREBLE : Treble equalizer band
                                                                      + +
                                                                      + String +
                                                                      bandLevels.levelDescribes the level of gain of a particular equalizer band as an integer dB value. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "EqualizerController",
                                                                      +      "action" : "SetBandLevels"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "bandLevels" : [
                                                                      +      {
                                                                      +        "band" : "BASS",
                                                                      +        "level" : 7
                                                                      +      }
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/AdjustSeekMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/AdjustSeekMessage.html new file mode 100644 index 000000000..3b5db7c58 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/AdjustSeekMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AdjustSeek

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Called when the user invokes media seek adjustment via speech. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "AdjustSeek"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}},
                                                                      +    "deltaOffset" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"AdjustSeek"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      deltaOffsetChange in offset position within media item, in milliseconds + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "AdjustSeek"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText",
                                                                      +    "deltaOffset" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/AuthorizeMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/AuthorizeMessage.html new file mode 100644 index 000000000..35afc778c --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/AuthorizeMessage.html @@ -0,0 +1,1168 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Authorize

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Called after discovered media players have been reported. Returns a list of reported players and whether they +have been authorized for use with Alexa. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Authorize"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "authorizedPlayers" : [
                                                                      +      {
                                                                      +        "localPlayerId" : {{String}},
                                                                      +        "authorized" : {{Boolean}}
                                                                      +      },
                                                                      +      ...
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"Authorize"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      authorizedPlayersA list of discovered players with their status of authorization for use with Alexa + + List +
                                                                      authorizedPlayers.localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      authorizedPlayers.authorizedAuthorization status + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Authorize"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "authorizedPlayers" : [
                                                                      +      {
                                                                      +        "localPlayerId" : "localPlayerId-SampleText",
                                                                      +        "authorized" : true
                                                                      +      }
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/GetStateMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/GetStateMessage.html new file mode 100644 index 000000000..9aa3ac624 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/GetStateMessage.html @@ -0,0 +1,1573 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetState

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Must provide the local external media player apps @PlaybackStateExternal, and @SessionStateExternal information to maintain cloud sync +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "GetState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}},
                                                                      +    "state" : {
                                                                      +      "sessionState" : {
                                                                      +        "endpointId" : {{String}},
                                                                      +        "loggedIn" : {{Boolean}},
                                                                      +        "userName" : {{String}},
                                                                      +        "isGuest" : {{Boolean}},
                                                                      +        "launched" : {{Boolean}},
                                                                      +        "active" : {{Boolean}},
                                                                      +        "accessToken" : {{String}},
                                                                      +        "tokenRefreshInterval" : {{Integer}},
                                                                      +        "playerCookie" : {{String}},
                                                                      +        "spiVersion" : {{String}}
                                                                      +      },
                                                                      +      "playbackState" : {
                                                                      +        "state" : {{String}},
                                                                      +        "supportedOperations" : {{List}},
                                                                      +        "trackOffset" : {{Integer}},
                                                                      +        "shuffleEnabled" : {{Boolean}},
                                                                      +        "repeatEnabled" : {{Boolean}},
                                                                      +        "favorites" : {{String}},
                                                                      +        "type" : {{String}},
                                                                      +        "playbackSource" : {{String}},
                                                                      +        "playbackSourceId" : {{String}},
                                                                      +        "trackName" : {{String}},
                                                                      +        "trackId" : {{String}},
                                                                      +        "trackNumber" : {{String}},
                                                                      +        "artistName" : {{String}},
                                                                      +        "artistId" : {{String}},
                                                                      +        "albumName" : {{String}},
                                                                      +        "albumId" : {{String}},
                                                                      +        "tinyURL" : {{String}},
                                                                      +        "smallURL" : {{String}},
                                                                      +        "mediumURL" : {{String}},
                                                                      +        "largeURL" : {{String}},
                                                                      +        "coverId" : {{String}},
                                                                      +        "mediaProvider" : {{String}},
                                                                      +        "mediaType" : {{String}},
                                                                      +        "duration" : {{Integer}}
                                                                      +      }
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"GetState"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      stateThe ExternalMediaAdapterState to be initialized by the platform + + Object +
                                                                      state.sessionStateVariable to hold the session state. + + Object +
                                                                      state.sessionState.endpointIdThe unique device endpoint. + + String +
                                                                      state.sessionState.loggedInFlag that identifies if a user is currently logged in or not. + + Boolean +
                                                                      state.sessionState.userNameThe userName of the user currently logged in via a Login directive from the AVS. + + String +
                                                                      state.sessionState.isGuestFlag that identifies if the user currently logged in is a guest or not. + + Boolean +
                                                                      state.sessionState.launchedFlag that identifies if an application has been launched or not. + + Boolean +
                                                                      state.sessionState.activeFlag that identifies if the application is currently active or not. This could mean different things +
                                                                      for different applications. +
                                                                      + Boolean +
                                                                      state.sessionState.accessTokenThe accessToken used to login a user. The access token may also be used as a bearer token if the adapter makes an authenticated Web API to the music provider. + + String +
                                                                      state.sessionState.tokenRefreshIntervalThe validity period of the token in milliseconds. + + TimeInMilliseconds +
                                                                      state.sessionState.playerCookieA player may declare arbitrary information for itself. + + String +
                                                                      state.sessionState.spiVersionThe only spiVersion that currently exists is "1.0" + + String +
                                                                      state.playbackStateVariable to hold the playback state. + + Object +
                                                                      state.playbackState.stateThe state of the default player - IDLE/STOPPED/PLAYING... + + String +
                                                                      state.playbackState.supportedOperationsThe set of states the default player can move into from its current state. + + List +
                                                                      state.playbackState.trackOffsetThe offset of the track in milliseconds. + + Integer +
                                                                      state.playbackState.shuffleEnabledBool to identify if shuffling is enabled or not. + + Boolean +
                                                                      state.playbackState.repeatEnabledBool to identify if looping of songs is enabled or not. + + Boolean +
                                                                      state.playbackState.favoritesThe favorite status {"FAVORITED"/"UNFAVORITED"/"NOT_RATED"}. +
                                                                      Accepted Values:
                                                                      + FAVORITED : song is favorited
                                                                      + UNFAVORITED : song is unfavorited
                                                                      + NOT_RATED : song is not rated
                                                                      + +
                                                                      + String +
                                                                      state.playbackState.typeThe type of the media item. For now hard-coded to ExternalMediaAdapterMusicItem. + + String +
                                                                      state.playbackState.playbackSourceThe display name for current playback context, e.g. playlist name. + + String +
                                                                      state.playbackState.playbackSourceIdAn arbitrary identifier for current playback context as per the music provider, e.g. a URI that can be saved as +
                                                                      a preset or queried to Music Service Provider services for additional info. +
                                                                      + String +
                                                                      state.playbackState.trackNameThe display name for the currently playing trackname of the track. + + String +
                                                                      state.playbackState.trackIdThe arbitrary identifier for currently playing trackid of the track as per the music provider. + + String +
                                                                      state.playbackState.trackNumberThe display value for the number or abstract position of the currently playing track in the album or context +
                                                                      trackNumber of the track. +
                                                                      + String +
                                                                      state.playbackState.artistNameThe display name for the currently playing artist. + + String +
                                                                      state.playbackState.artistIdAn arbitrary identifier for currently playing artist as per the music provider, e.g. a URI that can be queried +
                                                                      to MSP services for additional info. +
                                                                      + String +
                                                                      state.playbackState.albumNameThe display name of the currently playing album. + + String +
                                                                      state.playbackState.albumIdArbitrary identifier for currently playing album specific to the music provider, e.g. a URI that can be queried +
                                                                      to MSP services for additional info. +
                                                                      + String +
                                                                      state.playbackState.tinyURLThe URL for tiny cover art image resource} . + + String +
                                                                      state.playbackState.smallURLThe URL for small cover art image resource} . + + String +
                                                                      state.playbackState.mediumURLThe URL for medium cover art image resource} . + + String +
                                                                      state.playbackState.largeURLThe URL for large cover art image resource} . + + String +
                                                                      state.playbackState.coverIdThe Arbitrary identifier for cover art image resource specific to the music provider, for retrieval from an MSP +
                                                                      API +
                                                                      + String +
                                                                      state.playbackState.mediaProviderMusic Service Provider name for the currently playing media item; distinct from the application identity +
                                                                      although the two may be the same. +
                                                                      + String +
                                                                      state.playbackState.mediaTypeThe Media type enum value from {TRACK, PODCAST, STATION, AD, SAMPLE, OTHER} type of the media. +
                                                                      Accepted Values:
                                                                      + TRACK : A single song source
                                                                      + PODCAST : A podcast source
                                                                      + STATION : A station source
                                                                      + AD : An advertisement source
                                                                      + SAMPLE : A sample source
                                                                      + OTHER : A miscellaneous source
                                                                      + +
                                                                      + String +
                                                                      state.playbackState.durationMedia item duration in milliseconds. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "GetState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText",
                                                                      +    "state" : {
                                                                      +      "sessionState" : {
                                                                      +        "endpointId" : "endpointId-SampleText",
                                                                      +        "loggedIn" : true,
                                                                      +        "userName" : "userName-SampleText",
                                                                      +        "isGuest" : true,
                                                                      +        "launched" : true,
                                                                      +        "active" : true,
                                                                      +        "accessToken" : "accessToken-SampleText",
                                                                      +        "tokenRefreshInterval" : 1000,
                                                                      +        "playerCookie" : "playerCookie-SampleText",
                                                                      +        "spiVersion" : "spiVersion-SampleText"
                                                                      +      },
                                                                      +      "playbackState" : {
                                                                      +        "state" : "state-SampleText",
                                                                      +        "supportedOperations" : ,
                                                                      +        "trackOffset" : 7,
                                                                      +        "shuffleEnabled" : true,
                                                                      +        "repeatEnabled" : true,
                                                                      +        "favorites" : "FAVORITED",
                                                                      +        "type" : "type-SampleText",
                                                                      +        "playbackSource" : "playbackSource-SampleText",
                                                                      +        "playbackSourceId" : "playbackSourceId-SampleText",
                                                                      +        "trackName" : "trackName-SampleText",
                                                                      +        "trackId" : "trackId-SampleText",
                                                                      +        "trackNumber" : "trackNumber-SampleText",
                                                                      +        "artistName" : "artistName-SampleText",
                                                                      +        "artistId" : "artistId-SampleText",
                                                                      +        "albumName" : "albumName-SampleText",
                                                                      +        "albumId" : "albumId-SampleText",
                                                                      +        "tinyURL" : "tinyURL-SampleText",
                                                                      +        "smallURL" : "smallURL-SampleText",
                                                                      +        "mediumURL" : "mediumURL-SampleText",
                                                                      +        "largeURL" : "largeURL-SampleText",
                                                                      +        "coverId" : "coverId-SampleText",
                                                                      +        "mediaProvider" : "mediaProvider-SampleText",
                                                                      +        "mediaType" : "TRACK",
                                                                      +        "duration" : 7
                                                                      +      }
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/LoginCompleteMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/LoginCompleteMessage.html new file mode 100644 index 000000000..c1a714e35 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/LoginCompleteMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LoginComplete

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on a local external media player login. This will set authorization of the app with AVS. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "LoginComplete"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"LoginComplete"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdShould be called on a local external media player login. This will set authorization of the app with AVS. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "LoginComplete"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/LoginMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/LoginMessage.html new file mode 100644 index 000000000..5a1d302fe --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/LoginMessage.html @@ -0,0 +1,1181 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Login

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Directive called after a discovered player initiates the loginComplete event. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Login"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}},
                                                                      +    "accessToken" : {{String}},
                                                                      +    "userName" : {{String}},
                                                                      +    "forceLogin" : {{Boolean}},
                                                                      +    "tokenRefreshInterval" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"Login"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      accessTokenThe handshake token between AVS, and the external media player app session + + String +
                                                                      userNameThe username provided by the external media player app, if available + + String +
                                                                      forceLoginTrue if no handshake is needed, and login is simply assumed + + Boolean +
                                                                      tokenRefreshIntervalrefresh interval of the accessToken, if available + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Login"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText",
                                                                      +    "accessToken" : "accessToken-SampleText",
                                                                      +    "userName" : "userName-SampleText",
                                                                      +    "forceLogin" : true,
                                                                      +    "tokenRefreshInterval" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/LogoutCompleteMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/LogoutCompleteMessage.html new file mode 100644 index 000000000..7f9f29ac4 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/LogoutCompleteMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      LogoutComplete

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on a local external media player logout. This will unset authorization of the app with AVS. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "LogoutComplete"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"LogoutComplete"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "LogoutComplete"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/LogoutMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/LogoutMessage.html new file mode 100644 index 000000000..ceb39c442 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/LogoutMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Logout

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Directive called after a discovered player initiates the logoutComplete event. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Logout"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"Logout"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Logout"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/MutedStateChangedMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/MutedStateChangedMessage.html new file mode 100644 index 000000000..0be63d42a --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/MutedStateChangedMessage.html @@ -0,0 +1,1143 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      MutedStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to apply a mute state change to +the output channel +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "MutedStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"MutedStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      stateThe muted state to apply to the output channel. MutedState::MUTED when +
                                                                      the output channel be muted, MutedState::UNMUTED when unmuted +
                                                                      Accepted Values:
                                                                      + MUTED : The audio channel state id muted.
                                                                      + UNMUTED : The audio channel state id unmuted.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "MutedStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "MUTED"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/PlayControlMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/PlayControlMessage.html new file mode 100644 index 000000000..71b6b14ae --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/PlayControlMessage.html @@ -0,0 +1,1165 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PlayControl

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Occurs during playback control via voice interaction or PlaybackController interface +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "PlayControl"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}},
                                                                      +    "controlType" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"PlayControl"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      controlTypePlayback control type being invoked +
                                                                      Accepted Values:
                                                                      + PAUSE : pause playback
                                                                      + RESUME : resume playback
                                                                      + STOP : stop playback
                                                                      + NEXT : next song
                                                                      + PREVIOUS : previous playback
                                                                      + START_OVER : start playback over
                                                                      + FAST_FORWARD : fast forward external media described time
                                                                      + REWIND : rewind external media described time
                                                                      + ENABLE_REPEAT_ONE : enable repeat current song
                                                                      + ENABLE_REPEAT : enable playlist looping
                                                                      + DISABLE_REPEAT : disable playlist looping
                                                                      + ENABLE_SHUFFLE : enable playlist shuffling
                                                                      + DISABLE_SHUFFLE : disable playlist shuffling
                                                                      + FAVORITE : favorite song
                                                                      + UNFAVORITE : unfavorite song
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "PlayControl"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText",
                                                                      +    "controlType" : "PAUSE"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/PlayMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/PlayMessage.html new file mode 100644 index 000000000..5d93b81b4 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/PlayMessage.html @@ -0,0 +1,1197 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Play

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Called when the user first calls play for the external media via voice control. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Play"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}},
                                                                      +    "playContextToken" : {{String}},
                                                                      +    "index" : {{Integer}},
                                                                      +    "offset" : {{Integer}},
                                                                      +    "preload" : {{Boolean}},
                                                                      +    "navigation" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"Play"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      playContextTokenTrack/playlist/album/artist/station/podcast context identifier + + String +
                                                                      indexIf the playback context is an indexable container like a playlist, the index of the media item in the container + + Integer +
                                                                      offsetOffset position within media item, in milliseconds + + Integer +
                                                                      preloadWhether the media item should preload or not + + Boolean +
                                                                      navigationThe app transition behavior +
                                                                      Accepted Values:
                                                                      + DEFAULT : Source dependant behavior
                                                                      + NONE : No navigation should occur
                                                                      + FOREGROUND : External app should take foreground
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Play"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText",
                                                                      +    "playContextToken" : "playContextToken-SampleText",
                                                                      +    "index" : 7,
                                                                      +    "offset" : 7,
                                                                      +    "preload" : true,
                                                                      +    "navigation" : "DEFAULT"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/PlayerErrorMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/PlayerErrorMessage.html new file mode 100644 index 000000000..cb27a72b2 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/PlayerErrorMessage.html @@ -0,0 +1,1181 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PlayerError

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on a player error. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "PlayerError"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}},
                                                                      +    "errorName" : {{String}},
                                                                      +    "code" : {{Integer}},
                                                                      +    "description" : {{String}},
                                                                      +    "fatal" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"PlayerError"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      errorNameThe name of the error + + String +
                                                                      codeThe error code + + Integer +
                                                                      descriptionThe detailed error description + + String +
                                                                      fataltrue if the error is fatal + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "PlayerError"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText",
                                                                      +    "errorName" : "errorName-SampleText",
                                                                      +    "code" : 7,
                                                                      +    "description" : "description-SampleText",
                                                                      +    "fatal" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/PlayerEventMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/PlayerEventMessage.html new file mode 100644 index 000000000..1109b8528 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/PlayerEventMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PlayerEvent

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on a local external media player event. This will sync the context with AVS. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "PlayerEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}},
                                                                      +    "eventName" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"PlayerEvent"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      eventNameCanonical event name + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "PlayerEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText",
                                                                      +    "eventName" : "eventName-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.html new file mode 100644 index 000000000..d2720a21e --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RemoveDiscoveredPlayer

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "RemoveDiscoveredPlayer"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"RemoveDiscoveredPlayer"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerId + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "RemoveDiscoveredPlayer"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.html new file mode 100644 index 000000000..6802400f5 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.html @@ -0,0 +1,1216 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ReportDiscoveredPlayers

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on startup in order to notify AVS of the local external media players +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "ReportDiscoveredPlayers"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "discoveredPlayers" : [
                                                                      +      {
                                                                      +        "localPlayerId" : {{String}},
                                                                      +        "spiVersion" : {{String}},
                                                                      +        "validationMethod" : {{String}},
                                                                      +        "validationData" : [
                                                                      +          {
                                                                      +            "certificate" : {{String}}
                                                                      +          },
                                                                      +          ...
                                                                      +        ]
                                                                      +      },
                                                                      +      ...
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"ReportDiscoveredPlayers"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      discoveredPlayersThe List of discovered players + + List +
                                                                      discoveredPlayers.localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      discoveredPlayers.spiVersionThe only spiVersion that currently exists is '1.0' + + String +
                                                                      discoveredPlayers.validationMethodValidation methods +
                                                                      Accepted Values:
                                                                      + SIGNING_CERTIFICATE : description for SIGNING_CERTIFICATE
                                                                      + GENERATED_CERTIFICATE : description for GENERATED_CERTIFICATE
                                                                      + NONE : description for NONE
                                                                      + +
                                                                      + String +
                                                                      discoveredPlayers.validationDataValidation data:, +
                                                                      1. Device platform issued app signing certificate. A List of certificates may be attached. +
                                                                      2. In some cases validation is performed locally. The certificate is trasmitted as validationData during discovery to announce the activated app's identity in order to allow app activation to be revoked. +
                                                                      3. empty +
                                                                      + List +
                                                                      discoveredPlayers.validationData.certificateValidation data + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "ReportDiscoveredPlayers"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "discoveredPlayers" : [
                                                                      +      {
                                                                      +        "localPlayerId" : "localPlayerId-SampleText",
                                                                      +        "spiVersion" : "spiVersion-SampleText",
                                                                      +        "validationMethod" : "SIGNING_CERTIFICATE",
                                                                      +        "validationData" : [
                                                                      +          {
                                                                      +            "certificate" : "certificate-SampleText"
                                                                      +          }
                                                                      +        ]
                                                                      +      }
                                                                      +    ]
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/RequestTokenMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/RequestTokenMessage.html new file mode 100644 index 000000000..bcce84633 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/RequestTokenMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RequestToken

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +The device is responsible for requesting an access token when needed. This is typically done immediately upon connection to AVS. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "RequestToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"RequestToken"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "RequestToken"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/SeekMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/SeekMessage.html new file mode 100644 index 000000000..37ec36288 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/SeekMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Seek

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Called when the user invokes media seek via speech. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Seek"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}},
                                                                      +    "offset" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"Seek"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      offsetOffset position within media item, in milliseconds + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "Seek"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText",
                                                                      +    "offset" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/SetFocusMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/SetFocusMessage.html new file mode 100644 index 000000000..e8550881d --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/SetFocusMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetFocus

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on local external media player events. This will switch the media focus to that context. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "SetFocus"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"SetFocus"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      localPlayerIdThe opaque token that uniquely identifies the local external player app + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "SetFocus"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "localPlayerId" : "localPlayerId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/ExternalMediaAdapter/VolumeChangedMessage.html b/extensions/aasb/docs/ExternalMediaAdapter/VolumeChangedMessage.html new file mode 100644 index 000000000..dc3bb4e60 --- /dev/null +++ b/extensions/aasb/docs/ExternalMediaAdapter/VolumeChangedMessage.html @@ -0,0 +1,1138 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      VolumeChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to set the volume of the output channel. The + volume value should be scaled to fit the needs of the platform. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "VolumeChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "volume" : {{Float}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"ExternalMediaAdapter"String
                                                                      messageDescription.action"VolumeChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      volumeThe volume to set on the output channel. volume is in the range [0,1]. + + Float +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "ExternalMediaAdapter",
                                                                      +      "action" : "VolumeChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "volume" : 1.0
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/GlobalPreset/SetGlobalPresetMessage.html b/extensions/aasb/docs/GlobalPreset/SetGlobalPresetMessage.html new file mode 100644 index 000000000..ff19fdba0 --- /dev/null +++ b/extensions/aasb/docs/GlobalPreset/SetGlobalPresetMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetGlobalPreset

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Called after receiving a global preset play directive +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "GlobalPreset",
                                                                      +      "action" : "SetGlobalPreset"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "preset" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"GlobalPreset"String
                                                                      messageDescription.action"SetGlobalPreset"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      presetThe preset integer from the playbackContextToken + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "GlobalPreset",
                                                                      +      "action" : "SetGlobalPreset"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "preset" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Introduction.html b/extensions/aasb/docs/Introduction.html new file mode 100644 index 000000000..9ba1fd6e7 --- /dev/null +++ b/extensions/aasb/docs/Introduction.html @@ -0,0 +1,1008 @@ + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +

                                                                      Alexa Auto Services Bridge (AASB)

                                                                      +

                                                                      The Auto SDK AASB is a module that implements a message broker to transmit asynchronous +JSON messages between the OEM applications and Auto SDK. +It exposes a platform interface to publish and subscribe to messages

                                                                      +

                                                                      AASB exposes a remote procedure call (RPC) interface, which is designed to allow out-of-process applications like Navigation, Dialer, HVAC, Music Player, FM Radio etc to interact with the service using fully asynchronous JSON based messages.

                                                                      +

                                                                      Disclaimer

                                                                      +
                                                                    • This is a preview of the AASB messaging protocol. It has not yet gone through internal review and is subject to change.
                                                                    • +
                                                                    • We have not yet defined how or if we will implement backwards compatibility
                                                                    • +
                                                                      + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/AdjustSeekMessage.html b/extensions/aasb/docs/LocalMediaSource/AdjustSeekMessage.html new file mode 100644 index 000000000..4f688aee3 --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/AdjustSeekMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AdjustSeek

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Called when the user invokes media seek adjustment via speech. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "AdjustSeek"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "deltaOffset" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"AdjustSeek"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      deltaOffsetChange in offset position within media item, in milliseconds + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "AdjustSeek"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH",
                                                                      +    "deltaOffset" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/GetSourceMessage.html b/extensions/aasb/docs/LocalMediaSource/GetSourceMessage.html new file mode 100644 index 000000000..feea00b0c --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/GetSourceMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetSource

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Return the source type the interface registered with +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "GetSource"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"GetSource"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "GetSource"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/GetStateMessage.html b/extensions/aasb/docs/LocalMediaSource/GetStateMessage.html new file mode 100644 index 000000000..c67215d82 --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/GetStateMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetState

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Must provide the local media source @PlaybackStateLocal, and @SessionStateLocal information to maintain cloud sync +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "GetState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"GetState"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "GetState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/GetStateMessageReply.html b/extensions/aasb/docs/LocalMediaSource/GetStateMessageReply.html new file mode 100644 index 000000000..b3e026a77 --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/GetStateMessageReply.html @@ -0,0 +1,1574 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetState Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetState

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "GetState",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {
                                                                      +      "sessionState" : {
                                                                      +        "endpointId" : {{String}},
                                                                      +        "loggedIn" : {{Boolean}},
                                                                      +        "userName" : {{String}},
                                                                      +        "isGuest" : {{Boolean}},
                                                                      +        "launched" : {{Boolean}},
                                                                      +        "active" : {{Boolean}},
                                                                      +        "accessToken" : {{String}},
                                                                      +        "tokenRefreshInterval" : {{Integer}},
                                                                      +        "supportedContentSelectors" : {{List}},
                                                                      +        "spiVersion" : {{String}}
                                                                      +      },
                                                                      +      "playbackState" : {
                                                                      +        "state" : {{String}},
                                                                      +        "supportedOperations" : {{List}},
                                                                      +        "trackOffset" : {{Integer}},
                                                                      +        "shuffleEnabled" : {{Boolean}},
                                                                      +        "repeatEnabled" : {{Boolean}},
                                                                      +        "favorites" : {{String}},
                                                                      +        "type" : {{String}},
                                                                      +        "playbackSource" : {{String}},
                                                                      +        "playbackSourceId" : {{String}},
                                                                      +        "trackName" : {{String}},
                                                                      +        "trackId" : {{String}},
                                                                      +        "trackNumber" : {{String}},
                                                                      +        "artistName" : {{String}},
                                                                      +        "artistId" : {{String}},
                                                                      +        "albumName" : {{String}},
                                                                      +        "albumId" : {{String}},
                                                                      +        "tinyURL" : {{String}},
                                                                      +        "smallURL" : {{String}},
                                                                      +        "mediumURL" : {{String}},
                                                                      +        "largeURL" : {{String}},
                                                                      +        "coverId" : {{String}},
                                                                      +        "mediaProvider" : {{String}},
                                                                      +        "mediaType" : {{String}},
                                                                      +        "duration" : {{Integer}}
                                                                      +      }
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"GetState"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      state + + Object +
                                                                      state.sessionStateVariable to hold the session state. + + Object +
                                                                      state.sessionState.endpointIdThe unique device endpoint. + + String +
                                                                      state.sessionState.loggedInFlag that identifies if a user is currently logged in or not. + + Boolean +
                                                                      state.sessionState.userNameThe userName of the user currently logged in via a Login directive from the AVS. + + String +
                                                                      state.sessionState.isGuestFlag that identifies if the user currently logged in is a guest or not. + + Boolean +
                                                                      state.sessionState.launchedFlag that identifies if an application has been launched or not. + + Boolean +
                                                                      state.sessionState.activeFlag that identifies if the application is currently active or not. This could mean different things +
                                                                      for different applications. +
                                                                      + Boolean +
                                                                      state.sessionState.accessTokenThe accessToken used to login a user. The access token may also be used as a bearer token if the adapter makes an authenticated Web API to the music provider. + + String +
                                                                      state.sessionState.tokenRefreshIntervalThe validity period of the token in milliseconds. + + TimeInMilliseconds +
                                                                      state.sessionState.supportedContentSelectorsArray of content selector types supported by the player + + List +
                                                                      state.sessionState.spiVersionThe only spiVersion that currently exists is "1.0" + + String +
                                                                      state.playbackStateVariable to hold the playback state. + + Object +
                                                                      state.playbackState.stateThe state of the default player - IDLE/STOPPED/PAUSED/PLAYING/FINISHED/FAST_FORWARDING/REWINDING/BUFFER_UNDERRUN + + String +
                                                                      state.playbackState.supportedOperationsThe set of states the default player can move into from its current state. + + List +
                                                                      state.playbackState.trackOffsetThe offset of the track in milliseconds. + + Integer +
                                                                      state.playbackState.shuffleEnabledBool to identify if shuffling is enabled. + + Boolean +
                                                                      state.playbackState.repeatEnabledBool to identify if looping of songs is enabled. + + Boolean +
                                                                      state.playbackState.favoritesThe favorite status {"FAVORITED"/"UNFAVORITED"/"NOT_RATED"}. +
                                                                      Accepted Values:
                                                                      + FAVORITED : song is favorited
                                                                      + UNFAVORITED : song is unfavorited
                                                                      + NOT_RATED : song is not rated
                                                                      + +
                                                                      + String +
                                                                      state.playbackState.typeThe type of the media item. For now hard-coded to ExternalMediaAdapterMusicItem. + + String +
                                                                      state.playbackState.playbackSourceThe display name for current playback context, e.g. playlist name. + + String +
                                                                      state.playbackState.playbackSourceIdAn arbitrary identifier for current playback context as per the music provider, e.g. a URI that can be saved as +
                                                                      a preset or queried to Music Service Provider services for additional info. +
                                                                      + String +
                                                                      state.playbackState.trackNameThe display name for the currently playing trackname of the track. + + String +
                                                                      state.playbackState.trackIdThe arbitrary identifier for currently playing trackid of the track as per the music provider. + + String +
                                                                      state.playbackState.trackNumberThe display value for the number or abstract position of the currently playing track in the album or context +
                                                                      trackNumber of the track. +
                                                                      + String +
                                                                      state.playbackState.artistNameThe display name for the currently playing artist. + + String +
                                                                      state.playbackState.artistIdAn arbitrary identifier for currently playing artist as per the music provider, e.g. a URI that can be queried +
                                                                      to MSP services for additional info. +
                                                                      + String +
                                                                      state.playbackState.albumNameThe display name of the currently playing album. + + String +
                                                                      state.playbackState.albumIdArbitrary identifier for currently playing album specific to the music provider, e.g. a URI that can be queried +
                                                                      to MSP services for additional info. +
                                                                      + String +
                                                                      state.playbackState.tinyURLThe URL for tiny cover art image resource} . + + String +
                                                                      state.playbackState.smallURLThe URL for small cover art image resource} . + + String +
                                                                      state.playbackState.mediumURLThe URL for medium cover art image resource} . + + String +
                                                                      state.playbackState.largeURLThe URL for large cover art image resource} . + + String +
                                                                      state.playbackState.coverIdThe Arbitrary identifier for cover art image resource specific to the music provider, for retrieval from an MSP +
                                                                      API +
                                                                      + String +
                                                                      state.playbackState.mediaProviderMusic Service Provider name for the currently playing media item; distinct from the application identity +
                                                                      although the two may be the same. +
                                                                      + String +
                                                                      state.playbackState.mediaTypeThe Media type enum value from {TRACK, PODCAST, STATION, AD, SAMPLE, OTHER} type of the media. +
                                                                      Accepted Values:
                                                                      + TRACK : A single song source
                                                                      + PODCAST : A podcast source
                                                                      + STATION : A station source
                                                                      + AD : An advertisement source
                                                                      + SAMPLE : A sample source
                                                                      + OTHER : A miscellaneous source
                                                                      + +
                                                                      + String +
                                                                      state.playbackState.durationMedia item duration in milliseconds. + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "GetState",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {
                                                                      +      "sessionState" : {
                                                                      +        "endpointId" : "endpointId-SampleText",
                                                                      +        "loggedIn" : true,
                                                                      +        "userName" : "userName-SampleText",
                                                                      +        "isGuest" : true,
                                                                      +        "launched" : true,
                                                                      +        "active" : true,
                                                                      +        "accessToken" : "accessToken-SampleText",
                                                                      +        "tokenRefreshInterval" : 1000,
                                                                      +        "supportedContentSelectors" : ,
                                                                      +        "spiVersion" : "spiVersion-SampleText"
                                                                      +      },
                                                                      +      "playbackState" : {
                                                                      +        "state" : "state-SampleText",
                                                                      +        "supportedOperations" : ,
                                                                      +        "trackOffset" : 7,
                                                                      +        "shuffleEnabled" : true,
                                                                      +        "repeatEnabled" : true,
                                                                      +        "favorites" : "FAVORITED",
                                                                      +        "type" : "type-SampleText",
                                                                      +        "playbackSource" : "playbackSource-SampleText",
                                                                      +        "playbackSourceId" : "playbackSourceId-SampleText",
                                                                      +        "trackName" : "trackName-SampleText",
                                                                      +        "trackId" : "trackId-SampleText",
                                                                      +        "trackNumber" : "trackNumber-SampleText",
                                                                      +        "artistName" : "artistName-SampleText",
                                                                      +        "artistId" : "artistId-SampleText",
                                                                      +        "albumName" : "albumName-SampleText",
                                                                      +        "albumId" : "albumId-SampleText",
                                                                      +        "tinyURL" : "tinyURL-SampleText",
                                                                      +        "smallURL" : "smallURL-SampleText",
                                                                      +        "mediumURL" : "mediumURL-SampleText",
                                                                      +        "largeURL" : "largeURL-SampleText",
                                                                      +        "coverId" : "coverId-SampleText",
                                                                      +        "mediaProvider" : "mediaProvider-SampleText",
                                                                      +        "mediaType" : "TRACK",
                                                                      +        "duration" : 7
                                                                      +      }
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/MutedStateChangedMessage.html b/extensions/aasb/docs/LocalMediaSource/MutedStateChangedMessage.html new file mode 100644 index 000000000..52120a3a0 --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/MutedStateChangedMessage.html @@ -0,0 +1,1160 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      MutedStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to apply a muted state has changed for +the output channel +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "MutedStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "state" : {{Object}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"MutedStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      stateThe muted state to apply to the output channel + + Object +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "MutedStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH",
                                                                      +    "state" : 
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/PlayControlMessage.html b/extensions/aasb/docs/LocalMediaSource/PlayControlMessage.html new file mode 100644 index 000000000..9e312b2fd --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/PlayControlMessage.html @@ -0,0 +1,1176 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PlayControl

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Occurs during playback control via voice interaction or PlaybackController interface +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "PlayControl"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "controlType" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"PlayControl"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      controlTypePlayback control type being invoked +
                                                                      Accepted Values:
                                                                      + PAUSE : pause playback
                                                                      + RESUME : resume playback
                                                                      + STOP : stop playback
                                                                      + NEXT : next song
                                                                      + PREVIOUS : previous playback
                                                                      + START_OVER : start playback over
                                                                      + FAST_FORWARD : fast forward external media described time
                                                                      + REWIND : rewind external media described time
                                                                      + ENABLE_REPEAT_ONE : enable repeat current song
                                                                      + ENABLE_REPEAT : enable playlist looping
                                                                      + DISABLE_REPEAT : disable playlist looping
                                                                      + ENABLE_SHUFFLE : enable playlist shuffling
                                                                      + DISABLE_SHUFFLE : disable playlist shuffling
                                                                      + FAVORITE : favorite song
                                                                      + UNFAVORITE : unfavorite song
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "PlayControl"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH",
                                                                      +    "controlType" : "PAUSE"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/PlayMessage.html b/extensions/aasb/docs/LocalMediaSource/PlayMessage.html new file mode 100644 index 000000000..4143a7fe2 --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/PlayMessage.html @@ -0,0 +1,1175 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Play

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Called when the user calls play with a content selection type +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "Play"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "contentSelectorType" : {{String}},
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"Play"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      contentSelectorTypeContent selection type +
                                                                      Accepted Values:
                                                                      + FREQUENCY : radio station selection
                                                                      + CHANNEL : radio channel selection
                                                                      + PRESET : preset selection
                                                                      + +
                                                                      + String +
                                                                      payloadContent selector payload + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "Play"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH",
                                                                      +    "contentSelectorType" : "FREQUENCY",
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/PlayerErrorMessage.html b/extensions/aasb/docs/LocalMediaSource/PlayerErrorMessage.html new file mode 100644 index 000000000..0d7f53e1c --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/PlayerErrorMessage.html @@ -0,0 +1,1192 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PlayerError

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on a local media source player error. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "PlayerError"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "errorName" : {{String}},
                                                                      +    "code" : {{Integer}},
                                                                      +    "description" : {{String}},
                                                                      +    "fatal" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"PlayerError"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      errorNameThe name of the error + + String +
                                                                      codeThe error code + + Integer +
                                                                      descriptionThe detailed error description + + String +
                                                                      fataltrue if the error is fatal + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "PlayerError"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH",
                                                                      +    "errorName" : "errorName-SampleText",
                                                                      +    "code" : 7,
                                                                      +    "description" : "description-SampleText",
                                                                      +    "fatal" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/PlayerEventMessage.html b/extensions/aasb/docs/LocalMediaSource/PlayerEventMessage.html new file mode 100644 index 000000000..dfc614e4c --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/PlayerEventMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PlayerEvent

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on a local media source player event. This will sync the context with AVS. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "PlayerEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "eventName" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"PlayerEvent"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      eventNameCanonical event name + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "PlayerEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH",
                                                                      +    "eventName" : "eventName-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/SeekMessage.html b/extensions/aasb/docs/LocalMediaSource/SeekMessage.html new file mode 100644 index 000000000..3f7eeb09d --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/SeekMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Seek

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Called when the user invokes media seek via speech. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "Seek"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "offset" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"Seek"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      offsetOffset position within media item, in milliseconds + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "Seek"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH",
                                                                      +    "offset" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/SetFocusMessage.html b/extensions/aasb/docs/LocalMediaSource/SetFocusMessage.html new file mode 100644 index 000000000..be62d1746 --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/SetFocusMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetFocus

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Should be called on local media source player events. This will switch the media focus to that context. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "SetFocus"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"SetFocus"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "SetFocus"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocalMediaSource/VolumeChangedMessage.html b/extensions/aasb/docs/LocalMediaSource/VolumeChangedMessage.html new file mode 100644 index 000000000..743b37637 --- /dev/null +++ b/extensions/aasb/docs/LocalMediaSource/VolumeChangedMessage.html @@ -0,0 +1,1160 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      VolumeChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to set the volume of the output channel. The + volume value should be scaled to fit the needs of the platform. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "VolumeChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : {{String}},
                                                                      +    "volume" : {{Float}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocalMediaSource"String
                                                                      messageDescription.action"VolumeChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      sourceLocalMediaSource source type +
                                                                      Accepted Values:
                                                                      + BLUETOOTH : bluetooth source
                                                                      + USB : USB source
                                                                      + FM_RADIO : FM radio source
                                                                      + AM_RADIO : AM radio source
                                                                      + SATELLITE_RADIO : satellite radio source
                                                                      + LINE_IN : audio line source
                                                                      + COMPACT_DISC : CD player source
                                                                      + SIRIUS_XM : SIRIUS XM source
                                                                      + DAB : DAB source
                                                                      + +
                                                                      + String +
                                                                      volumeThe volume to set on the output channel + + Float +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocalMediaSource",
                                                                      +      "action" : "VolumeChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "source" : "BLUETOOTH",
                                                                      +    "volume" : 1.0
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocationProvider/GetCountryMessage.html b/extensions/aasb/docs/LocationProvider/GetCountryMessage.html new file mode 100644 index 000000000..5670302bc --- /dev/null +++ b/extensions/aasb/docs/LocationProvider/GetCountryMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetCountry

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the ISO country code for the current geolocation of the device +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocationProvider",
                                                                      +      "action" : "GetCountry"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocationProvider"String
                                                                      messageDescription.action"GetCountry"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocationProvider",
                                                                      +      "action" : "GetCountry"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocationProvider/GetCountryMessageReply.html b/extensions/aasb/docs/LocationProvider/GetCountryMessageReply.html new file mode 100644 index 000000000..bb026551a --- /dev/null +++ b/extensions/aasb/docs/LocationProvider/GetCountryMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetCountry Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetCountry

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocationProvider",
                                                                      +      "action" : "GetCountry",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "country" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocationProvider"String
                                                                      messageDescription.action"GetCountry"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      countryThe current country + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocationProvider",
                                                                      +      "action" : "GetCountry",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "country" : "country-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocationProvider/GetLocationMessage.html b/extensions/aasb/docs/LocationProvider/GetLocationMessage.html new file mode 100644 index 000000000..5171393a2 --- /dev/null +++ b/extensions/aasb/docs/LocationProvider/GetLocationMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetLocation

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the current geolocation of the device +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocationProvider",
                                                                      +      "action" : "GetLocation"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocationProvider"String
                                                                      messageDescription.action"GetLocation"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocationProvider",
                                                                      +      "action" : "GetLocation"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/LocationProvider/GetLocationMessageReply.html b/extensions/aasb/docs/LocationProvider/GetLocationMessageReply.html new file mode 100644 index 000000000..0f50f818f --- /dev/null +++ b/extensions/aasb/docs/LocationProvider/GetLocationMessageReply.html @@ -0,0 +1,1174 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetLocation Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetLocation

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocationProvider",
                                                                      +      "action" : "GetLocation",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "location" : {
                                                                      +      "latitude" : {{Float}},
                                                                      +      "longitude" : {{Float}}
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"LocationProvider"String
                                                                      messageDescription.action"GetLocation"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      locationThe current location + + Object +
                                                                      location.latitudeLocation latitude + + Float +
                                                                      location.longitudeLocation longitude + + Float +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "LocationProvider",
                                                                      +      "action" : "GetLocation",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "location" : {
                                                                      +      "latitude" : 1.0,
                                                                      +      "longitude" : 1.0
                                                                      +    }
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/ConversationsReportMessage.html b/extensions/aasb/docs/Messaging/ConversationsReportMessage.html new file mode 100644 index 000000000..d7cb4e8d4 --- /dev/null +++ b/extensions/aasb/docs/Messaging/ConversationsReportMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ConversationsReport

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine to upload conversations report to the cloud +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "ConversationsReport"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}},
                                                                      +    "conversations" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"ConversationsReport"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenToken id for send message request + + String +
                                                                      conversationsString in JSON format representing all conversations with unread SMS messages + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "ConversationsReport"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText",
                                                                      +    "conversations" : "conversations-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/SendMessageFailedMessage.html b/extensions/aasb/docs/Messaging/SendMessageFailedMessage.html new file mode 100644 index 000000000..5b0b5369f --- /dev/null +++ b/extensions/aasb/docs/Messaging/SendMessageFailedMessage.html @@ -0,0 +1,1164 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SendMessageFailed

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine the message send failed +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "SendMessageFailed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}},
                                                                      +    "code" : {{String}},
                                                                      +    "message" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"SendMessageFailed"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenToken id for send message request + + String +
                                                                      codeThe error code identifying the failure +
                                                                      Accepted Values:
                                                                      + GENERIC_FAILURE : Generic error handling SMS request
                                                                      + NO_CONNECTIVITY : Messaging device is not connected
                                                                      + NO_PERMISSION : Permission denied
                                                                      + +
                                                                      + String +
                                                                      messageThe message explaining the error + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "SendMessageFailed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText",
                                                                      +    "code" : "GENERIC_FAILURE",
                                                                      +    "message" : "message-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/SendMessageMessage.html b/extensions/aasb/docs/Messaging/SendMessageMessage.html new file mode 100644 index 000000000..12e077560 --- /dev/null +++ b/extensions/aasb/docs/Messaging/SendMessageMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SendMessage

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Send SMS message +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "SendMessage"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}},
                                                                      +    "message" : {{String}},
                                                                      +    "recipients" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"SendMessage"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenToken id for send message request + + String +
                                                                      messageBody of the SMS text message to be sent + + String +
                                                                      recipientsString in JSON format containing the recipient of the SMS message + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "SendMessage"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText",
                                                                      +    "message" : "message-SampleText",
                                                                      +    "recipients" : "recipients-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/SendMessageSucceededMessage.html b/extensions/aasb/docs/Messaging/SendMessageSucceededMessage.html new file mode 100644 index 000000000..38dcc8070 --- /dev/null +++ b/extensions/aasb/docs/Messaging/SendMessageSucceededMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SendMessageSucceeded

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that message send was successful +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "SendMessageSucceeded"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"SendMessageSucceeded"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenToken id for send message request + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "SendMessageSucceeded"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/UpdateMessagesStatusFailedMessage.html b/extensions/aasb/docs/Messaging/UpdateMessagesStatusFailedMessage.html new file mode 100644 index 000000000..12108c128 --- /dev/null +++ b/extensions/aasb/docs/Messaging/UpdateMessagesStatusFailedMessage.html @@ -0,0 +1,1164 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      UpdateMessagesStatusFailed

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine the message status update failed +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UpdateMessagesStatusFailed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}},
                                                                      +    "code" : {{String}},
                                                                      +    "message" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"UpdateMessagesStatusFailed"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenToken id for send message request + + String +
                                                                      codeThe error code identifying the failure +
                                                                      Accepted Values:
                                                                      + GENERIC_FAILURE : Generic error handling SMS request
                                                                      + NO_CONNECTIVITY : Messaging device is not connected
                                                                      + NO_PERMISSION : Permission denied
                                                                      + +
                                                                      + String +
                                                                      messageThe message explaining the error + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UpdateMessagesStatusFailed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText",
                                                                      +    "code" : "GENERIC_FAILURE",
                                                                      +    "message" : "message-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/UpdateMessagesStatusMessage.html b/extensions/aasb/docs/Messaging/UpdateMessagesStatusMessage.html new file mode 100644 index 000000000..5bca77ec7 --- /dev/null +++ b/extensions/aasb/docs/Messaging/UpdateMessagesStatusMessage.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      UpdateMessagesStatus

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Update status of SMS messages +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UpdateMessagesStatus"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}},
                                                                      +    "conversationId" : {{String}},
                                                                      +    "status" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"UpdateMessagesStatus"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenToken id for send message request + + String +
                                                                      conversationIdThe id of the conversation whose messages need to be updated + + String +
                                                                      statusString in JSON format representing the message ids and status to be updated + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UpdateMessagesStatus"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText",
                                                                      +    "conversationId" : "conversationId-SampleText",
                                                                      +    "status" : "status-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/UpdateMessagesStatusSucceededMessage.html b/extensions/aasb/docs/Messaging/UpdateMessagesStatusSucceededMessage.html new file mode 100644 index 000000000..82868a9b4 --- /dev/null +++ b/extensions/aasb/docs/Messaging/UpdateMessagesStatusSucceededMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      UpdateMessagesStatusSucceeded

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that message status was successful +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UpdateMessagesStatusSucceeded"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"UpdateMessagesStatusSucceeded"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenToken id for send message request + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UpdateMessagesStatusSucceeded"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/UpdateMessagingEndpointStateMessage.html b/extensions/aasb/docs/Messaging/UpdateMessagingEndpointStateMessage.html new file mode 100644 index 000000000..498e2fca5 --- /dev/null +++ b/extensions/aasb/docs/Messaging/UpdateMessagingEndpointStateMessage.html @@ -0,0 +1,1171 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      UpdateMessagingEndpointState

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of updates to the messaging endpoint state +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UpdateMessagingEndpointState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "connectionState" : {{String}},
                                                                      +    "sendPermission" : {{String}},
                                                                      +    "readPermission" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"UpdateMessagingEndpointState"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      connectionStateThe value for the connection state +
                                                                      Accepted Values:
                                                                      + DISCONNECTED : Messaging device is disconnected
                                                                      + ON : Messaging device is connected
                                                                      + +
                                                                      + String +
                                                                      sendPermissionThe value for the send permission +
                                                                      Accepted Values:
                                                                      + OFF : Permission is not granted
                                                                      + ON : Permission is granted
                                                                      + +
                                                                      + String +
                                                                      readPermissionThe value for the read permission +
                                                                      Accepted Values:
                                                                      + OFF : Permission is not granted
                                                                      + ON : Permission is granted
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UpdateMessagingEndpointState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "connectionState" : "DISCONNECTED",
                                                                      +    "sendPermission" : "OFF",
                                                                      +    "readPermission" : "OFF"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Messaging/UploadConversationsMessage.html b/extensions/aasb/docs/Messaging/UploadConversationsMessage.html new file mode 100644 index 000000000..1d89b95aa --- /dev/null +++ b/extensions/aasb/docs/Messaging/UploadConversationsMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      UploadConversations

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Upload SMS unread messages message +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UploadConversations"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Messaging"String
                                                                      messageDescription.action"UploadConversations"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      tokenToken id for send message request + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Messaging",
                                                                      +      "action" : "UploadConversations"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "token" : "token-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/AnnounceManeuverMessage.html b/extensions/aasb/docs/Navigation/AnnounceManeuverMessage.html new file mode 100644 index 000000000..c9534713e --- /dev/null +++ b/extensions/aasb/docs/Navigation/AnnounceManeuverMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AnnounceManeuver

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to give details about a maneuver to next waypoint on the route or a completely different waypoint off route. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "AnnounceManeuver"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"AnnounceManeuver"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadJSON data containing the manueuver information + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "AnnounceManeuver"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/AnnounceRoadRegulationMessage.html b/extensions/aasb/docs/Navigation/AnnounceRoadRegulationMessage.html new file mode 100644 index 000000000..0b2cd2e58 --- /dev/null +++ b/extensions/aasb/docs/Navigation/AnnounceRoadRegulationMessage.html @@ -0,0 +1,1141 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      AnnounceRoadRegulation

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to give details about road regulations about the road segments that the user is on +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "AnnounceRoadRegulation"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "roadRegulation" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"AnnounceRoadRegulation"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      roadRegulation Type of road regulation requested. +
                                                                      Accepted Values:
                                                                      + SPEED_LIMIT : description for SHOW_ROUTE_OVERVIEW
                                                                      + CARPOOL_RULES : description for SHOW_DIRECTIONS_LIST
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "AnnounceRoadRegulation"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "roadRegulation" : "SPEED_LIMIT"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/CancelNavigationMessage.html b/extensions/aasb/docs/Navigation/CancelNavigationMessage.html new file mode 100644 index 000000000..c4202ba5a --- /dev/null +++ b/extensions/aasb/docs/Navigation/CancelNavigationMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      CancelNavigation

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to cancel navigation +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "CancelNavigation"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"CancelNavigation"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "CancelNavigation"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/ControlDisplayMessage.html b/extensions/aasb/docs/Navigation/ControlDisplayMessage.html new file mode 100644 index 000000000..9757b3b98 --- /dev/null +++ b/extensions/aasb/docs/Navigation/ControlDisplayMessage.html @@ -0,0 +1,1155 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ControlDisplay

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to perform user interaction with the onscreen map application +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "ControlDisplay"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controlDisplay" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"ControlDisplay"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      controlDisplay the user requested map control +
                                                                      Accepted Values:
                                                                      + SHOW_ROUTE_OVERVIEW : description for SHOW_ROUTE_OVERVIEW
                                                                      + SHOW_DIRECTIONS_LIST : description for SHOW_DIRECTIONS_LIST
                                                                      + ZOOM_IN : description for ZOOM_IN
                                                                      + ZOOM_OUT : description for ZOOM_OUT
                                                                      + CENTER_MAP_ON_CURRENT_LOCATION : description for CENTER_MAP_ON_CURRENT_LOCATION
                                                                      + ORIENT_NORTH : description for ORIENT_NORTH
                                                                      + SCROLL_NORTH : description for SCROLL_NORTH
                                                                      + SCROLL_UP : description for SCROLL_UP
                                                                      + SCROLL_EAST : description for SCROLL_EAST
                                                                      + SCROLL_RIGHT : description for SCROLL_RIGHT
                                                                      + SCROLL_SOUTH : description for SCROLL_SOUTH
                                                                      + SCROLL_DOWN : description for SCROLL_DOWN
                                                                      + SCROLL_WEST : description for SCROLL_WEST
                                                                      + SCROLL_LEFT : description for SCROLL_LEFT
                                                                      + MUTE_ROUTE_GUIDANCE : navigation sounds off
                                                                      + UNMUTE_ROUTE_GUIDANCE : navigation sounds on
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "ControlDisplay"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "controlDisplay" : "SHOW_ROUTE_OVERVIEW"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/GetNavigationStateMessage.html b/extensions/aasb/docs/Navigation/GetNavigationStateMessage.html new file mode 100644 index 000000000..fa6f4ed4d --- /dev/null +++ b/extensions/aasb/docs/Navigation/GetNavigationStateMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetNavigationState

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Retrieve the navigation state from the platform. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "GetNavigationState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"GetNavigationState"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "GetNavigationState"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/GetNavigationStateMessageReply.html b/extensions/aasb/docs/Navigation/GetNavigationStateMessageReply.html new file mode 100644 index 000000000..606b40488 --- /dev/null +++ b/extensions/aasb/docs/Navigation/GetNavigationStateMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetNavigationState Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetNavigationState

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "GetNavigationState",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "navigationState" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"GetNavigationState"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      navigationStatethe current NavigationState JSON payload + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "GetNavigationState",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "navigationState" : "navigationState-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/NavigateToPreviousWaypointMessage.html b/extensions/aasb/docs/Navigation/NavigateToPreviousWaypointMessage.html new file mode 100644 index 000000000..c5c3dbb50 --- /dev/null +++ b/extensions/aasb/docs/Navigation/NavigateToPreviousWaypointMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      NavigateToPreviousWaypoint

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to start navigation to the previous waypoint +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "NavigateToPreviousWaypoint"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"NavigateToPreviousWaypoint"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "NavigateToPreviousWaypoint"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/NavigationErrorMessage.html b/extensions/aasb/docs/Navigation/NavigationErrorMessage.html new file mode 100644 index 000000000..e689554c7 --- /dev/null +++ b/extensions/aasb/docs/Navigation/NavigationErrorMessage.html @@ -0,0 +1,1197 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      NavigationError

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of error in handling a Navigation directive. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "NavigationError"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : {{String}},
                                                                      +    "code" : {{String}},
                                                                      +    "description" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"NavigationError"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      typeErrorType describing which operation failed. +
                                                                      Accepted Values:
                                                                      + NAVIGATION_START_FAILED : Navigation failed to start. Send in response to startNavigation() directive.
                                                                      + SHOW_PREVIOUS_WAYPOINTS_FAILED : List of previous waypoints failed to display. Send in response to showPreviousWaypoints() directive.
                                                                      + PREVIOUS_NAVIGATION_START_FAILED : The previous navigation route failed to start. Send in response to navigateToPreviousWaypoint() directive.
                                                                      + ROUTE_OVERVIEW_FAILED : Overview of route was failed to display. Send in response to controlDisplay() directive.
                                                                      + DIRECTIONS_LIST_FAILED : List of directions was failed to display. Send in response to controlDisplay() directive.
                                                                      + ZOOM_IN_FAILED : Map zoom-in unsuccessful. Send in response to controlDisplay() directive.
                                                                      + ZOOM_OUT_FAILED : Map zoom-out unsuccessful. Send in response to controlDisplay() directive.
                                                                      + CENTER_FAILED : Map centering unsuccessful. Send in response to controlDisplay() directive.
                                                                      + ORIENT_NORTH_FAILED : Map alignment to north unsuccessful. Send in response to controlDisplay() directive.
                                                                      + SCROLL_NORTH_FAILED : Moving map North was unsuccessful. Send in response to controlDisplay() directive.
                                                                      + SCROLL_UP_FAILED : Moving map upwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                      + SCROLL_EAST_FAILED : Moving map East was unsuccessful. Send in response to controlDisplay() directive.
                                                                      + SCROLL_RIGHT_FAILED : Moving map rightwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                      + SCROLL_SOUTH_FAILED : Moving map South was unsuccessful. Send in response to controlDisplay() directive.
                                                                      + SCROLL_DOWN_FAILED : Moving map downwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                      + SCROLL_WEST_FAILED : Moving map west was unsuccessful. Send in response to controlDisplay() directive.
                                                                      + SCROLL_LEFT_FAILED : Moving map leftwards was unsuccessful. Send in response to controlDisplay() directive.
                                                                      + MUTED_ROUTE_GUIDANCE_FAILED : Map sounds failed to be muted. Send in response to controlDisplay() directive.
                                                                      + UNMUTED_ROUTE_GUIDANCE_FAILED : Map sounds failed to be unmuted. Send in response to controlDisplay() directive.
                                                                      + DEFAULT_ALTERNATE_ROUTES_FAILED : Displaying default alternate routes was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                      + SHORTER_TIME_ROUTES_FAILED : Displaying alternate routes with shorter times was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                      + SHORTER_DISTANCE_ROUTES_FAILED : Displaying alternate routes with shorter distances was unsuccessful. Send in response to showAlternativeRoutes() directive.
                                                                      + TURN_GUIDANCE_FAILED : Next turn announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                      + EXIT_GUIDANCE_FAILED : Next exit announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                      + ENTER_GUIDANCE_FAILED : Announcement for entering directions was unsuccessful. Send in response to announceManeuver() directive.
                                                                      + MERGE_GUIDANCE_FAILED : Announcement for merging directions was unsuccessful. Send in response to announceManeuver() directive.
                                                                      + LANE_GUIDANCE_FAILED : Lane guidance announcement was unsuccessful. Send in response to announceManeuver() directive.
                                                                      + SPEED_LIMIT_REGULATION_FAILED : Current speed limit announcement was unsuccessful. Send in response to announceRoadRegulation() directive.
                                                                      + CARPOOL_RULES_REGULATION_FAILED : Carpool status announcement was unsuccessful. Send in response to announceRoadRegulation() directive.
                                                                      + +
                                                                      + String +
                                                                      codeErrorCode describing the type of failure. +
                                                                      Accepted Values:
                                                                      + INTERNAL_SERVICE_ERROR : Failure caused by an unexpected service or client implementation error
                                                                      + ROUTE_NOT_FOUND : Failed because the route could not be found
                                                                      + NO_PREVIOUS_WAYPOINTS : Failed because there are no previous waypoints available
                                                                      + NOT_SUPPORTED : The operation requested is not supported or implemented
                                                                      + NOT_ALLOWED : The operation requested can't be performed now
                                                                      + +
                                                                      + String +
                                                                      descriptionString providing additional information. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "NavigationError"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "type" : "NAVIGATION_START_FAILED",
                                                                      +    "code" : "INTERNAL_SERVICE_ERROR",
                                                                      +    "description" : "description-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/NavigationEventMessage.html b/extensions/aasb/docs/Navigation/NavigationEventMessage.html new file mode 100644 index 000000000..5a6f29c78 --- /dev/null +++ b/extensions/aasb/docs/Navigation/NavigationEventMessage.html @@ -0,0 +1,1168 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      NavigationEvent

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of successful handling of a Navigation directive. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "NavigationEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "event" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"NavigationEvent"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      eventEventName describing which operation was successful. +
                                                                      Accepted Values:
                                                                      + NAVIGATION_STARTED : Navigation was started. Send in response to startNavigation() directive.
                                                                      + PREVIOUS_WAYPOINTS_SHOWN : List of previous waypoints was displayed. Send in response to showPreviousWaypoints() directive.
                                                                      + PREVIOUS_NAVIGATION_STARTED : The previous navigation route was started. Send in response to navigateToPreviousWaypoint() directive.
                                                                      + ROUTE_OVERVIEW_SHOWN : Overview of route was displayed. Send in response to controlDisplay() directive.
                                                                      + DIRECTIONS_LIST_SHOWN : List of directions was displayed. Send in response to controlDisplay() directive.
                                                                      + ZOOMED_IN : Map successfully zoomed in. Send in response to controlDisplay() directive.
                                                                      + ZOOMED_OUT : Map successfully zoomed out. Send in response to controlDisplay() directive.
                                                                      + MAP_CENTERED : Map successfully centered. Send in response to controlDisplay() directive.
                                                                      + ORIENTED_NORTH : Map successfully aligned with north up. Send in response to controlDisplay() directive.
                                                                      + SCROLLED_NORTH : Map successfully moved in North direction. Send in response to controlDisplay() directive.
                                                                      + SCROLLED_UP : Map successfully moved upwards. Send in response to controlDisplay() directive.
                                                                      + SCROLLED_EAST : Map successfully moved in East direction. Send in response to controlDisplay() directive.
                                                                      + SCROLLED_RIGHT : Map successfully moved rightwards. Send in response to controlDisplay() directive.
                                                                      + SCROLLED_SOUTH : Map successfully moved in South direction. Send in response to controlDisplay() directive.
                                                                      + SCROLLED_DOWN : Map successfully moved downwards. Send in response to controlDisplay() directive.
                                                                      + SCROLLED_WEST : Map successfully moved in West direction. Send in response to controlDisplay() directive.
                                                                      + SCROLLED_LEFT : Map successfully moved leftwards. Send in response to controlDisplay() directive.
                                                                      + ROUTE_GUIDANCE_MUTED : Map sounds were muted. Send in response to controlDisplay() directive.
                                                                      + ROUTE_GUIDANCE_UNMUTED : Map sounds were unmuted. Send in response to controlDisplay() directive.
                                                                      + DEFAULT_ALTERNATE_ROUTES_SHOWN : Default alternate routes were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                      + SHORTER_TIME_ROUTES_SHOWN : Alternate routes with shorter times were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                      + SHORTER_DISTANCE_ROUTES_SHOWN : Alternate routes with shorter distances were successfully found and displayed. Send in response to showAlternativeRoutes() directive.
                                                                      + TURN_GUIDANCE_ANNOUNCED : Next turn was successfully announced. Send in response to announceManeuver() directive.
                                                                      + EXIT_GUIDANCE_ANNOUNCED : Next exit was successfully announced. Send in response to announceManeuver() directive.
                                                                      + ENTER_GUIDANCE_ANNOUNCED : Directions for entering successfully announced. Send in response to announceManeuver() directive.
                                                                      + MERGE_GUIDANCE_ANNOUNCED : Directions for merging successfully announced. Send in response to announceManeuver() directive.
                                                                      + LANE_GUIDANCE_ANNOUNCED : Lane guidance was successfully announced. Send in response to announceManeuver() directive.
                                                                      + SPEED_LIMIT_REGULATION_ANNOUNCED : Current speed limit successfully announced. Send in response to announceRoadRegulation() directive.
                                                                      + CARPOOL_RULES_REGULATION_ANNOUNCED : Carpool status successfully announced. Send in response to announceRoadRegulation() directive.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "NavigationEvent"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "event" : "NAVIGATION_STARTED"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/ShowAlternativeRoutesMessage.html b/extensions/aasb/docs/Navigation/ShowAlternativeRoutesMessage.html new file mode 100644 index 000000000..f3ce0af0c --- /dev/null +++ b/extensions/aasb/docs/Navigation/ShowAlternativeRoutesMessage.html @@ -0,0 +1,1142 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ShowAlternativeRoutes

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to show alternative routes +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "ShowAlternativeRoutes"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "alternateRouteType" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"ShowAlternativeRoutes"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      alternateRouteType alternateRouteType The type of alternate route requested +
                                                                      Accepted Values:
                                                                      + DEFAULT : description for DEFAULT
                                                                      + SHORTER_TIME : description for SHORTER_TIME
                                                                      + SHORTER_DISTANCE : description for SHORTER_DISTANCE
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "ShowAlternativeRoutes"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "alternateRouteType" : "DEFAULT"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/ShowAlternativeRoutesSucceededMessage.html b/extensions/aasb/docs/Navigation/ShowAlternativeRoutesSucceededMessage.html new file mode 100644 index 000000000..714cdf632 --- /dev/null +++ b/extensions/aasb/docs/Navigation/ShowAlternativeRoutesSucceededMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ShowAlternativeRoutesSucceeded

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies AVS of successful showing of alternative routes to the user +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "ShowAlternativeRoutesSucceeded"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"ShowAlternativeRoutesSucceeded"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloaddata containing the alternative route information + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "ShowAlternativeRoutesSucceeded"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/ShowPreviousWaypointsMessage.html b/extensions/aasb/docs/Navigation/ShowPreviousWaypointsMessage.html new file mode 100644 index 000000000..c5164239f --- /dev/null +++ b/extensions/aasb/docs/Navigation/ShowPreviousWaypointsMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ShowPreviousWaypoints

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to display list of previous waypoints +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "ShowPreviousWaypoints"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"ShowPreviousWaypoints"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "ShowPreviousWaypoints"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Navigation/StartNavigationMessage.html b/extensions/aasb/docs/Navigation/StartNavigationMessage.html new file mode 100644 index 000000000..11c76124a --- /dev/null +++ b/extensions/aasb/docs/Navigation/StartNavigationMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      StartNavigation

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to start the navigation +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "StartNavigation"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Navigation"String
                                                                      messageDescription.action"StartNavigation"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadJSON data containing the destination information + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Navigation",
                                                                      +      "action" : "StartNavigation"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessage.html b/extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessage.html new file mode 100644 index 000000000..92b768674 --- /dev/null +++ b/extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetNetworkStatus

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the current network connectivity status on the platform +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "GetNetworkStatus"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"NetworkInfoProvider"String
                                                                      messageDescription.action"GetNetworkStatus"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "GetNetworkStatus"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessageReply.html b/extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessageReply.html new file mode 100644 index 000000000..f562756a9 --- /dev/null +++ b/extensions/aasb/docs/NetworkInfoProvider/GetNetworkStatusMessageReply.html @@ -0,0 +1,1156 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetNetworkStatus Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetNetworkStatus

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "GetNetworkStatus",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "status" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"NetworkInfoProvider"String
                                                                      messageDescription.action"GetNetworkStatus"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      status The connectivity status of the current network +
                                                                      Accepted Values:
                                                                      + UNKNOWN : description for UNKNOWN
                                                                      + DISCONNECTED : description for DISCONNECTED
                                                                      + DISCONNECTING : description for DISCONNECTING
                                                                      + CONNECTED : description for CONNECTED
                                                                      + CONNECTING : description for CONNECTING
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "GetNetworkStatus",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "status" : "UNKNOWN"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessage.html b/extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessage.html new file mode 100644 index 000000000..00cfe80cf --- /dev/null +++ b/extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetWifiSignalStrength

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Returns the current signal strength (RSSI) of the WiFi connection on the platform +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "GetWifiSignalStrength"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"NetworkInfoProvider"String
                                                                      messageDescription.action"GetWifiSignalStrength"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "GetWifiSignalStrength"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.html b/extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.html new file mode 100644 index 000000000..d27cee0d9 --- /dev/null +++ b/extensions/aasb/docs/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetWifiSignalStrength Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      + This messages is sent as a reply to GetWifiSignalStrength

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "GetWifiSignalStrength",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "wifiSignalStrength" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Reply"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"NetworkInfoProvider"String
                                                                      messageDescription.action"GetWifiSignalStrength"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      wifiSignalStrength The RSSI of the WiFi connection + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Reply",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "GetWifiSignalStrength",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "wifiSignalStrength" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/NetworkInfoProvider/NetworkStatusChangedMessage.html b/extensions/aasb/docs/NetworkInfoProvider/NetworkStatusChangedMessage.html new file mode 100644 index 000000000..729cbdeaf --- /dev/null +++ b/extensions/aasb/docs/NetworkInfoProvider/NetworkStatusChangedMessage.html @@ -0,0 +1,1155 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      NetworkStatusChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a WiFi network status change on the platform +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "NetworkStatusChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "status" : {{String}},
                                                                      +    "wifiSignalStrength" : {{Integer}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"NetworkInfoProvider"String
                                                                      messageDescription.action"NetworkStatusChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      statusThe connection status of the WiFi network +
                                                                      Accepted Values:
                                                                      + UNKNOWN : description for UNKNOWN
                                                                      + DISCONNECTED : description for DISCONNECTED
                                                                      + DISCONNECTING : description for DISCONNECTING
                                                                      + CONNECTED : description for CONNECTED
                                                                      + CONNECTING : description for CONNECTING
                                                                      + +
                                                                      + String +
                                                                      wifiSignalStrengthThe RSSI of the WiFi connection + + Integer +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "NetworkInfoProvider",
                                                                      +      "action" : "NetworkStatusChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "status" : "UNKNOWN",
                                                                      +    "wifiSignalStrength" : 7
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Notifications/OnNotificationReceivedMessage.html b/extensions/aasb/docs/Notifications/OnNotificationReceivedMessage.html new file mode 100644 index 000000000..edb28ec18 --- /dev/null +++ b/extensions/aasb/docs/Notifications/OnNotificationReceivedMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      OnNotificationReceived

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of notification received +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Notifications",
                                                                      +      "action" : "OnNotificationReceived"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Notifications"String
                                                                      messageDescription.action"OnNotificationReceived"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Notifications",
                                                                      +      "action" : "OnNotificationReceived"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Notifications/SetIndicatorMessage.html b/extensions/aasb/docs/Notifications/SetIndicatorMessage.html new file mode 100644 index 000000000..a3ae0eee0 --- /dev/null +++ b/extensions/aasb/docs/Notifications/SetIndicatorMessage.html @@ -0,0 +1,1142 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetIndicator

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of whether a notification indicator should be rendered +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Notifications",
                                                                      +      "action" : "SetIndicator"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"Notifications"String
                                                                      messageDescription.action"SetIndicator"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      stateThe new notification indicator state +
                                                                      Accepted Values:
                                                                      + OFF : The notification indicator should be turned off
                                                                      + ON : The notification indicator should be turned on
                                                                      + UNKNOWN : The notification indicator state is unknown.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "Notifications",
                                                                      +      "action" : "SetIndicator"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "OFF"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/AnswerMessage.html b/extensions/aasb/docs/PhoneCallController/AnswerMessage.html new file mode 100644 index 000000000..5707d8dbd --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/AnswerMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Answer

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to answer an inbound call +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "Answer"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"Answer"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadDetails of the answer request in structured JSON format + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "Answer"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/CallFailedMessage.html b/extensions/aasb/docs/PhoneCallController/CallFailedMessage.html new file mode 100644 index 000000000..9abe8e50e --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/CallFailedMessage.html @@ -0,0 +1,1166 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      CallFailed

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of an error related to a call +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CallFailed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : {{String}},
                                                                      +    "code" : {{String}},
                                                                      +    "message" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"CallFailed"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      callIdThe unique identifier for the call associated with the error + + String +
                                                                      codeThe error type +
                                                                      Accepted Values:
                                                                      + NO_CARRIER : No carrier is available on the calling device
                                                                      + BUSY : The calling device is busy when setting up an outbound call, such as when a call is already in progress.
                                                                      + NO_ANSWER : The remote party did not answer the call
                                                                      + NO_NUMBER_FOR_REDIAL : Redial was requested, but there is no previously dialed number available.
                                                                      + OTHER : Generic error
                                                                      + +
                                                                      + String +
                                                                      messageA description of the error + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CallFailed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : "callId-SampleText",
                                                                      +    "code" : "NO_CARRIER",
                                                                      +    "message" : "message-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/CallStateChangedMessage.html b/extensions/aasb/docs/PhoneCallController/CallStateChangedMessage.html new file mode 100644 index 000000000..38e8ce642 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/CallStateChangedMessage.html @@ -0,0 +1,1167 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      CallStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a change in the state of an ongoing call +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CallStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}},
                                                                      +    "callId" : {{String}},
                                                                      +    "callerId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"CallStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      stateThe state of the call +
                                                                      Accepted Values:
                                                                      + IDLE : The call is not in an active state.
                                                                      + DIALING : The outbound call is initiated by the user. Call setup is in progress
                                                                      + OUTBOUND_RINGING : The outbound call has been set up, and the remote party is alerted
                                                                      + ACTIVE : The call is active, and media is being transmitted between the caller and remote party.
                                                                      + CALL_RECEIVED : An alert for the inbound call has been received.
                                                                      + INBOUND_RINGING : The inbound call is ringing
                                                                      + +
                                                                      + String +
                                                                      callIdThe unique identifier associated with the call + + String +
                                                                      callerIdThe identifier for a contact + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CallStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "IDLE",
                                                                      +    "callId" : "callId-SampleText",
                                                                      +    "callerId" : "callerId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/CallerIdReceivedMessage.html b/extensions/aasb/docs/PhoneCallController/CallerIdReceivedMessage.html new file mode 100644 index 000000000..25f6f4149 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/CallerIdReceivedMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      CallerIdReceived

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that a caller id was received for an inbound call +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CallerIdReceived"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : {{String}},
                                                                      +    "callerId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"CallerIdReceived"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      callIdThe unique identifier for the call associated with the callId + + String +
                                                                      callerIdThe caller's identifier or phone number + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CallerIdReceived"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : "callId-SampleText",
                                                                      +    "callerId" : "callerId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/ConnectionStateChangedMessage.html b/extensions/aasb/docs/PhoneCallController/ConnectionStateChangedMessage.html new file mode 100644 index 000000000..fa58c8899 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/ConnectionStateChangedMessage.html @@ -0,0 +1,1141 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ConnectionStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a change in connection to a calling device +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "ConnectionStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"ConnectionStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      stateThe state of connection to a calling device +
                                                                      Accepted Values:
                                                                      + CONNECTED : A calling device is connected.
                                                                      + DISCONNECTED : No calling device is connected
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "ConnectionStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "state" : "CONNECTED"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/CreateCallIdMessage.html b/extensions/aasb/docs/PhoneCallController/CreateCallIdMessage.html new file mode 100644 index 000000000..3d421ec6e --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/CreateCallIdMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      CreateCallId

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Generates a unique identifier for a call +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CreateCallId"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"CreateCallId"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CreateCallId"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/CreateCallIdMessageReply.html b/extensions/aasb/docs/PhoneCallController/CreateCallIdMessageReply.html new file mode 100644 index 000000000..9f32fa5a2 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/CreateCallIdMessageReply.html @@ -0,0 +1,1149 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      CreateCallId Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      + This messages is sent as a reply to CreateCallId

                                                                      + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CreateCallId",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"CreateCallId"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      callIdUnique identifier for a call. + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "CreateCallId",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : "callId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/DeviceConfigurationUpdatedMessage.html b/extensions/aasb/docs/PhoneCallController/DeviceConfigurationUpdatedMessage.html new file mode 100644 index 000000000..0473839f1 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/DeviceConfigurationUpdatedMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      DeviceConfigurationUpdated

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of the calling feature configuration of the connected calling device. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "DeviceConfigurationUpdated"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "configurationMap" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"DeviceConfigurationUpdated"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      configurationMapA map of configuration properties to the boolean state of the properties + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "DeviceConfigurationUpdated"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "configurationMap" : "configurationMap-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/DialMessage.html b/extensions/aasb/docs/PhoneCallController/DialMessage.html new file mode 100644 index 000000000..c44453c38 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/DialMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Dial

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to initiate an outgoing phone call to the destination address +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "Dial"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"Dial"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadDetails of the dial request in structured JSON format + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "Dial"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/RedialMessage.html b/extensions/aasb/docs/PhoneCallController/RedialMessage.html new file mode 100644 index 000000000..353352d20 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/RedialMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Redial

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to redial the last called phone number. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "Redial"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"Redial"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadDetails of the redial request in structured JSON format + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "Redial"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/SendDTMFFailedMessage.html b/extensions/aasb/docs/PhoneCallController/SendDTMFFailedMessage.html new file mode 100644 index 000000000..b7d062c68 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/SendDTMFFailedMessage.html @@ -0,0 +1,1163 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SendDTMFFailed

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that the DTMF signal could not be delivered to the remote party +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "SendDTMFFailed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : {{String}},
                                                                      +    "code" : {{String}},
                                                                      +    "message" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"SendDTMFFailed"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      callIdcallId The unique identifier for the associated call + + String +
                                                                      codeThe error type +
                                                                      Accepted Values:
                                                                      + CALL_NOT_IN_PROGRESS : There is no active call through which a DTMF signal can be sent
                                                                      + DTMF_FAILED : Generic DTMF error
                                                                      + +
                                                                      + String +
                                                                      messageA description of the error + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "SendDTMFFailed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : "callId-SampleText",
                                                                      +    "code" : "CALL_NOT_IN_PROGRESS",
                                                                      +    "message" : "message-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/SendDTMFMessage.html b/extensions/aasb/docs/PhoneCallController/SendDTMFMessage.html new file mode 100644 index 000000000..60c4820d7 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/SendDTMFMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SendDTMF

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to send a DTMF signal to the calling device +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "SendDTMF"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"SendDTMF"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadDetails of the DTMF request in structured JSON format + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "SendDTMF"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/SendDTMFSucceededMessage.html b/extensions/aasb/docs/PhoneCallController/SendDTMFSucceededMessage.html new file mode 100644 index 000000000..16a621cd5 --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/SendDTMFSucceededMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SendDTMFSucceeded

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that sending the DTMF signal succeeded. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "SendDTMFSucceeded"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"SendDTMFSucceeded"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      callIdThe unique identifier for the associated call + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "SendDTMFSucceeded"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "callId" : "callId-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PhoneCallController/StopMessage.html b/extensions/aasb/docs/PhoneCallController/StopMessage.html new file mode 100644 index 000000000..8d5e49c5c --- /dev/null +++ b/extensions/aasb/docs/PhoneCallController/StopMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Stop

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to end an ongoing call or stop inbound or outbound call setup +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "Stop"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PhoneCallController"String
                                                                      messageDescription.action"Stop"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadDetails of the stop request in structured JSON format + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PhoneCallController",
                                                                      +      "action" : "Stop"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PlaybackController/ButtonPressedMessage.html b/extensions/aasb/docs/PlaybackController/ButtonPressedMessage.html new file mode 100644 index 000000000..9cb5288e7 --- /dev/null +++ b/extensions/aasb/docs/PlaybackController/ButtonPressedMessage.html @@ -0,0 +1,1147 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ButtonPressed

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a platform button request (i.e. Play/Pause/Next/Previous/Skip Forward/Skip Backward) +For certain playback types, the Engine will issue playback directives to the AudioPlayer MediaPlayer +to control playback on the platform. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PlaybackController",
                                                                      +      "action" : "ButtonPressed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "button" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PlaybackController"String
                                                                      messageDescription.action"ButtonPressed"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      buttonThe playback button type +
                                                                      Accepted Values:
                                                                      + PLAY : 'Play' button.
                                                                      + PAUSE : 'Pause' button.
                                                                      + NEXT : 'Next' button.
                                                                      + PREVIOUS : 'Previous' button.
                                                                      + SKIP_FORWARD : 'Skip Forward' button.
                                                                      + SKIP_BACKWARD : 'Skip Backward' button.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PlaybackController",
                                                                      +      "action" : "ButtonPressed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "button" : "PLAY"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PlaybackController/TogglePressedMessage.html b/extensions/aasb/docs/PlaybackController/TogglePressedMessage.html new file mode 100644 index 000000000..60f68a34e --- /dev/null +++ b/extensions/aasb/docs/PlaybackController/TogglePressedMessage.html @@ -0,0 +1,1157 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      TogglePressed

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a platform toggle request (i.e. Shuffle/Loop/Repeat/Thumbs Up/Thumbs Down) +For certain playback types, the Engine will issue playback directives to the AudioPlayer MediaPlayer + +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PlaybackController",
                                                                      +      "action" : "TogglePressed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "toggle" : {{String}},
                                                                      +    "action" : {{Boolean}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PlaybackController"String
                                                                      messageDescription.action"TogglePressed"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      toggleThe playback toggle type +
                                                                      Accepted Values:
                                                                      + SHUFFLE : 'Shuffle' toggle.
                                                                      + LOOP : 'Loop' toggle.
                                                                      + REPEAT : 'Repeat' toggle.
                                                                      + THUMBS_UP : 'Thumbs Up' toggle.
                                                                      + THUMBS_DOWN : 'Thumbs Down' toggle.
                                                                      + +
                                                                      + String +
                                                                      actionThe toggle action + + Boolean +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PlaybackController",
                                                                      +      "action" : "TogglePressed"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "toggle" : "SHUFFLE",
                                                                      +    "action" : true
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PropertyManager/GetPropertyMessage.html b/extensions/aasb/docs/PropertyManager/GetPropertyMessage.html new file mode 100644 index 000000000..f38a65fe1 --- /dev/null +++ b/extensions/aasb/docs/PropertyManager/GetPropertyMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetProperty

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Retrieves the property setting from the Engine +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "GetProperty"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PropertyManager"String
                                                                      messageDescription.action"GetProperty"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      nameThe property name + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "GetProperty"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : "name-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PropertyManager/GetPropertyMessageReply.html b/extensions/aasb/docs/PropertyManager/GetPropertyMessageReply.html new file mode 100644 index 000000000..ae35dad4e --- /dev/null +++ b/extensions/aasb/docs/PropertyManager/GetPropertyMessageReply.html @@ -0,0 +1,1160 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      GetProperty Reply

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      + This messages is sent as a reply to GetProperty

                                                                      +Provides the property setting to the platform +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "GetProperty",
                                                                      +      "replyToId" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : {{String}},
                                                                      +    "value" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PropertyManager"String
                                                                      messageDescription.action"GetProperty"String
                                                                      messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      nameThe property name + + String +
                                                                      valueThe property value + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "GetProperty",
                                                                      +      "replyToId" : "replyToId-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : "name-SampleText",
                                                                      +    "value" : "value-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PropertyManager/PropertyChangedMessage.html b/extensions/aasb/docs/PropertyManager/PropertyChangedMessage.html new file mode 100644 index 000000000..56e23ccb3 --- /dev/null +++ b/extensions/aasb/docs/PropertyManager/PropertyChangedMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PropertyChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation about a change in a property value in the Engine that is not initiated by the platform implementation. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "PropertyChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : {{String}},
                                                                      +    "newValue" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PropertyManager"String
                                                                      messageDescription.action"PropertyChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      nameName of the property + + String +
                                                                      newValueThe new value of the property + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "PropertyChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : "name-SampleText",
                                                                      +    "newValue" : "newValue-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PropertyManager/PropertyStateChangedMessage.html b/extensions/aasb/docs/PropertyManager/PropertyStateChangedMessage.html new file mode 100644 index 000000000..9b23477aa --- /dev/null +++ b/extensions/aasb/docs/PropertyManager/PropertyStateChangedMessage.html @@ -0,0 +1,1163 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      PropertyStateChanged

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation of the status of a property change after a call to setProperty() +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "PropertyStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : {{String}},
                                                                      +    "value" : {{String}},
                                                                      +    "state" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PropertyManager"String
                                                                      messageDescription.action"PropertyStateChanged"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      nameName of the property + + String +
                                                                      valueThe value of the property + + String +
                                                                      stateThe property state +
                                                                      Accepted Values:
                                                                      + SUCCEEDED : The property change was successful
                                                                      + FAILED : The property change failed
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "PropertyStateChanged"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : "name-SampleText",
                                                                      +    "value" : "value-SampleText",
                                                                      +    "state" : "SUCCEEDED"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/PropertyManager/SetPropertyMessage.html b/extensions/aasb/docs/PropertyManager/SetPropertyMessage.html new file mode 100644 index 000000000..4bbdddf5d --- /dev/null +++ b/extensions/aasb/docs/PropertyManager/SetPropertyMessage.html @@ -0,0 +1,1148 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      SetProperty

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Sets the property setting in the Engine +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "SetProperty"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : {{String}},
                                                                      +    "value" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"PropertyManager"String
                                                                      messageDescription.action"SetProperty"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      nameThe property name + + String +
                                                                      valueThe property value + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "PropertyManager",
                                                                      +      "action" : "SetProperty"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "name" : "name-SampleText",
                                                                      +    "value" : "value-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Publish Message General Form.html b/extensions/aasb/docs/Publish Message General Form.html new file mode 100644 index 000000000..63438cc76 --- /dev/null +++ b/extensions/aasb/docs/Publish Message General Form.html @@ -0,0 +1,1165 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Publish Message General Form

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +The general JSON structure publishing for AASB messages +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "messageType" : "Publish",
                                                                      +    "version" : {{String}},
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : {{String}},
                                                                      +      "action" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "exampleParameter1" : {{String}},
                                                                      +    "exampleParameter2" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      headerThe header contains meta information about the message' + + Object +
                                                                      header.messageType"Publish"String
                                                                      header.versionThis is a constant value, such as '1.0' + + String +
                                                                      header.idA string that will act as a unique identifier for this message + + String +
                                                                      header.messageDescriptionMeta information about the message + + Object +
                                                                      header.messageDescription.topicThe topic is conceptually similar to a namespace and is used to group actions together. + + String +
                                                                      header.messageDescription.actionThe action is conceptually similar to a class method + + String +
                                                                      payloadThe payload is different for each type of message. + + Object +
                                                                      payload.exampleParameter1This is an example parameter + + String +
                                                                      payload.exampleParameter2This is another example parameter + + String +
                                                                      + +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "messageType" : "Publish",
                                                                      +    "version" : "version-SampleText",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "topic-SampleText",
                                                                      +      "action" : "action-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "exampleParameter1" : "exampleParameter1-SampleText",
                                                                      +    "exampleParameter2" : "exampleParameter2-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/Reply Message General Form.html b/extensions/aasb/docs/Reply Message General Form.html new file mode 100644 index 000000000..51901329c --- /dev/null +++ b/extensions/aasb/docs/Reply Message General Form.html @@ -0,0 +1,1177 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Reply Message General Form

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      + This messages is sent as a reply to Publish Message General Form

                                                                      +The general JSON structure replying to AASB messages +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "messageType" : "Reply",
                                                                      +    "version" : {{String}},
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "replyToId" : {{String}},
                                                                      +      "topic" : {{String}},
                                                                      +      "action" : {{String}}
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "exampleParameter1" : {{String}},
                                                                      +    "exampleParameter2" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      headerThe header contains meta information about the message' + + Object +
                                                                      header.messageType"Reply"String
                                                                      header.versionThis is a constant value, such as '1.0' + + String +
                                                                      header.idA string that will act as a unique identifier for this message + + String +
                                                                      header.messageDescriptionMeta information about the message + + Object +
                                                                      header.messageDescription.replyToIdThe ID of the message that this one is replying to. + + String +
                                                                      header.messageDescription.topicThe topic is conceptually similar to a namespace and is used to group actions together. + + String +
                                                                      header.messageDescription.actionThe action is conceptually similar to a class method + + String +
                                                                      payloadThe payload is different for each type of message. + + Object +
                                                                      payload.exampleParameter1This is an example parameter + + String +
                                                                      payload.exampleParameter2This is another example parameter + + String +
                                                                      + +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "messageType" : "Reply",
                                                                      +    "version" : "version-SampleText",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "replyToId" : "replyToId-SampleText",
                                                                      +      "topic" : "topic-SampleText",
                                                                      +      "action" : "action-SampleText"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "exampleParameter1" : "exampleParameter1-SampleText",
                                                                      +    "exampleParameter2" : "exampleParameter2-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/SpeechRecognizer/EndOfSpeechDetectedMessage.html b/extensions/aasb/docs/SpeechRecognizer/EndOfSpeechDetectedMessage.html new file mode 100644 index 000000000..c75404138 --- /dev/null +++ b/extensions/aasb/docs/SpeechRecognizer/EndOfSpeechDetectedMessage.html @@ -0,0 +1,1129 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      EndOfSpeechDetected

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation when end of +speech is detected for the current recognize event +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "SpeechRecognizer",
                                                                      +      "action" : "EndOfSpeechDetected"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"SpeechRecognizer"String
                                                                      messageDescription.action"EndOfSpeechDetected"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "SpeechRecognizer",
                                                                      +      "action" : "EndOfSpeechDetected"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/SpeechRecognizer/StartCaptureMessage.html b/extensions/aasb/docs/SpeechRecognizer/StartCaptureMessage.html new file mode 100644 index 000000000..8011fdcb7 --- /dev/null +++ b/extensions/aasb/docs/SpeechRecognizer/StartCaptureMessage.html @@ -0,0 +1,1179 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      StartCapture

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine of a speech recognition event. The Engine will call startAudioInput() to notify +the platform implementation when to start writing audio samples. +If the initator type is HOLD_TO_TALK, then the platform implementation should call stopCapture() +to terminate speech recognition on release of the press-and-hold action. Otherwise, the Engine will +terminate the recognize event when end of speech is detected. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "SpeechRecognizer",
                                                                      +      "action" : "StartCapture"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "initiator" : {{String}},
                                                                      +    "keywordBegin" : {{Integer}},
                                                                      +    "keywordEnd" : {{Integer}},
                                                                      +    "keyword" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"SpeechRecognizer"String
                                                                      messageDescription.action"StartCapture"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      initiatorInitiator type for the speech recognition event +
                                                                      Accepted Values:
                                                                      + HOLD_TO_TALK : Hold-to-talk speech initiator type.
                                                                      + TAP_TO_TALK : Tap-to-talk speech initiator type.
                                                                      + WAKEWORD : Wakeword speech initiator type.
                                                                      + +
                                                                      + String +
                                                                      keywordBeginhe sample index where the keyword begins + + Integer +
                                                                      keywordEndThe sample index where the keyword ends + + Integer +
                                                                      keywordThe keyword being recognized, e.g. alexa + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "SpeechRecognizer",
                                                                      +      "action" : "StartCapture"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "initiator" : "HOLD_TO_TALK",
                                                                      +    "keywordBegin" : 7,
                                                                      +    "keywordEnd" : 7,
                                                                      +    "keyword" : "keyword-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/SpeechRecognizer/StopCaptureMessage.html b/extensions/aasb/docs/SpeechRecognizer/StopCaptureMessage.html new file mode 100644 index 000000000..c30446f51 --- /dev/null +++ b/extensions/aasb/docs/SpeechRecognizer/StopCaptureMessage.html @@ -0,0 +1,1129 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      StopCapture

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine to terminate the current recognize event. The Engine will call stopAudioInput() +to notify the platform implementation when to stop writing audio samples. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "SpeechRecognizer",
                                                                      +      "action" : "StopCapture"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"SpeechRecognizer"String
                                                                      messageDescription.action"StopCapture"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "SpeechRecognizer",
                                                                      +      "action" : "StopCapture"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/SpeechRecognizer/WakewordDetectedMessage.html b/extensions/aasb/docs/SpeechRecognizer/WakewordDetectedMessage.html new file mode 100644 index 000000000..0636cda2c --- /dev/null +++ b/extensions/aasb/docs/SpeechRecognizer/WakewordDetectedMessage.html @@ -0,0 +1,1137 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      WakewordDetected

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation when a wake word is detected +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "SpeechRecognizer",
                                                                      +      "action" : "WakewordDetected"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "wakeword" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"SpeechRecognizer"String
                                                                      messageDescription.action"WakewordDetected"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      wakewordThe wake word that was detected + + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "SpeechRecognizer",
                                                                      +      "action" : "WakewordDetected"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "wakeword" : "wakeword-SampleText"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/TemplateRuntime/ClearPlayerInfoMessage.html b/extensions/aasb/docs/TemplateRuntime/ClearPlayerInfoMessage.html new file mode 100644 index 000000000..088683324 --- /dev/null +++ b/extensions/aasb/docs/TemplateRuntime/ClearPlayerInfoMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ClearPlayerInfo

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to dismiss the player info display card +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "ClearPlayerInfo"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"TemplateRuntime"String
                                                                      messageDescription.action"ClearPlayerInfo"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "ClearPlayerInfo"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/TemplateRuntime/ClearTemplateMessage.html b/extensions/aasb/docs/TemplateRuntime/ClearTemplateMessage.html new file mode 100644 index 000000000..2f8a28ec5 --- /dev/null +++ b/extensions/aasb/docs/TemplateRuntime/ClearTemplateMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      ClearTemplate

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Notifies the platform implementation to dismiss the template display card +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "ClearTemplate"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"TemplateRuntime"String
                                                                      messageDescription.action"ClearTemplate"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "ClearTemplate"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/TemplateRuntime/DisplayCardClearedMessage.html b/extensions/aasb/docs/TemplateRuntime/DisplayCardClearedMessage.html new file mode 100644 index 000000000..9b0e4d133 --- /dev/null +++ b/extensions/aasb/docs/TemplateRuntime/DisplayCardClearedMessage.html @@ -0,0 +1,1128 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      DisplayCardCleared

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent to the engine.

                                                                      +Notifies the Engine that a display card has been cleared from the screen. Upon getting this notification, the TemplateRuntime will release the visual channel. +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "DisplayCardCleared"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"TemplateRuntime"String
                                                                      messageDescription.action"DisplayCardCleared"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "DisplayCardCleared"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/TemplateRuntime/RenderPlayerInfoMessage.html b/extensions/aasb/docs/TemplateRuntime/RenderPlayerInfoMessage.html new file mode 100644 index 000000000..dfc3a1122 --- /dev/null +++ b/extensions/aasb/docs/TemplateRuntime/RenderPlayerInfoMessage.html @@ -0,0 +1,1183 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RenderPlayerInfo

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Provides visual metadata associated with a user request to Alexa for audio playback +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "RenderPlayerInfo"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}},
                                                                      +    "audioPlayerState" : {{String}},
                                                                      +    "offset" : {{Integer}},
                                                                      +    "focusState" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"TemplateRuntime"String
                                                                      messageDescription.action"RenderPlayerInfo"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadRenderable player info metadata in structured JSON format + + String +
                                                                      audioPlayerStateThe state of the AudioPlayer +
                                                                      Accepted Values:
                                                                      + IDLE : Audio playback has not yet begun.
                                                                      + PLAYING : Audio is currently playing.
                                                                      + STOPPED : Audio playback is stopped, either from a stop directive or playback error.
                                                                      + PAUSED : Audio playback is paused.
                                                                      + BUFFER_UNDERRUN : Audio playback is stalled because a buffer underrun has occurred.
                                                                      + FINISHED : Audio playback is finished.
                                                                      + +
                                                                      + String +
                                                                      offsetThe offset in millisecond of the media that AudioPlayer is handling + + Integer +
                                                                      focusStateFocusState of the channel used by TemplateRuntime interface +
                                                                      Accepted Values:
                                                                      + FOREGROUND : Represents the highest focus a Channel can have.
                                                                      + BACKGROUND : Represents the intermediate level focus a Channel can have.
                                                                      + NONE : This focus is used to represent when a Channel is not being used.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "RenderPlayerInfo"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText",
                                                                      +    "audioPlayerState" : "IDLE",
                                                                      +    "offset" : 7,
                                                                      +    "focusState" : "FOREGROUND"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/docs/TemplateRuntime/RenderTemplateMessage.html b/extensions/aasb/docs/TemplateRuntime/RenderTemplateMessage.html new file mode 100644 index 000000000..e4c9aeba3 --- /dev/null +++ b/extensions/aasb/docs/TemplateRuntime/RenderTemplateMessage.html @@ -0,0 +1,1153 @@ + + + + + + + + + + + + +
                                                                      +

                                                                      AASB Documentation

                                                                      +ToEngine: + +Publish Message General Form + + +FromEngine: + + +Reply Message General Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      RenderTemplate

                                                                      +
                                                                      +

                                                                      Table Of Contents

                                                                      + +
                                                                      +
                                                                      + +
                                                                      +Sent from the engine.

                                                                      +Provides visual metadata associated with a user request to Alexa +

                                                                      JSON Structure

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : {{String}},
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "RenderTemplate"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : {{String}},
                                                                      +    "focusState" : {{String}}
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +

                                                                      Parameters

                                                                      +

                                                                      header

                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      version"3.0"String
                                                                      messageType"Publish"String
                                                                      idA string that will act as a unique identifier for this message + + String +
                                                                      messageDescriptionMeta information about the message + + Object +
                                                                      messageDescription.topic"TemplateRuntime"String
                                                                      messageDescription.action"RenderTemplate"String
                                                                      + +
                                                                      +

                                                                      payload

                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                      ParameterDescriptionType
                                                                      payloadRenderable template metadata in structured JSON format + + String +
                                                                      focusStateFocusState of the channel used by TemplateRuntime interface +
                                                                      Accepted Values:
                                                                      + FOREGROUND : Represents the highest focus a Channel can have.
                                                                      + BACKGROUND : Represents the intermediate level focus a Channel can have.
                                                                      + NONE : This focus is used to represent when a Channel is not being used.
                                                                      + +
                                                                      + String +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +

                                                                      JSON Example

                                                                      +
                                                                      +{
                                                                      +  "header" : {
                                                                      +    "version" : "3.0",
                                                                      +    "messageType" : "Publish",
                                                                      +    "id" : "id-SampleText",
                                                                      +    "messageDescription" : {
                                                                      +      "topic" : "TemplateRuntime",
                                                                      +      "action" : "RenderTemplate"
                                                                      +    }
                                                                      +  },
                                                                      +  "payload" : {
                                                                      +    "payload" : "payload-SampleText",
                                                                      +    "focusState" : "FOREGROUND"
                                                                      +  }
                                                                      +}
                                                                      +
                                                                      +
                                                                      + +
                                                                      + + + + + + diff --git a/extensions/aasb/meta-aac-aasb/conf/layer.conf b/extensions/aasb/meta-aac-aasb/conf/layer.conf new file mode 100644 index 000000000..97ede9ea1 --- /dev/null +++ b/extensions/aasb/meta-aac-aasb/conf/layer.conf @@ -0,0 +1 @@ +AASB ?= "ON" \ No newline at end of file diff --git a/modules/contact-uploader/CMakeLists.txt b/extensions/aasb/modules/aasb-address-book/CMakeLists.txt similarity index 60% rename from modules/contact-uploader/CMakeLists.txt rename to extensions/aasb/modules/aasb-address-book/CMakeLists.txt index f0d37ab23..b97e36ed7 100644 --- a/modules/contact-uploader/CMakeLists.txt +++ b/extensions/aasb/modules/aasb-address-book/CMakeLists.txt @@ -1,8 +1,8 @@ -# AACE ContactUploader +# AASB Addressbook cmake_minimum_required(VERSION 3.5 FATAL_ERROR) -project(AACEContactUploader LANGUAGES CXX) +project(AASBAddressBook LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -20,36 +20,28 @@ set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") if(AAC_ENABLE_ADDRESS_SANITIZER) - message(STATUS "Enabling Address Sanitizer for AACEContactUploader") + message(STATUS "Enabling Address Sanitizer for AASBAddressBook") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") endif() if(AAC_ENABLE_COVERAGE) - message(STATUS "Enabling coverage for Contact-uploader module.") + message(STATUS "Enabling coverage for AASBAddressBook.") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) endif() -if (AAC_EMIT_SENSITIVE_LOGS) - string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE_UPPER) - if (BUILD_TYPE_UPPER STREQUAL DEBUG) - message("WARNING: Logging of sensitive information enabled!") - add_definitions(-DAAC_EMIT_SENSITIVE_LOGS) - else() - message(FATAL_ERROR "FATAL_ERROR: AAC_EMIT_SENSITIVE_LOGS=ON in non-DEBUG build.") - endif() -endif() - -# ContactUploader module depends on Alexa module +# AASBAddressBook module depends on AACEAASB and AACEAddressBook module if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + include(${AAC_HOME}/share/cmake/AACEAddressBook.cmake) include(${AAC_HOME}/share/cmake/AACECore.cmake) include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) endif() -add_subdirectory(platform) +#add_subdirectory(platform) add_subdirectory(engine) install( - EXPORT AACEContactUploader + EXPORT AASBAddressBook DESTINATION share/cmake ) diff --git a/extensions/aasb/modules/aasb-address-book/aac-aasb-address-book.bb b/extensions/aasb/modules/aasb-address-book/aac-aasb-address-book.bb new file mode 100644 index 000000000..f280ec73f --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/aac-aasb-address-book.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB Address Book" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/AddressBook/AASBAddressBookEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-address-book aac-module-aasb nlohmann" + +inherit pkgconfig aac-module devlibsonly diff --git a/extensions/aasb/modules/aasb-address-book/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-address-book/engine/CMakeLists.txt new file mode 100644 index 000000000..b735efffb --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/CMakeLists.txt @@ -0,0 +1,60 @@ +# AASB Address Book Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/AddressBook/AASBAddressBookEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/AddressBook/AASBAddressBook.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_ADDRESSBOOK_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/AddressBook.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/AddressBookType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/ContactName.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/NavigationName.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/PhoneData.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/PostalAddress.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessageReply.h +) + +source_group("Address Book Message Headers" FILES ${AASB_ADDRESSBOOK_MESSAGES}) + +add_library(AASBAddressBookEngine SHARED + ${HEADERS} + ${AASB_ADDRESSBOOK_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAddressBookEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAddressBook.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBAddressBookEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBAddressBookEngine + PUBLIC + AACEAASBEngine + AACEAddressBookPlatform +) + +install( + TARGETS AASBAddressBookEngine + DESTINATION lib + EXPORT AASBAddressBook +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Engine/AddressBook/AASBAddressBook.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Engine/AddressBook/AASBAddressBook.h new file mode 100644 index 000000000..0d50abda9 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Engine/AddressBook/AASBAddressBook.h @@ -0,0 +1,58 @@ +/* + * Copyright 2018-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 AASB_ENGINE_ADDRESS_BOOK_AASB_ADDRESS_BOOK_H +#define AASB_ENGINE_ADDRESS_BOOK_AASB_ADDRESS_BOOK_H + +#include +#include +#include + +#include +#include +#include + +namespace aasb { +namespace engine { +namespace addressBook { + +/** + * Provides a AASB Address Book handler. + */ +class AASBAddressBook + : public aace::addressBook::AddressBook + , public std::enable_shared_from_this { +private: + AASBAddressBook() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::addressBook::AddressBook + bool getEntries(const std::string& addressBookSourceId, std::weak_ptr factory) override; + +private: + std::unordered_map m_addressBookCache; + std::weak_ptr m_messageBroker; +}; + +} // namespace addressBook +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_ADDRESS_BOOK_AASB_ADDRESS_BOOK_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Engine/AddressBook/AASBAddressBookEngineService.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Engine/AddressBook/AASBAddressBookEngineService.h new file mode 100644 index 000000000..81ae8ebc4 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Engine/AddressBook/AASBAddressBookEngineService.h @@ -0,0 +1,44 @@ +/* + * Copyright 2017-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 AASB_ENGINE_PHONE_CALL_CONTROLLER_AASB_PHONE_CALL_CONTROLLER_ENGINE_SERVICE_H +#define AASB_ENGINE_PHONE_CALL_CONTROLLER_AASB_PHONE_CALL_CONTROLLER_ENGINE_SERVICE_H + +#include +#include + +namespace aasb { +namespace engine { +namespace addressBook { + +class AASBAddressBookEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.addressBook", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBAddressBookEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBAddressBookEngineService() = default; +}; + +} // namespace addressBook +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessage.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessage.h new file mode 100644 index 000000000..f5f86530c --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessage.h @@ -0,0 +1,154 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_ADDADDRESSBOOKMESSAGE_H +#define ADDRESSBOOK_ADDADDRESSBOOKMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/AddressBook/AddressBook/AddressBookType.h" +#include "AASB/Message/AddressBook/AddressBook/AddressBook.h" + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct AddAddressBookMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AddressBook"; + return topic; + } + static const std::string& action() { + static std::string action = "AddAddressBook"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AddressBookType = ::aasb::message::addressBook::AddressBookType; + + std::string addressBookSourceId; + std::string name; + AddressBookType type; + AddressBook addressBookData; + }; + static const std::string& topic() { + static std::string topic = "AddressBook"; + return topic; + } + static const std::string& action() { + static std::string action = "AddAddressBook"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AddAddressBookMessage::Payload& c) { + j = nlohmann::json{ + {"addressBookSourceId", c.addressBookSourceId}, + {"name", c.name}, + {"type", c.type}, + {"addressBookData", c.addressBookData}, + }; +} +inline void from_json(const nlohmann::json& j, AddAddressBookMessage::Payload& c) { + j.at("addressBookSourceId").get_to(c.addressBookSourceId); + j.at("name").get_to(c.name); + j.at("type").get_to(c.type); + j.at("addressBookData").get_to(c.addressBookData); +} + +inline void to_json(nlohmann::json& j, const AddAddressBookMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AddAddressBookMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AddAddressBookMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AddAddressBookMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AddAddressBookMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AddAddressBookMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AddAddressBookMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_ADDADDRESSBOOKMESSAGE_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessageReply.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessageReply.h new file mode 100644 index 000000000..d4d313cee --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddAddressBookMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_ADDADDRESSBOOKMESSAGEREPLY_H +#define ADDRESSBOOK_ADDADDRESSBOOKMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct AddAddressBookMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AddressBook"; + return topic; + } + static const std::string& action() { + static std::string action = "AddAddressBook"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + bool success; + }; + static const std::string& topic() { + static std::string topic = "AddressBook"; + return topic; + } + static const std::string& action() { + static std::string action = "AddAddressBook"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AddAddressBookMessageReply::Payload& c) { + j = nlohmann::json{ + {"success", c.success}, + }; +} +inline void from_json(const nlohmann::json& j, AddAddressBookMessageReply::Payload& c) { + j.at("success").get_to(c.success); +} + +inline void to_json(nlohmann::json& j, const AddAddressBookMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, AddAddressBookMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const AddAddressBookMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AddAddressBookMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AddAddressBookMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AddAddressBookMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AddAddressBookMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_ADDADDRESSBOOKMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBook.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBook.h new file mode 100644 index 000000000..00b6136b8 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBook.h @@ -0,0 +1,79 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_ADDRESSBOOK_H +#define ADDRESSBOOK_ADDRESSBOOK_H + +#include +#include + +#include +#include +#include "AASB/Message/AddressBook/AddressBook/NavigationName.h" +#include "AASB/Message/AddressBook/AddressBook/ContactName.h" +#include "AASB/Message/AddressBook/AddressBook/PhoneData.h" +#include "AASB/Message/AddressBook/AddressBook/PostalAddress.h" + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct AddressBook { + std::string toString() const; + std::vector navigationNames; + std::vector contactNames; + std::vector phoneData; + std::vector postalAddresses; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AddressBook& c) { + j = nlohmann::json{ + {"navigationNames", c.navigationNames}, + {"contactNames", c.contactNames}, + {"phoneData", c.phoneData}, + {"postalAddresses", c.postalAddresses}, + }; +} +inline void from_json(const nlohmann::json& j, AddressBook& c) { + j.at("navigationNames").get_to(c.navigationNames); + j.at("contactNames").get_to(c.contactNames); + j.at("phoneData").get_to(c.phoneData); + j.at("postalAddresses").get_to(c.postalAddresses); +} + +inline std::string AddressBook::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_ADDRESSBOOK_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBookType.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBookType.h new file mode 100644 index 000000000..974980aef --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/AddressBookType.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_ADDRESSBOOKTYPE_H +#define ADDRESSBOOK_ADDRESSBOOKTYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace addressBook { + +//Enum Definition +enum class AddressBookType { + CONTACT, + NAVIGATION, +}; + +inline std::string toString(AddressBookType enumValue) { + switch (enumValue) { + case (AddressBookType::CONTACT): + return "CONTACT"; + case (AddressBookType::NAVIGATION): + return "NAVIGATION"; + } + throw std::runtime_error("invalidAddressBookTypeType"); +} + +inline AddressBookType toAddressBookType(const std::string& stringValue) { + static std::unordered_map map = { + {"CONTACT", AddressBookType::CONTACT}, + {"NAVIGATION", AddressBookType::NAVIGATION}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAddressBookTypeType"); +} + +inline void to_json(nlohmann::json& j, const AddressBookType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AddressBookType& c) { + c = toAddressBookType(j); +} + +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_ADDRESSBOOKTYPE_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/ContactName.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/ContactName.h new file mode 100644 index 000000000..47d1f85f7 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/ContactName.h @@ -0,0 +1,75 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_CONTACTNAME_H +#define ADDRESSBOOK_CONTACTNAME_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct ContactName { + std::string toString() const; + std::string entryId; + std::string firstName; + std::string lastName; + std::string nickname; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ContactName& c) { + j = nlohmann::json{ + {"entryId", c.entryId}, + {"firstName", c.firstName}, + {"lastName", c.lastName}, + {"nickname", c.nickname}, + }; +} +inline void from_json(const nlohmann::json& j, ContactName& c) { + j.at("entryId").get_to(c.entryId); + j.at("firstName").get_to(c.firstName); + j.at("lastName").get_to(c.lastName); + j.at("nickname").get_to(c.nickname); +} + +inline std::string ContactName::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_CONTACTNAME_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/NavigationName.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/NavigationName.h new file mode 100644 index 000000000..688d5a8a6 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/NavigationName.h @@ -0,0 +1,69 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_NAVIGATIONNAME_H +#define ADDRESSBOOK_NAVIGATIONNAME_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct NavigationName { + std::string toString() const; + std::string entryId; + std::string name; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const NavigationName& c) { + j = nlohmann::json{ + {"entryId", c.entryId}, + {"name", c.name}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationName& c) { + j.at("entryId").get_to(c.entryId); + j.at("name").get_to(c.name); +} + +inline std::string NavigationName::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_NAVIGATIONNAME_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PhoneData.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PhoneData.h new file mode 100644 index 000000000..d8dab22a9 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PhoneData.h @@ -0,0 +1,72 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_PHONEDATA_H +#define ADDRESSBOOK_PHONEDATA_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct PhoneData { + std::string toString() const; + std::string entryId; + std::string label; + std::string number; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PhoneData& c) { + j = nlohmann::json{ + {"entryId", c.entryId}, + {"label", c.label}, + {"number", c.number}, + }; +} +inline void from_json(const nlohmann::json& j, PhoneData& c) { + j.at("entryId").get_to(c.entryId); + j.at("label").get_to(c.label); + j.at("number").get_to(c.number); +} + +inline std::string PhoneData::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_PHONEDATA_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PostalAddress.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PostalAddress.h new file mode 100644 index 000000000..bd319f90c --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/PostalAddress.h @@ -0,0 +1,102 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_POSTALADDRESS_H +#define ADDRESSBOOK_POSTALADDRESS_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct PostalAddress { + std::string toString() const; + std::string entryId; + std::string label; + std::string addressLine1; + std::string addressLine2; + std::string addressLine3; + std::string city; + std::string stateOrRegion; + std::string districtOrCounty; + std::string postalCode; + std::string country; + float latitudeInDegrees; + float longitudeInDegrees; + float accuracyInMeters; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PostalAddress& c) { + j = nlohmann::json{ + {"entryId", c.entryId}, + {"label", c.label}, + {"addressLine1", c.addressLine1}, + {"addressLine2", c.addressLine2}, + {"addressLine3", c.addressLine3}, + {"city", c.city}, + {"stateOrRegion", c.stateOrRegion}, + {"districtOrCounty", c.districtOrCounty}, + {"postalCode", c.postalCode}, + {"country", c.country}, + {"latitudeInDegrees", c.latitudeInDegrees}, + {"longitudeInDegrees", c.longitudeInDegrees}, + {"accuracyInMeters", c.accuracyInMeters}, + }; +} +inline void from_json(const nlohmann::json& j, PostalAddress& c) { + j.at("entryId").get_to(c.entryId); + j.at("label").get_to(c.label); + j.at("addressLine1").get_to(c.addressLine1); + j.at("addressLine2").get_to(c.addressLine2); + j.at("addressLine3").get_to(c.addressLine3); + j.at("city").get_to(c.city); + j.at("stateOrRegion").get_to(c.stateOrRegion); + j.at("districtOrCounty").get_to(c.districtOrCounty); + j.at("postalCode").get_to(c.postalCode); + j.at("country").get_to(c.country); + j.at("latitudeInDegrees").get_to(c.latitudeInDegrees); + j.at("longitudeInDegrees").get_to(c.longitudeInDegrees); + j.at("accuracyInMeters").get_to(c.accuracyInMeters); +} + +inline std::string PostalAddress::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_POSTALADDRESS_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessage.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessage.h new file mode 100644 index 000000000..335ea1838 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_REMOVEADDRESSBOOKMESSAGE_H +#define ADDRESSBOOK_REMOVEADDRESSBOOKMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct RemoveAddressBookMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AddressBook"; + return topic; + } + static const std::string& action() { + static std::string action = "RemoveAddressBook"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string addressBookSourceId; + }; + static const std::string& topic() { + static std::string topic = "AddressBook"; + return topic; + } + static const std::string& action() { + static std::string action = "RemoveAddressBook"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RemoveAddressBookMessage::Payload& c) { + j = nlohmann::json{ + {"addressBookSourceId", c.addressBookSourceId}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAddressBookMessage::Payload& c) { + j.at("addressBookSourceId").get_to(c.addressBookSourceId); +} + +inline void to_json(nlohmann::json& j, const RemoveAddressBookMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAddressBookMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RemoveAddressBookMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAddressBookMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RemoveAddressBookMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAddressBookMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RemoveAddressBookMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_REMOVEADDRESSBOOKMESSAGE_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessageReply.h b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessageReply.h new file mode 100644 index 000000000..6ec4d8865 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/include/AASB/Message/AddressBook/AddressBook/RemoveAddressBookMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ADDRESSBOOK_REMOVEADDRESSBOOKMESSAGEREPLY_H +#define ADDRESSBOOK_REMOVEADDRESSBOOKMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace addressBook { +namespace addressBook { + +//Class Definition +struct RemoveAddressBookMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AddressBook"; + return topic; + } + static const std::string& action() { + static std::string action = "RemoveAddressBook"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + bool success; + }; + static const std::string& topic() { + static std::string topic = "AddressBook"; + return topic; + } + static const std::string& action() { + static std::string action = "RemoveAddressBook"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RemoveAddressBookMessageReply::Payload& c) { + j = nlohmann::json{ + {"success", c.success}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAddressBookMessageReply::Payload& c) { + j.at("success").get_to(c.success); +} + +inline void to_json(nlohmann::json& j, const RemoveAddressBookMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAddressBookMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const RemoveAddressBookMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAddressBookMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RemoveAddressBookMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAddressBookMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RemoveAddressBookMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace addressBook +} // namespace addressBook +} // namespace message +} // namespace aasb + +#endif // ADDRESSBOOK_REMOVEADDRESSBOOKMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-address-book/engine/src/AASBAddressBook.cpp b/extensions/aasb/modules/aasb-address-book/engine/src/AASBAddressBook.cpp new file mode 100644 index 000000000..6291be946 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/src/AASBAddressBook.cpp @@ -0,0 +1,183 @@ +/* + * Copyright 2018-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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace addressBook { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.addressbook.AASBAddressBook"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBAddressBook::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto handler = std::shared_ptr(new AASBAddressBook()); + + // initialize the handler + ThrowIfNot(handler->initialize(messageBroker), "initializeAASBAddressBookFailed"); + + return handler; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAddressBook::initialize(std::shared_ptr messageBroker) { + try { + m_messageBroker = messageBroker; + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::addressBook::addressBook::AddAddressBookMessage::topic(), + aasb::message::addressBook::addressBook::AddAddressBookMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::addressBook::addressBook::AddAddressBookMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->m_addressBookCache[payload.addressBookSourceId] = payload.addressBookData; + bool success = sp->addAddressBook( + payload.addressBookSourceId, payload.name, static_cast(payload.type)); + + auto m_messageBroker_lock = sp->m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::addressBook::addressBook::AddAddressBookMessageReply addAddressBookMessageReply; + addAddressBookMessageReply.header.messageDescription.replyToId = message.messageId(); + addAddressBookMessageReply.payload.success = success; + m_messageBroker_lock->publish(addAddressBookMessageReply.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "AddAddressBookMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::addressBook::addressBook::RemoveAddressBookMessage::topic(), + aasb::message::addressBook::addressBook::RemoveAddressBookMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::addressBook::addressBook::RemoveAddressBookMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->m_addressBookCache.erase(payload.addressBookSourceId); + bool success = sp->removeAddressBook(payload.addressBookSourceId); + + auto m_messageBroker_lock = sp->m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::addressBook::addressBook::RemoveAddressBookMessageReply + removeAddressBookMessageReply; + removeAddressBookMessageReply.header.messageDescription.replyToId = message.messageId(); + removeAddressBookMessageReply.payload.success = success; + m_messageBroker_lock->publish(removeAddressBookMessageReply.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "RemoveAddressBookMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::addressBook::AddressBook +// + +bool AASBAddressBook::getEntries( + const std::string& addressBookSourceId, + std::weak_ptr factory) { + try { + AACE_VERBOSE(LX(TAG)); + + //We send the entries through the cached address book. We do not do this over AASB messages as the address has already been sent at the start. + + auto sp = factory.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + AACE_VERBOSE(LX(TAG).d("addressBookSourceId", addressBookSourceId)); + + auto addressBookIter = m_addressBookCache.find(addressBookSourceId); + if (addressBookIter != m_addressBookCache.end()) { + const auto& addressBook = addressBookIter->second; + + for (const auto& navName : addressBook.navigationNames) { + AACE_VERBOSE(LX(TAG).d("adding navName", navName.name)); + sp->addName(navName.entryId, navName.name); + } + + for (const auto& contactName : addressBook.contactNames) { + AACE_VERBOSE(LX(TAG).d("adding contactName", contactName.firstName)); + sp->addName(contactName.entryId, contactName.firstName, contactName.lastName, contactName.nickname); + } + + for (const auto& phone : addressBook.phoneData) { + AACE_VERBOSE(LX(TAG).d("adding phone", phone.label)); + sp->addPhone(phone.entryId, phone.label, phone.number); + } + + for (const auto& postalAddress : addressBook.postalAddresses) { + AACE_VERBOSE(LX(TAG).d("adding postalAddress", postalAddress.label)); + sp->addPostalAddress( + postalAddress.entryId, + postalAddress.label, + postalAddress.addressLine1, + postalAddress.addressLine2, + postalAddress.addressLine3, + postalAddress.city, + postalAddress.stateOrRegion, + postalAddress.districtOrCounty, + postalAddress.postalCode, + postalAddress.country, + postalAddress.latitudeInDegrees, + postalAddress.longitudeInDegrees, + postalAddress.accuracyInMeters); + } + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace addressBook +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-address-book/engine/src/AASBAddressBookEngineService.cpp b/extensions/aasb/modules/aasb-address-book/engine/src/AASBAddressBookEngineService.cpp new file mode 100644 index 000000000..55a039890 --- /dev/null +++ b/extensions/aasb/modules/aasb-address-book/engine/src/AASBAddressBookEngineService.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace addressBook { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.addressbook.AASBAddressBookEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBAddressBookEngineService); + +AASBAddressBookEngineService::AASBAddressBookEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"AddressBook"}) { +} + +bool AASBAddressBookEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // AddressBook + if (isInterfaceEnabled("AddressBook")) { + auto addressBook = AASBAddressBook::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(addressBook, "invalidAddressBookHandler"); + getContext()->registerPlatformInterface(addressBook); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace addressBook +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/CMakeLists.txt b/extensions/aasb/modules/aasb-alexa/CMakeLists.txt new file mode 100644 index 000000000..b46866553 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/CMakeLists.txt @@ -0,0 +1,47 @@ +# AASB Alexa + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASBAlexa LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AASBAlexa") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AASBAlexa.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +# AASBAlexa module depends on AACEAASB and AACEAlexa module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) + include(${AAC_HOME}/share/cmake/AACECore.cmake) + include(${AAC_HOME}/share/cmake/AASBCore.cmake) +endif() + +#add_subdirectory(platform) +add_subdirectory(engine) + +install( + EXPORT AASBAlexa + DESTINATION share/cmake +) diff --git a/extensions/aasb/modules/aasb-alexa/aac-aasb-alexa.bb b/extensions/aasb/modules/aasb-alexa/aac-aasb-alexa.bb new file mode 100644 index 000000000..6d754301d --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/aac-aasb-alexa.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB Alexa" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/Alexa/AASBAlexaEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-alexa aac-module-aasb aac-aasb-core nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb-alexa/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-alexa/engine/CMakeLists.txt new file mode 100644 index 000000000..89d04eca1 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/CMakeLists.txt @@ -0,0 +1,193 @@ +# AASB Alexa Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBAlerts.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBAlexaClient.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBAlexaEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBAlexaSpeaker.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBAudioPlayer.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBAuthProvider.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBDoNotDisturb.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBEqualizerController.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBExternalMediaAdapter.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBGlobalPreset.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBLocalMediaSource.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBNotifications.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBPlaybackController.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBSpeechRecognizer.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBSpeechSynthesizer.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Alexa/AASBTemplateRuntime.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_ALEXA_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Alerts/AlertCreatedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Alerts/AlertDeletedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Alerts/AlertState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Alerts/AlertStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Alerts/LocalStopMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Alerts/RemoveAllAlertsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaClient/AuthError.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaClient/AuthState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaClient/AuthStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaClient/ConnectionChangedReason.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaClient/ConnectionStatus.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaClient/ConnectionStatusChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaClient/DialogState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaClient/DialogStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaSpeaker/LocalAdjustVolumeMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetMuteMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetVolumeMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerSettingsChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AudioPlayer/PlayerActivity.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AudioPlayer/PlayerActivityChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AuthProvider/AuthStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/DoNotDisturb/DoNotDisturbChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/DoNotDisturb/SetDoNotDisturbMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/EqualizerBand.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/LocalAdjustBandLevelsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/LocalResetBandsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/LocalSetBandLevelsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/SetBandLevelsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/EqualizerBand.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/LocalAdjustBandLevelsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/LocalResetBandsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/LocalSetBandLevelsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/EqualizerController/SetBandLevelsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/AdjustSeekMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizedPlayerInfo.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizeMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/DiscoveredPlayerInfo.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/ExternalMediaAdapterState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/Favorites.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/GetStateMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginCompleteMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutCompleteMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/MediaType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/Navigation.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/PlaybackStateExternal.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerErrorMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerEventMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/RequestTokenMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/SeekMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/SessionStateExternal.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/SetFocusMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/SupportedPlaybackOperation.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationData.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationMethod.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/ExternalMediaAdapter/VolumeChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/AdjustSeekMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/ContentSelector.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/GetSourceMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/LocalMediaSourceState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/MutedStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/PlaybackState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/PlayControlMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/PlayerErrorMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/PlayerEventMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/PlayMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/SeekMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/SessionState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/SetFocusMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/Source.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/LocalMediaSource/VolumeChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/GlobalPreset/SetGlobalPresetMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Notifications/IndicatorState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Notifications/SetIndicatorMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/Notifications/OnNotificationReceivedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/PlaybackController/ButtonPressedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/PlaybackController/PlaybackButton.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/PlaybackController/PlaybackToggle.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/PlaybackController/TogglePressedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/SpeechRecognizer/EndOfSpeechDetectedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/SpeechRecognizer/Initiator.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/SpeechRecognizer/StartCaptureMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/SpeechRecognizer/StopCaptureMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/SpeechRecognizer/WakewordDetectedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/TemplateRuntime/ClearPlayerInfoMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/TemplateRuntime/ClearTemplateMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/TemplateRuntime/DisplayCardClearedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/TemplateRuntime/RenderPlayerInfoMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Alexa/TemplateRuntime/RenderTemplateMessage.h +) + +source_group("Alexa Message Headers" FILES ${AASB_ALEXA_MESSAGES}) + +add_library(AASBAlexaEngine SHARED + ${HEADERS} + ${AASB_ALEXA_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAlerts.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAlexaClient.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAlexaEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAlexaSpeaker.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAudioPlayer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAuthProvider.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBDoNotDisturb.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBEqualizerController.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBExternalMediaAdapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBGlobalPreset.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBLocalMediaSource.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBNotifications.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBPlaybackController.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBSpeechSynthesizer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBSpeechRecognizer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBTemplateRuntime.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBAlexaEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBAlexaEngine + PUBLIC + AACEAASBEngine + AACEAlexaPlatform + AASBCoreEngine +) + +install( + TARGETS AASBAlexaEngine + DESTINATION lib + EXPORT AASBAlexa +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlerts.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlerts.h new file mode 100644 index 000000000..c4552dacd --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlerts.h @@ -0,0 +1,51 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_ALERTS_H +#define AASB_ENGINE_ALEXA_AASB_ALERTS_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBAlerts + : public aace::alexa::Alerts + , public std::enable_shared_from_this { +private: + AASBAlerts() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::Alerts + void alertStateChanged(const std::string& alertToken, AlertState state, const std::string& reason) override; + void alertCreated(const std::string& alertToken, const std::string& detailedInfo) override; + void alertDeleted(const std::string& alertToken) override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaClient.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaClient.h new file mode 100644 index 000000000..d8861a34a --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaClient.h @@ -0,0 +1,49 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_ALEXA_CLIENT_H +#define AASB_ENGINE_ALEXA_AASB_ALEXA_CLIENT_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBAlexaClient + : public aace::alexa::AlexaClient + , public std::enable_shared_from_this { +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::AASBAlexaClient + void dialogStateChanged(DialogState state) override; + void authStateChanged(AuthState state, AuthError error) override; + void connectionStatusChanged(ConnectionStatus status, ConnectionChangedReason reason) override; + +private: + AASBAlexaClient() = default; + bool initialize(std::shared_ptr messageBroker); + + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_ENGINE_ALEXA_AASB_ALEXA_CLIENT_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaEngineService.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaEngineService.h new file mode 100644 index 000000000..1bc9b5c9b --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaEngineService.h @@ -0,0 +1,70 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_ALEXA_ENGINE_SERVICE_H +#define AASB_ENGINE_ALEXA_AASB_ALEXA_ENGINE_SERVICE_H + +#include + +#include +#include + +#include "AASBLocalMediaSource.h" + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBAlexaEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE( + "aasb.alexa", + VERSION("1.0"), + DEPENDS(aace::engine::aasb::AASBEngineService), + DEPENDS(aasb::engine::audio::AASBAudioEngineService)) + +private: + AASBAlexaEngineService(const aace::engine::core::ServiceDescription& description); + + bool registerLocalMediaSourceMessageHandlers( + std::shared_ptr messageBroker); + +protected: + bool postRegister() override; + bool configureAASBInterface(const std::string& name, bool enabled, std::istream& configuration) override; + +private: + bool configureLocalMediaSource(std::istream& configuration); + +public: + virtual ~AASBAlexaEngineService() = default; + +private: + struct EnumHash { + template + std::size_t operator()(T t) const { + return static_cast(t); + } + }; + + std::unordered_map, EnumHash> + m_localMediaSourceMap; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaSpeaker.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaSpeaker.h new file mode 100644 index 000000000..b37435236 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAlexaSpeaker.h @@ -0,0 +1,47 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_ALEXA_SPEAKER_H +#define AASB_ENGINE_ALEXA_AASB_ALEXA_SPEAKER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBAlexaSpeaker + : public aace::alexa::AlexaSpeaker + , public std::enable_shared_from_this { +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::AASBAlexaSpeaker + void speakerSettingsChanged(SpeakerType type, bool local, int8_t volume, bool mute) override; + +private: + AASBAlexaSpeaker() = default; + bool initialize(std::shared_ptr messageBroker); + + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_ENGINE_ALEXA_AASB_ALEXA_CLIENT_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAudioPlayer.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAudioPlayer.h new file mode 100644 index 000000000..d5d9f4706 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAudioPlayer.h @@ -0,0 +1,49 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_AUDIO_PLAYER_H +#define AASB_ENGINE_ALEXA_AASB_AUDIO_PLAYER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBAudioPlayer + : public aace::alexa::AudioPlayer + , public std::enable_shared_from_this { +private: + AASBAudioPlayer() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::AudioPlayer + void playerActivityChanged(PlayerActivity state) override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_ENGINE_ALEXA_AASB_ALEXA_CLIENT_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAuthProvider.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAuthProvider.h new file mode 100644 index 000000000..8e6d780db --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBAuthProvider.h @@ -0,0 +1,53 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_AUTH_PROVIDER_H +#define AASB_ENGINE_ALEXA_AASB_AUTH_PROVIDER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBAuthProvider + : public aace::alexa::AuthProvider + , public std::enable_shared_from_this { +private: + AASBAuthProvider() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::AuthProvider + std::string getAuthToken() override; + AuthState getAuthState() override; + +private: + std::weak_ptr m_messageBroker; + + AuthState m_authState = AuthState::UNINITIALIZED; + std::string m_cachedAuthToken; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_ENGINE_ALEXA_AASB_AUTH_PROVIDER_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBDoNotDisturb.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBDoNotDisturb.h new file mode 100644 index 000000000..104dd9c40 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBDoNotDisturb.h @@ -0,0 +1,49 @@ +/* + * 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 AASB_ENGINE_ALEXA_AASB_DO_NOT_DISTURB_H +#define AASB_ENGINE_ALEXA_AASB_DO_NOT_DISTURB_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBDoNotDisturb + : public aace::alexa::DoNotDisturb + , public std::enable_shared_from_this { +private: + AASBDoNotDisturb() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::DoNotDisturb + void setDoNotDisturb(const bool doNotDisturb) override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_ENGINE_ALEXA_AASB_DO_NOT_DISTURB_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBEqualizerController.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBEqualizerController.h new file mode 100644 index 000000000..003389b23 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBEqualizerController.h @@ -0,0 +1,50 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_EQUALIZER_CONTROLLER_H +#define AASB_ENGINE_ALEXA_AASB_EQUALIZER_CONTROLLER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBEqualizerController + : public aace::alexa::EqualizerController + , public std::enable_shared_from_this { +private: + AASBEqualizerController() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::EqualizerController + void setBandLevels(const std::vector& bandLevels) override; + std::vector getBandLevels() override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBExternalMediaAdapter.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBExternalMediaAdapter.h new file mode 100644 index 000000000..611fb2165 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBExternalMediaAdapter.h @@ -0,0 +1,69 @@ +/* + * Copyright 2017-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 AASB_EXTERNAL_MEDIA_ADAPTER_H +#define AASB_EXTERNAL_MEDIA_ADAPTER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBExternalMediaAdapter + : public aace::alexa::ExternalMediaAdapter + , public std::enable_shared_from_this { +private: + AASBExternalMediaAdapter() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::ExternalMediaAdapter + bool login( + const std::string& localPlayerId, + const std::string& accessToken, + const std::string& userName, + bool forceLogin, + std::chrono::milliseconds tokenRefreshInterval) override; + bool logout(const std::string& localPlayerId) override; + bool play( + const std::string& localPlayerId, + const std::string& playContextToken, + int64_t index, + std::chrono::milliseconds offset, + bool preload, + Navigation navigation) override; + bool playControl(const std::string& localPlayerId, PlayControlType controlType) override; + bool seek(const std::string& localPlayerId, std::chrono::milliseconds offset) override; + bool adjustSeek(const std::string& localPlayerId, std::chrono::milliseconds deltaOffset) override; + bool authorize(const std::vector& authorizedPlayers) override; + bool getState(const std::string& localPlayerId, ExternalMediaAdapterState& state) override; + bool volumeChanged(float volume) override; + bool mutedStateChanged(MutedState state) override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_EXTERNAL_MEDIA_ADAPTER_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBGlobalPreset.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBGlobalPreset.h new file mode 100644 index 000000000..b34b62b65 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBGlobalPreset.h @@ -0,0 +1,47 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_ALEXA_GLOBAL_PRESET_H +#define AASB_ENGINE_ALEXA_AASB_ALEXA_GLOBAL_PRESET_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBGlobalPreset + : public aace::alexa::GlobalPreset + , public std::enable_shared_from_this { +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::AASBGlobalPreset + void setGlobalPreset(int preset) override; + +private: + AASBGlobalPreset() = default; + bool initialize(std::shared_ptr messageBroker); + + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_ENGINE_ALEXA_AASB_ALEXA_GLOBAL_PRESET_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBLocalMediaSource.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBLocalMediaSource.h new file mode 100644 index 000000000..3efd8a5a1 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBLocalMediaSource.h @@ -0,0 +1,55 @@ +/* + * Copyright 2017-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 AASB_LOCAL_MEDIA_SOURCE_H +#define AASB_LOCAL_MEDIA_SOURCE_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBLocalMediaSource + : public aace::alexa::LocalMediaSource + , public std::enable_shared_from_this { +private: + AASBLocalMediaSource(LocalMediaSource::Source source); + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + aace::alexa::LocalMediaSource::Source source, + std::shared_ptr messageBroker); + + // aace::alexa::LocalMediaSource + bool play(ContentSelector contentSelectorType, const std::string& payload) override; + bool playControl(aace::alexa::LocalMediaSource::PlayControlType controlType) override; + bool seek(std::chrono::milliseconds offset) override; + bool adjustSeek(std::chrono::milliseconds deltaOffset) override; + LocalMediaSourceState getState() override; + bool volumeChanged(float volume) override; + bool mutedStateChanged(aace::alexa::LocalMediaSource::MutedState state) override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_LOCAL_MEDIA_SOURCE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBNotifications.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBNotifications.h new file mode 100644 index 000000000..f3f37b840 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBNotifications.h @@ -0,0 +1,50 @@ +/* + * Copyright 2017-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 AASB_NOTIFICATIONS_H +#define AASB_NOTIFICATIONS_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBNotifications + : public aace::alexa::Notifications + , public std::enable_shared_from_this { +private: + AASBNotifications() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::Notifications + void setIndicator(aace::alexa::Notifications::IndicatorState state) override; + void onNotificationReceived() override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_NOTIFICATIONS_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBPlaybackController.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBPlaybackController.h new file mode 100644 index 000000000..6862a76d6 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBPlaybackController.h @@ -0,0 +1,43 @@ +/* + * Copyright 2017-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 AASB_PLAYBACK_CONTROLLER_H +#define AASB_PLAYBACK_CONTROLLER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBPlaybackController + : public aace::alexa::PlaybackController + , public std::enable_shared_from_this { +private: + AASBPlaybackController() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif //AASB_PLAYBACK_CONTROLLER_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBSpeechRecognizer.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBSpeechRecognizer.h new file mode 100644 index 000000000..c9435b24c --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBSpeechRecognizer.h @@ -0,0 +1,50 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_SPEECH_RECOGNIZER_H +#define AASB_ENGINE_ALEXA_AASB_SPEECH_RECOGNIZER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBSpeechRecognizer + : public aace::alexa::SpeechRecognizer + , public std::enable_shared_from_this { +private: + AASBSpeechRecognizer() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::alexa::SpeechRecognizer + bool wakewordDetected(const std::string& wakeword) override; + void endOfSpeechDetected() override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif diff --git a/platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/SpeechSynthesizerHandler.cpp b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBSpeechSynthesizer.h similarity index 51% rename from platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/SpeechSynthesizerHandler.cpp rename to extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBSpeechSynthesizer.h index 06dbf912e..f44f0dac3 100644 --- a/platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/aac-platform/alexa/src/SpeechSynthesizerHandler.cpp +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBSpeechSynthesizer.h @@ -1,5 +1,5 @@ /* - * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * Copyright 2017-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. @@ -12,23 +12,27 @@ * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ -#include "SpeechSynthesizerHandler.h" -#include "PlatformSpecificLoggingMacros.h" +#ifndef AASB_ENGINE_ALEXA_AASB_SPEECH_SYNTHESIZER_H +#define AASB_ENGINE_ALEXA_AASB_SPEECH_SYNTHESIZER_H + +#include +#include namespace aasb { +namespace engine { namespace alexa { -const std::string TAG = "aasb::alexa::SpeechSynthesizerHandler"; - -std::shared_ptr SpeechSynthesizerHandler::create() { - auto speechSynthesizerHandler = std::shared_ptr(new SpeechSynthesizerHandler()); +class AASBSpeechSynthesizer : public aace::alexa::SpeechSynthesizer { +private: + AASBSpeechSynthesizer() = default; - return speechSynthesizerHandler; -} - -SpeechSynthesizerHandler::SpeechSynthesizerHandler() : aace::alexa::SpeechSynthesizer() { -} +public: + static std::shared_ptr create(); +}; } // namespace alexa -} // namespace aasb \ No newline at end of file +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBTemplateRuntime.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBTemplateRuntime.h new file mode 100644 index 000000000..ce87d9386 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Engine/Alexa/AASBTemplateRuntime.h @@ -0,0 +1,55 @@ +/* + * Copyright 2017-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 AASB_ENGINE_ALEXA_AASB_TEMPLATE_RUNTIME_H +#define AASB_ENGINE_ALEXA_AASB_TEMPLATE_RUNTIME_H + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +class AASBTemplateRuntime + : public aace::alexa::TemplateRuntime + , public std::enable_shared_from_this { +private: + AASBTemplateRuntime() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + void renderTemplate(const std::string& payload, FocusState focusState) override; + void clearTemplate() override; + void renderPlayerInfo( + const std::string& payload, + PlayerActivity audioPlayerState, + std::chrono::milliseconds offset, + FocusState focusState) override; + void clearPlayerInfo() override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace alexa +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertCreatedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertCreatedMessage.h new file mode 100644 index 000000000..0be40d598 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertCreatedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALERTS_ALERTCREATEDMESSAGE_H +#define ALERTS_ALERTCREATEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace alerts { + +//Class Definition +struct AlertCreatedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "AlertCreated"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string alertToken; + std::string detailedInfo; + }; + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "AlertCreated"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AlertCreatedMessage::Payload& c) { + j = nlohmann::json{ + {"alertToken", c.alertToken}, + {"detailedInfo", c.detailedInfo}, + }; +} +inline void from_json(const nlohmann::json& j, AlertCreatedMessage::Payload& c) { + j.at("alertToken").get_to(c.alertToken); + j.at("detailedInfo").get_to(c.detailedInfo); +} + +inline void to_json(nlohmann::json& j, const AlertCreatedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AlertCreatedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AlertCreatedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AlertCreatedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AlertCreatedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AlertCreatedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AlertCreatedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alerts +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALERTS_ALERTCREATEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertDeletedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertDeletedMessage.h new file mode 100644 index 000000000..c95ac4eeb --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertDeletedMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALERTS_ALERTDELETEDMESSAGE_H +#define ALERTS_ALERTDELETEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace alerts { + +//Class Definition +struct AlertDeletedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "AlertDeleted"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string alertToken; + }; + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "AlertDeleted"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AlertDeletedMessage::Payload& c) { + j = nlohmann::json{ + {"alertToken", c.alertToken}, + }; +} +inline void from_json(const nlohmann::json& j, AlertDeletedMessage::Payload& c) { + j.at("alertToken").get_to(c.alertToken); +} + +inline void to_json(nlohmann::json& j, const AlertDeletedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AlertDeletedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AlertDeletedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AlertDeletedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AlertDeletedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AlertDeletedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AlertDeletedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alerts +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALERTS_ALERTDELETEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertState.h new file mode 100644 index 000000000..e8b9d3a4c --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertState.h @@ -0,0 +1,117 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALERTS_ALERTSTATE_H +#define ALERTS_ALERTSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class AlertState { + READY, + STARTED, + STOPPED, + SNOOZED, + COMPLETED, + PAST_DUE, + FOCUS_ENTERED_FOREGROUND, + FOCUS_ENTERED_BACKGROUND, + ERROR, + DELETED, + SCHEDULED_FOR_LATER, +}; + +inline std::string toString(AlertState enumValue) { + switch (enumValue) { + case (AlertState::READY): + return "READY"; + case (AlertState::STARTED): + return "STARTED"; + case (AlertState::STOPPED): + return "STOPPED"; + case (AlertState::SNOOZED): + return "SNOOZED"; + case (AlertState::COMPLETED): + return "COMPLETED"; + case (AlertState::PAST_DUE): + return "PAST_DUE"; + case (AlertState::FOCUS_ENTERED_FOREGROUND): + return "FOCUS_ENTERED_FOREGROUND"; + case (AlertState::FOCUS_ENTERED_BACKGROUND): + return "FOCUS_ENTERED_BACKGROUND"; + case (AlertState::ERROR): + return "ERROR"; + case (AlertState::DELETED): + return "DELETED"; + case (AlertState::SCHEDULED_FOR_LATER): + return "SCHEDULED_FOR_LATER"; + } + throw std::runtime_error("invalidAlertStateType"); +} + +inline AlertState toAlertState(const std::string& stringValue) { + static std::unordered_map map = { + {"READY", AlertState::READY}, + {"STARTED", AlertState::STARTED}, + {"STOPPED", AlertState::STOPPED}, + {"SNOOZED", AlertState::SNOOZED}, + {"COMPLETED", AlertState::COMPLETED}, + {"PAST_DUE", AlertState::PAST_DUE}, + {"FOCUS_ENTERED_FOREGROUND", AlertState::FOCUS_ENTERED_FOREGROUND}, + {"FOCUS_ENTERED_BACKGROUND", AlertState::FOCUS_ENTERED_BACKGROUND}, + {"ERROR", AlertState::ERROR}, + {"DELETED", AlertState::DELETED}, + {"SCHEDULED_FOR_LATER", AlertState::SCHEDULED_FOR_LATER}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAlertStateType"); +} + +inline void to_json(nlohmann::json& j, const AlertState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AlertState& c) { + c = toAlertState(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALERTS_ALERTSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertStateChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertStateChangedMessage.h new file mode 100644 index 000000000..3f2b3d939 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/AlertStateChangedMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALERTS_ALERTSTATECHANGEDMESSAGE_H +#define ALERTS_ALERTSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/Alerts/AlertState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace alerts { + +//Class Definition +struct AlertStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "AlertStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AlertState = ::aasb::message::alexa::AlertState; + + std::string alertToken; + AlertState state; + std::string reason; + }; + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "AlertStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AlertStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"alertToken", c.alertToken}, + {"state", c.state}, + {"reason", c.reason}, + }; +} +inline void from_json(const nlohmann::json& j, AlertStateChangedMessage::Payload& c) { + j.at("alertToken").get_to(c.alertToken); + j.at("state").get_to(c.state); + j.at("reason").get_to(c.reason); +} + +inline void to_json(nlohmann::json& j, const AlertStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AlertStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AlertStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AlertStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AlertStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AlertStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AlertStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alerts +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALERTS_ALERTSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/LocalStopMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/LocalStopMessage.h new file mode 100644 index 000000000..0df0f6474 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/LocalStopMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALERTS_LOCALSTOPMESSAGE_H +#define ALERTS_LOCALSTOPMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace alerts { + +//Class Definition +struct LocalStopMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalStop"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalStop"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LocalStopMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, LocalStopMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const LocalStopMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LocalStopMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LocalStopMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LocalStopMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LocalStopMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LocalStopMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LocalStopMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alerts +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALERTS_LOCALSTOPMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/RemoveAllAlertsMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/RemoveAllAlertsMessage.h new file mode 100644 index 000000000..8a363dd60 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Alerts/RemoveAllAlertsMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALERTS_REMOVEALLALERTSMESSAGE_H +#define ALERTS_REMOVEALLALERTSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace alerts { + +//Class Definition +struct RemoveAllAlertsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "RemoveAllAlerts"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "Alerts"; + return topic; + } + static const std::string& action() { + static std::string action = "RemoveAllAlerts"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RemoveAllAlertsMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, RemoveAllAlertsMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const RemoveAllAlertsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAllAlertsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RemoveAllAlertsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAllAlertsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RemoveAllAlertsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveAllAlertsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RemoveAllAlertsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alerts +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALERTS_REMOVEALLALERTSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthError.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthError.h new file mode 100644 index 000000000..83ba24f2b --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthError.h @@ -0,0 +1,129 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_AUTHERROR_H +#define ALEXACLIENT_AUTHERROR_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class AuthError { + NO_ERROR, + UNKNOWN_ERROR, + AUTHORIZATION_FAILED, + UNAUTHORIZED_CLIENT, + SERVER_ERROR, + INVALID_REQUEST, + INVALID_VALUE, + AUTHORIZATION_EXPIRED, + UNSUPPORTED_GRANT_TYPE, + INVALID_CODE_PAIR, + AUTHORIZATION_PENDING, + SLOW_DOWN, + INTERNAL_ERROR, + INVALID_CBL_CLIENT_ID, +}; + +inline std::string toString(AuthError enumValue) { + switch (enumValue) { + case (AuthError::NO_ERROR): + return "NO_ERROR"; + case (AuthError::UNKNOWN_ERROR): + return "UNKNOWN_ERROR"; + case (AuthError::AUTHORIZATION_FAILED): + return "AUTHORIZATION_FAILED"; + case (AuthError::UNAUTHORIZED_CLIENT): + return "UNAUTHORIZED_CLIENT"; + case (AuthError::SERVER_ERROR): + return "SERVER_ERROR"; + case (AuthError::INVALID_REQUEST): + return "INVALID_REQUEST"; + case (AuthError::INVALID_VALUE): + return "INVALID_VALUE"; + case (AuthError::AUTHORIZATION_EXPIRED): + return "AUTHORIZATION_EXPIRED"; + case (AuthError::UNSUPPORTED_GRANT_TYPE): + return "UNSUPPORTED_GRANT_TYPE"; + case (AuthError::INVALID_CODE_PAIR): + return "INVALID_CODE_PAIR"; + case (AuthError::AUTHORIZATION_PENDING): + return "AUTHORIZATION_PENDING"; + case (AuthError::SLOW_DOWN): + return "SLOW_DOWN"; + case (AuthError::INTERNAL_ERROR): + return "INTERNAL_ERROR"; + case (AuthError::INVALID_CBL_CLIENT_ID): + return "INVALID_CBL_CLIENT_ID"; + } + throw std::runtime_error("invalidAuthErrorType"); +} + +inline AuthError toAuthError(const std::string& stringValue) { + static std::unordered_map map = { + {"NO_ERROR", AuthError::NO_ERROR}, + {"UNKNOWN_ERROR", AuthError::UNKNOWN_ERROR}, + {"AUTHORIZATION_FAILED", AuthError::AUTHORIZATION_FAILED}, + {"UNAUTHORIZED_CLIENT", AuthError::UNAUTHORIZED_CLIENT}, + {"SERVER_ERROR", AuthError::SERVER_ERROR}, + {"INVALID_REQUEST", AuthError::INVALID_REQUEST}, + {"INVALID_VALUE", AuthError::INVALID_VALUE}, + {"AUTHORIZATION_EXPIRED", AuthError::AUTHORIZATION_EXPIRED}, + {"UNSUPPORTED_GRANT_TYPE", AuthError::UNSUPPORTED_GRANT_TYPE}, + {"INVALID_CODE_PAIR", AuthError::INVALID_CODE_PAIR}, + {"AUTHORIZATION_PENDING", AuthError::AUTHORIZATION_PENDING}, + {"SLOW_DOWN", AuthError::SLOW_DOWN}, + {"INTERNAL_ERROR", AuthError::INTERNAL_ERROR}, + {"INVALID_CBL_CLIENT_ID", AuthError::INVALID_CBL_CLIENT_ID}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAuthErrorType"); +} + +inline void to_json(nlohmann::json& j, const AuthError& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AuthError& c) { + c = toAuthError(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_AUTHERROR_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthState.h new file mode 100644 index 000000000..4e388c430 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthState.h @@ -0,0 +1,89 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_AUTHSTATE_H +#define ALEXACLIENT_AUTHSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class AuthState { + UNINITIALIZED, + REFRESHED, + EXPIRED, + UNRECOVERABLE_ERROR, +}; + +inline std::string toString(AuthState enumValue) { + switch (enumValue) { + case (AuthState::UNINITIALIZED): + return "UNINITIALIZED"; + case (AuthState::REFRESHED): + return "REFRESHED"; + case (AuthState::EXPIRED): + return "EXPIRED"; + case (AuthState::UNRECOVERABLE_ERROR): + return "UNRECOVERABLE_ERROR"; + } + throw std::runtime_error("invalidAuthStateType"); +} + +inline AuthState toAuthState(const std::string& stringValue) { + static std::unordered_map map = { + {"UNINITIALIZED", AuthState::UNINITIALIZED}, + {"REFRESHED", AuthState::REFRESHED}, + {"EXPIRED", AuthState::EXPIRED}, + {"UNRECOVERABLE_ERROR", AuthState::UNRECOVERABLE_ERROR}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAuthStateType"); +} + +inline void to_json(nlohmann::json& j, const AuthState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AuthState& c) { + c = toAuthState(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_AUTHSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthStateChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthStateChangedMessage.h new file mode 100644 index 000000000..3321a8586 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/AuthStateChangedMessage.h @@ -0,0 +1,149 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_AUTHSTATECHANGEDMESSAGE_H +#define ALEXACLIENT_AUTHSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaClient/AuthState.h" +#include "AASB/Message/Alexa/AlexaClient/AuthError.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace alexaClient { + +//Class Definition +struct AuthStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AlexaClient"; + return topic; + } + static const std::string& action() { + static std::string action = "AuthStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AuthState = ::aasb::message::alexa::AuthState; + using AuthError = ::aasb::message::alexa::AuthError; + + AuthState state; + AuthError error; + }; + static const std::string& topic() { + static std::string topic = "AlexaClient"; + return topic; + } + static const std::string& action() { + static std::string action = "AuthStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AuthStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + {"error", c.error}, + }; +} +inline void from_json(const nlohmann::json& j, AuthStateChangedMessage::Payload& c) { + j.at("state").get_to(c.state); + j.at("error").get_to(c.error); +} + +inline void to_json(nlohmann::json& j, const AuthStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AuthStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AuthStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AuthStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AuthStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AuthStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AuthStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexaClient +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_AUTHSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionChangedReason.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionChangedReason.h new file mode 100644 index 000000000..7b88d2f37 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionChangedReason.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_CONNECTIONCHANGEDREASON_H +#define ALEXACLIENT_CONNECTIONCHANGEDREASON_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class ConnectionChangedReason { + NONE, + SUCCESS, + UNRECOVERABLE_ERROR, + ACL_CLIENT_REQUEST, + ACL_DISABLED, + DNS_TIMEDOUT, + CONNECTION_TIMEDOUT, + CONNECTION_THROTTLED, + INVALID_AUTH, + PING_TIMEDOUT, + WRITE_TIMEDOUT, + READ_TIMEDOUT, + FAILURE_PROTOCOL_ERROR, + INTERNAL_ERROR, + SERVER_INTERNAL_ERROR, + SERVER_SIDE_DISCONNECT, + SERVER_ENDPOINT_CHANGED, +}; + +inline std::string toString(ConnectionChangedReason enumValue) { + switch (enumValue) { + case (ConnectionChangedReason::NONE): + return "NONE"; + case (ConnectionChangedReason::SUCCESS): + return "SUCCESS"; + case (ConnectionChangedReason::UNRECOVERABLE_ERROR): + return "UNRECOVERABLE_ERROR"; + case (ConnectionChangedReason::ACL_CLIENT_REQUEST): + return "ACL_CLIENT_REQUEST"; + case (ConnectionChangedReason::ACL_DISABLED): + return "ACL_DISABLED"; + case (ConnectionChangedReason::DNS_TIMEDOUT): + return "DNS_TIMEDOUT"; + case (ConnectionChangedReason::CONNECTION_TIMEDOUT): + return "CONNECTION_TIMEDOUT"; + case (ConnectionChangedReason::CONNECTION_THROTTLED): + return "CONNECTION_THROTTLED"; + case (ConnectionChangedReason::INVALID_AUTH): + return "INVALID_AUTH"; + case (ConnectionChangedReason::PING_TIMEDOUT): + return "PING_TIMEDOUT"; + case (ConnectionChangedReason::WRITE_TIMEDOUT): + return "WRITE_TIMEDOUT"; + case (ConnectionChangedReason::READ_TIMEDOUT): + return "READ_TIMEDOUT"; + case (ConnectionChangedReason::FAILURE_PROTOCOL_ERROR): + return "FAILURE_PROTOCOL_ERROR"; + case (ConnectionChangedReason::INTERNAL_ERROR): + return "INTERNAL_ERROR"; + case (ConnectionChangedReason::SERVER_INTERNAL_ERROR): + return "SERVER_INTERNAL_ERROR"; + case (ConnectionChangedReason::SERVER_SIDE_DISCONNECT): + return "SERVER_SIDE_DISCONNECT"; + case (ConnectionChangedReason::SERVER_ENDPOINT_CHANGED): + return "SERVER_ENDPOINT_CHANGED"; + } + throw std::runtime_error("invalidConnectionChangedReasonType"); +} + +inline ConnectionChangedReason toConnectionChangedReason(const std::string& stringValue) { + static std::unordered_map map = { + {"NONE", ConnectionChangedReason::NONE}, + {"SUCCESS", ConnectionChangedReason::SUCCESS}, + {"UNRECOVERABLE_ERROR", ConnectionChangedReason::UNRECOVERABLE_ERROR}, + {"ACL_CLIENT_REQUEST", ConnectionChangedReason::ACL_CLIENT_REQUEST}, + {"ACL_DISABLED", ConnectionChangedReason::ACL_DISABLED}, + {"DNS_TIMEDOUT", ConnectionChangedReason::DNS_TIMEDOUT}, + {"CONNECTION_TIMEDOUT", ConnectionChangedReason::CONNECTION_TIMEDOUT}, + {"CONNECTION_THROTTLED", ConnectionChangedReason::CONNECTION_THROTTLED}, + {"INVALID_AUTH", ConnectionChangedReason::INVALID_AUTH}, + {"PING_TIMEDOUT", ConnectionChangedReason::PING_TIMEDOUT}, + {"WRITE_TIMEDOUT", ConnectionChangedReason::WRITE_TIMEDOUT}, + {"READ_TIMEDOUT", ConnectionChangedReason::READ_TIMEDOUT}, + {"FAILURE_PROTOCOL_ERROR", ConnectionChangedReason::FAILURE_PROTOCOL_ERROR}, + {"INTERNAL_ERROR", ConnectionChangedReason::INTERNAL_ERROR}, + {"SERVER_INTERNAL_ERROR", ConnectionChangedReason::SERVER_INTERNAL_ERROR}, + {"SERVER_SIDE_DISCONNECT", ConnectionChangedReason::SERVER_SIDE_DISCONNECT}, + {"SERVER_ENDPOINT_CHANGED", ConnectionChangedReason::SERVER_ENDPOINT_CHANGED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidConnectionChangedReasonType"); +} + +inline void to_json(nlohmann::json& j, const ConnectionChangedReason& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ConnectionChangedReason& c) { + c = toConnectionChangedReason(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_CONNECTIONCHANGEDREASON_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatus.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatus.h new file mode 100644 index 000000000..85bba751a --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatus.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_CONNECTIONSTATUS_H +#define ALEXACLIENT_CONNECTIONSTATUS_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class ConnectionStatus { + DISCONNECTED, + PENDING, + CONNECTED, +}; + +inline std::string toString(ConnectionStatus enumValue) { + switch (enumValue) { + case (ConnectionStatus::DISCONNECTED): + return "DISCONNECTED"; + case (ConnectionStatus::PENDING): + return "PENDING"; + case (ConnectionStatus::CONNECTED): + return "CONNECTED"; + } + throw std::runtime_error("invalidConnectionStatusType"); +} + +inline ConnectionStatus toConnectionStatus(const std::string& stringValue) { + static std::unordered_map map = { + {"DISCONNECTED", ConnectionStatus::DISCONNECTED}, + {"PENDING", ConnectionStatus::PENDING}, + {"CONNECTED", ConnectionStatus::CONNECTED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidConnectionStatusType"); +} + +inline void to_json(nlohmann::json& j, const ConnectionStatus& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ConnectionStatus& c) { + c = toConnectionStatus(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_CONNECTIONSTATUS_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatusChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatusChangedMessage.h new file mode 100644 index 000000000..ef799865e --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/ConnectionStatusChangedMessage.h @@ -0,0 +1,149 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_CONNECTIONSTATUSCHANGEDMESSAGE_H +#define ALEXACLIENT_CONNECTIONSTATUSCHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaClient/ConnectionStatus.h" +#include "AASB/Message/Alexa/AlexaClient/ConnectionChangedReason.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace alexaClient { + +//Class Definition +struct ConnectionStatusChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AlexaClient"; + return topic; + } + static const std::string& action() { + static std::string action = "ConnectionStatusChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ConnectionStatus = ::aasb::message::alexa::ConnectionStatus; + using ConnectionChangedReason = ::aasb::message::alexa::ConnectionChangedReason; + + ConnectionStatus status; + ConnectionChangedReason reason; + }; + static const std::string& topic() { + static std::string topic = "AlexaClient"; + return topic; + } + static const std::string& action() { + static std::string action = "ConnectionStatusChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ConnectionStatusChangedMessage::Payload& c) { + j = nlohmann::json{ + {"status", c.status}, + {"reason", c.reason}, + }; +} +inline void from_json(const nlohmann::json& j, ConnectionStatusChangedMessage::Payload& c) { + j.at("status").get_to(c.status); + j.at("reason").get_to(c.reason); +} + +inline void to_json(nlohmann::json& j, const ConnectionStatusChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ConnectionStatusChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ConnectionStatusChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ConnectionStatusChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ConnectionStatusChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ConnectionStatusChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ConnectionStatusChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexaClient +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_CONNECTIONSTATUSCHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogState.h new file mode 100644 index 000000000..8dc201e02 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogState.h @@ -0,0 +1,93 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_DIALOGSTATE_H +#define ALEXACLIENT_DIALOGSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class DialogState { + IDLE, + LISTENING, + EXPECTING, + THINKING, + SPEAKING, +}; + +inline std::string toString(DialogState enumValue) { + switch (enumValue) { + case (DialogState::IDLE): + return "IDLE"; + case (DialogState::LISTENING): + return "LISTENING"; + case (DialogState::EXPECTING): + return "EXPECTING"; + case (DialogState::THINKING): + return "THINKING"; + case (DialogState::SPEAKING): + return "SPEAKING"; + } + throw std::runtime_error("invalidDialogStateType"); +} + +inline DialogState toDialogState(const std::string& stringValue) { + static std::unordered_map map = { + {"IDLE", DialogState::IDLE}, + {"LISTENING", DialogState::LISTENING}, + {"EXPECTING", DialogState::EXPECTING}, + {"THINKING", DialogState::THINKING}, + {"SPEAKING", DialogState::SPEAKING}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidDialogStateType"); +} + +inline void to_json(nlohmann::json& j, const DialogState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, DialogState& c) { + c = toDialogState(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_DIALOGSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogStateChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogStateChangedMessage.h new file mode 100644 index 000000000..cb6d61f89 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/DialogStateChangedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_DIALOGSTATECHANGEDMESSAGE_H +#define ALEXACLIENT_DIALOGSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaClient/DialogState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace alexaClient { + +//Class Definition +struct DialogStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AlexaClient"; + return topic; + } + static const std::string& action() { + static std::string action = "DialogStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using DialogState = ::aasb::message::alexa::DialogState; + + DialogState state; + }; + static const std::string& topic() { + static std::string topic = "AlexaClient"; + return topic; + } + static const std::string& action() { + static std::string action = "DialogStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const DialogStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, DialogStateChangedMessage::Payload& c) { + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const DialogStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, DialogStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const DialogStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, DialogStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const DialogStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, DialogStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string DialogStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexaClient +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_DIALOGSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/StopForegroundActivityMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/StopForegroundActivityMessage.h new file mode 100644 index 000000000..d78f0919e --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaClient/StopForegroundActivityMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXACLIENT_STOPFOREGROUNDACTIVITYMESSAGE_H +#define ALEXACLIENT_STOPFOREGROUNDACTIVITYMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace alexaClient { + +//Class Definition +struct StopForegroundActivityMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AlexaClient"; + return topic; + } + static const std::string& action() { + static std::string action = "StopForegroundActivity"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "AlexaClient"; + return topic; + } + static const std::string& action() { + static std::string action = "StopForegroundActivity"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StopForegroundActivityMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, StopForegroundActivityMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const StopForegroundActivityMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StopForegroundActivityMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StopForegroundActivityMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StopForegroundActivityMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StopForegroundActivityMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StopForegroundActivityMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StopForegroundActivityMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexaClient +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXACLIENT_STOPFOREGROUNDACTIVITYMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalAdjustVolumeMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalAdjustVolumeMessage.h new file mode 100644 index 000000000..e0f571fe7 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalAdjustVolumeMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXASPEAKER_LOCALADJUSTVOLUMEMESSAGE_H +#define ALEXASPEAKER_LOCALADJUSTVOLUMEMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace alexaSpeaker { + +//Class Definition +struct LocalAdjustVolumeMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AlexaSpeaker"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalAdjustVolume"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using SpeakerType = ::aasb::message::alexa::SpeakerType; + + SpeakerType type; + int delta; + }; + static const std::string& topic() { + static std::string topic = "AlexaSpeaker"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalAdjustVolume"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LocalAdjustVolumeMessage::Payload& c) { + j = nlohmann::json{ + {"type", c.type}, + {"delta", c.delta}, + }; +} +inline void from_json(const nlohmann::json& j, LocalAdjustVolumeMessage::Payload& c) { + j.at("type").get_to(c.type); + j.at("delta").get_to(c.delta); +} + +inline void to_json(nlohmann::json& j, const LocalAdjustVolumeMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LocalAdjustVolumeMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LocalAdjustVolumeMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LocalAdjustVolumeMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LocalAdjustVolumeMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LocalAdjustVolumeMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LocalAdjustVolumeMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexaSpeaker +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXASPEAKER_LOCALADJUSTVOLUMEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetMuteMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetMuteMessage.h new file mode 100644 index 000000000..ae89f5abf --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetMuteMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXASPEAKER_LOCALSETMUTEMESSAGE_H +#define ALEXASPEAKER_LOCALSETMUTEMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace alexaSpeaker { + +//Class Definition +struct LocalSetMuteMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AlexaSpeaker"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalSetMute"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using SpeakerType = ::aasb::message::alexa::SpeakerType; + + SpeakerType type; + bool mute; + }; + static const std::string& topic() { + static std::string topic = "AlexaSpeaker"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalSetMute"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LocalSetMuteMessage::Payload& c) { + j = nlohmann::json{ + {"type", c.type}, + {"mute", c.mute}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetMuteMessage::Payload& c) { + j.at("type").get_to(c.type); + j.at("mute").get_to(c.mute); +} + +inline void to_json(nlohmann::json& j, const LocalSetMuteMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetMuteMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LocalSetMuteMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetMuteMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LocalSetMuteMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetMuteMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LocalSetMuteMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexaSpeaker +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXASPEAKER_LOCALSETMUTEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetVolumeMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetVolumeMessage.h new file mode 100644 index 000000000..3bef6ae53 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/LocalSetVolumeMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXASPEAKER_LOCALSETVOLUMEMESSAGE_H +#define ALEXASPEAKER_LOCALSETVOLUMEMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace alexaSpeaker { + +//Class Definition +struct LocalSetVolumeMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AlexaSpeaker"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalSetVolume"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using SpeakerType = ::aasb::message::alexa::SpeakerType; + + SpeakerType type; + int volume; + }; + static const std::string& topic() { + static std::string topic = "AlexaSpeaker"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalSetVolume"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LocalSetVolumeMessage::Payload& c) { + j = nlohmann::json{ + {"type", c.type}, + {"volume", c.volume}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetVolumeMessage::Payload& c) { + j.at("type").get_to(c.type); + j.at("volume").get_to(c.volume); +} + +inline void to_json(nlohmann::json& j, const LocalSetVolumeMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetVolumeMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LocalSetVolumeMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetVolumeMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LocalSetVolumeMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetVolumeMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LocalSetVolumeMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexaSpeaker +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXASPEAKER_LOCALSETVOLUMEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerSettingsChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerSettingsChangedMessage.h new file mode 100644 index 000000000..2140647bc --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerSettingsChangedMessage.h @@ -0,0 +1,153 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXASPEAKER_SPEAKERSETTINGSCHANGEDMESSAGE_H +#define ALEXASPEAKER_SPEAKERSETTINGSCHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace alexaSpeaker { + +//Class Definition +struct SpeakerSettingsChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AlexaSpeaker"; + return topic; + } + static const std::string& action() { + static std::string action = "SpeakerSettingsChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using SpeakerType = ::aasb::message::alexa::SpeakerType; + + SpeakerType type; + bool local; + int volume; + bool mute; + }; + static const std::string& topic() { + static std::string topic = "AlexaSpeaker"; + return topic; + } + static const std::string& action() { + static std::string action = "SpeakerSettingsChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SpeakerSettingsChangedMessage::Payload& c) { + j = nlohmann::json{ + {"type", c.type}, + {"local", c.local}, + {"volume", c.volume}, + {"mute", c.mute}, + }; +} +inline void from_json(const nlohmann::json& j, SpeakerSettingsChangedMessage::Payload& c) { + j.at("type").get_to(c.type); + j.at("local").get_to(c.local); + j.at("volume").get_to(c.volume); + j.at("mute").get_to(c.mute); +} + +inline void to_json(nlohmann::json& j, const SpeakerSettingsChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SpeakerSettingsChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SpeakerSettingsChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SpeakerSettingsChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SpeakerSettingsChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SpeakerSettingsChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SpeakerSettingsChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexaSpeaker +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXASPEAKER_SPEAKERSETTINGSCHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h new file mode 100644 index 000000000..4504615c5 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AlexaSpeaker/SpeakerType.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef ALEXASPEAKER_SPEAKERTYPE_H +#define ALEXASPEAKER_SPEAKERTYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class SpeakerType { + ALEXA_VOLUME, + ALERTS_VOLUME, +}; + +inline std::string toString(SpeakerType enumValue) { + switch (enumValue) { + case (SpeakerType::ALEXA_VOLUME): + return "ALEXA_VOLUME"; + case (SpeakerType::ALERTS_VOLUME): + return "ALERTS_VOLUME"; + } + throw std::runtime_error("invalidSpeakerTypeType"); +} + +inline SpeakerType toSpeakerType(const std::string& stringValue) { + static std::unordered_map map = { + {"ALEXA_VOLUME", SpeakerType::ALEXA_VOLUME}, + {"ALERTS_VOLUME", SpeakerType::ALERTS_VOLUME}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidSpeakerTypeType"); +} + +inline void to_json(nlohmann::json& j, const SpeakerType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, SpeakerType& c) { + c = toSpeakerType(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // ALEXASPEAKER_SPEAKERTYPE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessage.h new file mode 100644 index 000000000..9f0c24de4 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOPLAYER_GETPLAYERDURATIONMESSAGE_H +#define AUDIOPLAYER_GETPLAYERDURATIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace audioPlayer { + +//Class Definition +struct GetPlayerDurationMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPlayerDuration"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPlayerDuration"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetPlayerDurationMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetPlayerDurationMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetPlayerDurationMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerDurationMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetPlayerDurationMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerDurationMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetPlayerDurationMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerDurationMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetPlayerDurationMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioPlayer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUDIOPLAYER_GETPLAYERDURATIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessageReply.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessageReply.h new file mode 100644 index 000000000..e4f9643d2 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerDurationMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOPLAYER_GETPLAYERDURATIONMESSAGEREPLY_H +#define AUDIOPLAYER_GETPLAYERDURATIONMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace audioPlayer { + +//Class Definition +struct GetPlayerDurationMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPlayerDuration"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + int playbackDuration; + }; + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPlayerDuration"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetPlayerDurationMessageReply::Payload& c) { + j = nlohmann::json{ + {"playbackDuration", c.playbackDuration}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerDurationMessageReply::Payload& c) { + j.at("playbackDuration").get_to(c.playbackDuration); +} + +inline void to_json(nlohmann::json& j, const GetPlayerDurationMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerDurationMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetPlayerDurationMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerDurationMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetPlayerDurationMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerDurationMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetPlayerDurationMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioPlayer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUDIOPLAYER_GETPLAYERDURATIONMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessage.h new file mode 100644 index 000000000..449e8b5a9 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOPLAYER_GETPLAYERPOSITIONMESSAGE_H +#define AUDIOPLAYER_GETPLAYERPOSITIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace audioPlayer { + +//Class Definition +struct GetPlayerPositionMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPlayerPosition"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPlayerPosition"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetPlayerPositionMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetPlayerPositionMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetPlayerPositionMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerPositionMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetPlayerPositionMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerPositionMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetPlayerPositionMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerPositionMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetPlayerPositionMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioPlayer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUDIOPLAYER_GETPLAYERPOSITIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessageReply.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessageReply.h new file mode 100644 index 000000000..3865d5ab6 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/GetPlayerPositionMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOPLAYER_GETPLAYERPOSITIONMESSAGEREPLY_H +#define AUDIOPLAYER_GETPLAYERPOSITIONMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace audioPlayer { + +//Class Definition +struct GetPlayerPositionMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPlayerPosition"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + int playbackPosition; + }; + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPlayerPosition"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetPlayerPositionMessageReply::Payload& c) { + j = nlohmann::json{ + {"playbackPosition", c.playbackPosition}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerPositionMessageReply::Payload& c) { + j.at("playbackPosition").get_to(c.playbackPosition); +} + +inline void to_json(nlohmann::json& j, const GetPlayerPositionMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerPositionMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetPlayerPositionMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerPositionMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetPlayerPositionMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetPlayerPositionMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetPlayerPositionMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioPlayer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUDIOPLAYER_GETPLAYERPOSITIONMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivity.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivity.h new file mode 100644 index 000000000..243913166 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivity.h @@ -0,0 +1,97 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOPLAYER_PLAYERACTIVITY_H +#define AUDIOPLAYER_PLAYERACTIVITY_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class PlayerActivity { + IDLE, + PLAYING, + STOPPED, + PAUSED, + BUFFER_UNDERRUN, + FINISHED, +}; + +inline std::string toString(PlayerActivity enumValue) { + switch (enumValue) { + case (PlayerActivity::IDLE): + return "IDLE"; + case (PlayerActivity::PLAYING): + return "PLAYING"; + case (PlayerActivity::STOPPED): + return "STOPPED"; + case (PlayerActivity::PAUSED): + return "PAUSED"; + case (PlayerActivity::BUFFER_UNDERRUN): + return "BUFFER_UNDERRUN"; + case (PlayerActivity::FINISHED): + return "FINISHED"; + } + throw std::runtime_error("invalidPlayerActivityType"); +} + +inline PlayerActivity toPlayerActivity(const std::string& stringValue) { + static std::unordered_map map = { + {"IDLE", PlayerActivity::IDLE}, + {"PLAYING", PlayerActivity::PLAYING}, + {"STOPPED", PlayerActivity::STOPPED}, + {"PAUSED", PlayerActivity::PAUSED}, + {"BUFFER_UNDERRUN", PlayerActivity::BUFFER_UNDERRUN}, + {"FINISHED", PlayerActivity::FINISHED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidPlayerActivityType"); +} + +inline void to_json(nlohmann::json& j, const PlayerActivity& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, PlayerActivity& c) { + c = toPlayerActivity(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUDIOPLAYER_PLAYERACTIVITY_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivityChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivityChangedMessage.h new file mode 100644 index 000000000..99979b24c --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AudioPlayer/PlayerActivityChangedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOPLAYER_PLAYERACTIVITYCHANGEDMESSAGE_H +#define AUDIOPLAYER_PLAYERACTIVITYCHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AudioPlayer/PlayerActivity.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace audioPlayer { + +//Class Definition +struct PlayerActivityChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerActivityChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using PlayerActivity = ::aasb::message::alexa::PlayerActivity; + + PlayerActivity state; + }; + static const std::string& topic() { + static std::string topic = "AudioPlayer"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerActivityChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayerActivityChangedMessage::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerActivityChangedMessage::Payload& c) { + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const PlayerActivityChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerActivityChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayerActivityChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerActivityChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayerActivityChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerActivityChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayerActivityChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioPlayer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUDIOPLAYER_PLAYERACTIVITYCHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/AuthStateChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/AuthStateChangedMessage.h new file mode 100644 index 000000000..3ee4d4f13 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/AuthStateChangedMessage.h @@ -0,0 +1,149 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUTHPROVIDER_AUTHSTATECHANGEDMESSAGE_H +#define AUTHPROVIDER_AUTHSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaClient/AuthState.h" +#include "AASB/Message/Alexa/AlexaClient/AuthError.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace authProvider { + +//Class Definition +struct AuthStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "AuthStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AuthState = ::aasb::message::alexa::AuthState; + using AuthError = ::aasb::message::alexa::AuthError; + + AuthState authState; + AuthError authError; + }; + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "AuthStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AuthStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"authState", c.authState}, + {"authError", c.authError}, + }; +} +inline void from_json(const nlohmann::json& j, AuthStateChangedMessage::Payload& c) { + j.at("authState").get_to(c.authState); + j.at("authError").get_to(c.authError); +} + +inline void to_json(nlohmann::json& j, const AuthStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AuthStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AuthStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AuthStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AuthStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AuthStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AuthStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace authProvider +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUTHPROVIDER_AUTHSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessage.h new file mode 100644 index 000000000..372a249f8 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUTHPROVIDER_GETAUTHSTATEMESSAGE_H +#define AUTHPROVIDER_GETAUTHSTATEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace authProvider { + +//Class Definition +struct GetAuthStateMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetAuthState"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetAuthState"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetAuthStateMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetAuthStateMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetAuthStateMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthStateMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetAuthStateMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthStateMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetAuthStateMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthStateMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetAuthStateMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace authProvider +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUTHPROVIDER_GETAUTHSTATEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessageReply.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessageReply.h new file mode 100644 index 000000000..0ebd6445a --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthStateMessageReply.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUTHPROVIDER_GETAUTHSTATEMESSAGEREPLY_H +#define AUTHPROVIDER_GETAUTHSTATEMESSAGEREPLY_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AlexaClient/AuthState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace authProvider { + +//Class Definition +struct GetAuthStateMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetAuthState"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AuthState = ::aasb::message::alexa::AuthState; + + AuthState state; + }; + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetAuthState"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetAuthStateMessageReply::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthStateMessageReply::Payload& c) { + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const GetAuthStateMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthStateMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetAuthStateMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthStateMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetAuthStateMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthStateMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetAuthStateMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace authProvider +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUTHPROVIDER_GETAUTHSTATEMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessage.h new file mode 100644 index 000000000..9948de693 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUTHPROVIDER_GETAUTHTOKENMESSAGE_H +#define AUTHPROVIDER_GETAUTHTOKENMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace authProvider { + +//Class Definition +struct GetAuthTokenMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetAuthToken"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetAuthToken"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetAuthTokenMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetAuthTokenMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetAuthTokenMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthTokenMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetAuthTokenMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthTokenMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetAuthTokenMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthTokenMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetAuthTokenMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace authProvider +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUTHPROVIDER_GETAUTHTOKENMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessageReply.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessageReply.h new file mode 100644 index 000000000..e9db39f91 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/AuthProvider/GetAuthTokenMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUTHPROVIDER_GETAUTHTOKENMESSAGEREPLY_H +#define AUTHPROVIDER_GETAUTHTOKENMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace authProvider { + +//Class Definition +struct GetAuthTokenMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetAuthToken"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string authToken; + }; + static const std::string& topic() { + static std::string topic = "AuthProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetAuthToken"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetAuthTokenMessageReply::Payload& c) { + j = nlohmann::json{ + {"authToken", c.authToken}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthTokenMessageReply::Payload& c) { + j.at("authToken").get_to(c.authToken); +} + +inline void to_json(nlohmann::json& j, const GetAuthTokenMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthTokenMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetAuthTokenMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthTokenMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetAuthTokenMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetAuthTokenMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetAuthTokenMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace authProvider +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // AUTHPROVIDER_GETAUTHTOKENMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/DoNotDisturbChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/DoNotDisturbChangedMessage.h new file mode 100644 index 000000000..8c4ccb41d --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/DoNotDisturbChangedMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef DONOTDISTURB_DONOTDISTURBCHANGEDMESSAGE_H +#define DONOTDISTURB_DONOTDISTURBCHANGEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace doNotDisturb { + +//Class Definition +struct DoNotDisturbChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "DoNotDisturb"; + return topic; + } + static const std::string& action() { + static std::string action = "DoNotDisturbChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + bool doNotDisturb; + }; + static const std::string& topic() { + static std::string topic = "DoNotDisturb"; + return topic; + } + static const std::string& action() { + static std::string action = "DoNotDisturbChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const DoNotDisturbChangedMessage::Payload& c) { + j = nlohmann::json{ + {"doNotDisturb", c.doNotDisturb}, + }; +} +inline void from_json(const nlohmann::json& j, DoNotDisturbChangedMessage::Payload& c) { + j.at("doNotDisturb").get_to(c.doNotDisturb); +} + +inline void to_json(nlohmann::json& j, const DoNotDisturbChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, DoNotDisturbChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const DoNotDisturbChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, DoNotDisturbChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const DoNotDisturbChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, DoNotDisturbChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string DoNotDisturbChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace doNotDisturb +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // DONOTDISTURB_DONOTDISTURBCHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/SetDoNotDisturbMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/SetDoNotDisturbMessage.h new file mode 100644 index 000000000..744ab1581 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/DoNotDisturb/SetDoNotDisturbMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef DONOTDISTURB_SETDONOTDISTURBMESSAGE_H +#define DONOTDISTURB_SETDONOTDISTURBMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace doNotDisturb { + +//Class Definition +struct SetDoNotDisturbMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "DoNotDisturb"; + return topic; + } + static const std::string& action() { + static std::string action = "SetDoNotDisturb"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + bool doNotDisturb; + }; + static const std::string& topic() { + static std::string topic = "DoNotDisturb"; + return topic; + } + static const std::string& action() { + static std::string action = "SetDoNotDisturb"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetDoNotDisturbMessage::Payload& c) { + j = nlohmann::json{ + {"doNotDisturb", c.doNotDisturb}, + }; +} +inline void from_json(const nlohmann::json& j, SetDoNotDisturbMessage::Payload& c) { + j.at("doNotDisturb").get_to(c.doNotDisturb); +} + +inline void to_json(nlohmann::json& j, const SetDoNotDisturbMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetDoNotDisturbMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetDoNotDisturbMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetDoNotDisturbMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetDoNotDisturbMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetDoNotDisturbMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetDoNotDisturbMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace doNotDisturb +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // DONOTDISTURB_SETDONOTDISTURBMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBand.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBand.h new file mode 100644 index 000000000..e6034b4ec --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBand.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EQUALIZERCONTROLLER_EQUALIZERBAND_H +#define EQUALIZERCONTROLLER_EQUALIZERBAND_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class EqualizerBand { + BASS, + MIDRANGE, + TREBLE, +}; + +inline std::string toString(EqualizerBand enumValue) { + switch (enumValue) { + case (EqualizerBand::BASS): + return "BASS"; + case (EqualizerBand::MIDRANGE): + return "MIDRANGE"; + case (EqualizerBand::TREBLE): + return "TREBLE"; + } + throw std::runtime_error("invalidEqualizerBandType"); +} + +inline EqualizerBand toEqualizerBand(const std::string& stringValue) { + static std::unordered_map map = { + {"BASS", EqualizerBand::BASS}, + {"MIDRANGE", EqualizerBand::MIDRANGE}, + {"TREBLE", EqualizerBand::TREBLE}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidEqualizerBandType"); +} + +inline void to_json(nlohmann::json& j, const EqualizerBand& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, EqualizerBand& c) { + c = toEqualizerBand(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EQUALIZERCONTROLLER_EQUALIZERBAND_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h new file mode 100644 index 000000000..b6cda50c8 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h @@ -0,0 +1,70 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EQUALIZERCONTROLLER_EQUALIZERBANDLEVEL_H +#define EQUALIZERCONTROLLER_EQUALIZERBANDLEVEL_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/EqualizerController/EqualizerBand.h" + +namespace aasb { +namespace message { +namespace alexa { + +//Class Definition +struct EqualizerBandLevel { + using EqualizerBand = ::aasb::message::alexa::EqualizerBand; + + std::string toString() const; + EqualizerBand band; + int level; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const EqualizerBandLevel& c) { + j = nlohmann::json{ + {"band", c.band}, + {"level", c.level}, + }; +} +inline void from_json(const nlohmann::json& j, EqualizerBandLevel& c) { + j.at("band").get_to(c.band); + j.at("level").get_to(c.level); +} + +inline std::string EqualizerBandLevel::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EQUALIZERCONTROLLER_EQUALIZERBANDLEVEL_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessage.h new file mode 100644 index 000000000..bcdffded8 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EQUALIZERCONTROLLER_GETBANDLEVELSMESSAGE_H +#define EQUALIZERCONTROLLER_GETBANDLEVELSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace equalizerController { + +//Class Definition +struct GetBandLevelsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "GetBandLevels"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "GetBandLevels"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetBandLevelsMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetBandLevelsMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetBandLevelsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetBandLevelsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetBandLevelsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetBandLevelsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetBandLevelsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetBandLevelsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetBandLevelsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace equalizerController +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EQUALIZERCONTROLLER_GETBANDLEVELSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessageReply.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessageReply.h new file mode 100644 index 000000000..33d9867f4 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/GetBandLevelsMessageReply.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EQUALIZERCONTROLLER_GETBANDLEVELSMESSAGEREPLY_H +#define EQUALIZERCONTROLLER_GETBANDLEVELSMESSAGEREPLY_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace equalizerController { + +//Class Definition +struct GetBandLevelsMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "GetBandLevels"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using EqualizerBandLevel = ::aasb::message::alexa::EqualizerBandLevel; + + std::vector bandLevels; + }; + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "GetBandLevels"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetBandLevelsMessageReply::Payload& c) { + j = nlohmann::json{ + {"bandLevels", c.bandLevels}, + }; +} +inline void from_json(const nlohmann::json& j, GetBandLevelsMessageReply::Payload& c) { + j.at("bandLevels").get_to(c.bandLevels); +} + +inline void to_json(nlohmann::json& j, const GetBandLevelsMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetBandLevelsMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetBandLevelsMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetBandLevelsMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetBandLevelsMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetBandLevelsMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetBandLevelsMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace equalizerController +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EQUALIZERCONTROLLER_GETBANDLEVELSMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalAdjustBandLevelsMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalAdjustBandLevelsMessage.h new file mode 100644 index 000000000..8343cfa6e --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalAdjustBandLevelsMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EQUALIZERCONTROLLER_LOCALADJUSTBANDLEVELSMESSAGE_H +#define EQUALIZERCONTROLLER_LOCALADJUSTBANDLEVELSMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace equalizerController { + +//Class Definition +struct LocalAdjustBandLevelsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalAdjustBandLevels"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using EqualizerBandLevel = ::aasb::message::alexa::EqualizerBandLevel; + + std::vector bandAdjustments; + }; + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalAdjustBandLevels"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LocalAdjustBandLevelsMessage::Payload& c) { + j = nlohmann::json{ + {"bandAdjustments", c.bandAdjustments}, + }; +} +inline void from_json(const nlohmann::json& j, LocalAdjustBandLevelsMessage::Payload& c) { + j.at("bandAdjustments").get_to(c.bandAdjustments); +} + +inline void to_json(nlohmann::json& j, const LocalAdjustBandLevelsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LocalAdjustBandLevelsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LocalAdjustBandLevelsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LocalAdjustBandLevelsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LocalAdjustBandLevelsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LocalAdjustBandLevelsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LocalAdjustBandLevelsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace equalizerController +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EQUALIZERCONTROLLER_LOCALADJUSTBANDLEVELSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalResetBandsMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalResetBandsMessage.h new file mode 100644 index 000000000..120fe6385 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalResetBandsMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EQUALIZERCONTROLLER_LOCALRESETBANDSMESSAGE_H +#define EQUALIZERCONTROLLER_LOCALRESETBANDSMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/EqualizerController/EqualizerBand.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace equalizerController { + +//Class Definition +struct LocalResetBandsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalResetBands"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using EqualizerBand = ::aasb::message::alexa::EqualizerBand; + + std::vector bands; + }; + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalResetBands"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LocalResetBandsMessage::Payload& c) { + j = nlohmann::json{ + {"bands", c.bands}, + }; +} +inline void from_json(const nlohmann::json& j, LocalResetBandsMessage::Payload& c) { + j.at("bands").get_to(c.bands); +} + +inline void to_json(nlohmann::json& j, const LocalResetBandsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LocalResetBandsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LocalResetBandsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LocalResetBandsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LocalResetBandsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LocalResetBandsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LocalResetBandsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace equalizerController +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EQUALIZERCONTROLLER_LOCALRESETBANDSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalSetBandLevelsMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalSetBandLevelsMessage.h new file mode 100644 index 000000000..1c397086c --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/LocalSetBandLevelsMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EQUALIZERCONTROLLER_LOCALSETBANDLEVELSMESSAGE_H +#define EQUALIZERCONTROLLER_LOCALSETBANDLEVELSMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace equalizerController { + +//Class Definition +struct LocalSetBandLevelsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalSetBandLevels"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using EqualizerBandLevel = ::aasb::message::alexa::EqualizerBandLevel; + + std::vector bandLevels; + }; + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "LocalSetBandLevels"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LocalSetBandLevelsMessage::Payload& c) { + j = nlohmann::json{ + {"bandLevels", c.bandLevels}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetBandLevelsMessage::Payload& c) { + j.at("bandLevels").get_to(c.bandLevels); +} + +inline void to_json(nlohmann::json& j, const LocalSetBandLevelsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetBandLevelsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LocalSetBandLevelsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetBandLevelsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LocalSetBandLevelsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LocalSetBandLevelsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LocalSetBandLevelsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace equalizerController +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EQUALIZERCONTROLLER_LOCALSETBANDLEVELSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/SetBandLevelsMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/SetBandLevelsMessage.h new file mode 100644 index 000000000..2652641c7 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/EqualizerController/SetBandLevelsMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EQUALIZERCONTROLLER_SETBANDLEVELSMESSAGE_H +#define EQUALIZERCONTROLLER_SETBANDLEVELSMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/EqualizerController/EqualizerBandLevel.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace equalizerController { + +//Class Definition +struct SetBandLevelsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "SetBandLevels"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using EqualizerBandLevel = ::aasb::message::alexa::EqualizerBandLevel; + + std::vector bandLevels; + }; + static const std::string& topic() { + static std::string topic = "EqualizerController"; + return topic; + } + static const std::string& action() { + static std::string action = "SetBandLevels"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetBandLevelsMessage::Payload& c) { + j = nlohmann::json{ + {"bandLevels", c.bandLevels}, + }; +} +inline void from_json(const nlohmann::json& j, SetBandLevelsMessage::Payload& c) { + j.at("bandLevels").get_to(c.bandLevels); +} + +inline void to_json(nlohmann::json& j, const SetBandLevelsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetBandLevelsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetBandLevelsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetBandLevelsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetBandLevelsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetBandLevelsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetBandLevelsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace equalizerController +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EQUALIZERCONTROLLER_SETBANDLEVELSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AdjustSeekMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AdjustSeekMessage.h new file mode 100644 index 000000000..ecf0737b6 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AdjustSeekMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_ADJUSTSEEKMESSAGE_H +#define EXTERNALMEDIAADAPTER_ADJUSTSEEKMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct AdjustSeekMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustSeek"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + int deltaOffset; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustSeek"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AdjustSeekMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"deltaOffset", c.deltaOffset}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustSeekMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("deltaOffset").get_to(c.deltaOffset); +} + +inline void to_json(nlohmann::json& j, const AdjustSeekMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustSeekMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AdjustSeekMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustSeekMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AdjustSeekMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustSeekMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AdjustSeekMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_ADJUSTSEEKMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizeMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizeMessage.h new file mode 100644 index 000000000..40a2eac95 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizeMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_AUTHORIZEMESSAGE_H +#define EXTERNALMEDIAADAPTER_AUTHORIZEMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/AuthorizedPlayerInfo.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct AuthorizeMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Authorize"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AuthorizedPlayerInfo = ::aasb::message::alexa::AuthorizedPlayerInfo; + + std::vector authorizedPlayers; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Authorize"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AuthorizeMessage::Payload& c) { + j = nlohmann::json{ + {"authorizedPlayers", c.authorizedPlayers}, + }; +} +inline void from_json(const nlohmann::json& j, AuthorizeMessage::Payload& c) { + j.at("authorizedPlayers").get_to(c.authorizedPlayers); +} + +inline void to_json(nlohmann::json& j, const AuthorizeMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AuthorizeMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AuthorizeMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AuthorizeMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AuthorizeMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AuthorizeMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AuthorizeMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_AUTHORIZEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizedPlayerInfo.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizedPlayerInfo.h new file mode 100644 index 000000000..bfc0d55ec --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/AuthorizedPlayerInfo.h @@ -0,0 +1,67 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_AUTHORIZEDPLAYERINFO_H +#define EXTERNALMEDIAADAPTER_AUTHORIZEDPLAYERINFO_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Class Definition +struct AuthorizedPlayerInfo { + std::string toString() const; + std::string localPlayerId; + bool authorized; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AuthorizedPlayerInfo& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"authorized", c.authorized}, + }; +} +inline void from_json(const nlohmann::json& j, AuthorizedPlayerInfo& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("authorized").get_to(c.authorized); +} + +inline std::string AuthorizedPlayerInfo::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_AUTHORIZEDPLAYERINFO_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/DiscoveredPlayerInfo.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/DiscoveredPlayerInfo.h new file mode 100644 index 000000000..720339c19 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/DiscoveredPlayerInfo.h @@ -0,0 +1,77 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_DISCOVEREDPLAYERINFO_H +#define EXTERNALMEDIAADAPTER_DISCOVEREDPLAYERINFO_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/ValidationMethod.h" +#include "AASB/Message/Alexa/ExternalMediaAdapter/ValidationData.h" + +namespace aasb { +namespace message { +namespace alexa { + +//Class Definition +struct DiscoveredPlayerInfo { + using ValidationMethod = ::aasb::message::alexa::ValidationMethod; + + std::string toString() const; + std::string localPlayerId; + std::string spiVersion; + ValidationMethod validationMethod; + std::vector validationData; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const DiscoveredPlayerInfo& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"spiVersion", c.spiVersion}, + {"validationMethod", c.validationMethod}, + {"validationData", c.validationData}, + }; +} +inline void from_json(const nlohmann::json& j, DiscoveredPlayerInfo& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("spiVersion").get_to(c.spiVersion); + j.at("validationMethod").get_to(c.validationMethod); + j.at("validationData").get_to(c.validationData); +} + +inline std::string DiscoveredPlayerInfo::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_DISCOVEREDPLAYERINFO_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ExternalMediaAdapterState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ExternalMediaAdapterState.h new file mode 100644 index 000000000..dd0d1e553 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ExternalMediaAdapterState.h @@ -0,0 +1,69 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_EXTERNALMEDIAADAPTERSTATE_H +#define EXTERNALMEDIAADAPTER_EXTERNALMEDIAADAPTERSTATE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/SessionStateExternal.h" +#include "AASB/Message/Alexa/ExternalMediaAdapter/PlaybackStateExternal.h" + +namespace aasb { +namespace message { +namespace alexa { + +//Class Definition +struct ExternalMediaAdapterState { + std::string toString() const; + SessionStateExternal sessionState; + PlaybackStateExternal playbackState; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ExternalMediaAdapterState& c) { + j = nlohmann::json{ + {"sessionState", c.sessionState}, + {"playbackState", c.playbackState}, + }; +} +inline void from_json(const nlohmann::json& j, ExternalMediaAdapterState& c) { + j.at("sessionState").get_to(c.sessionState); + j.at("playbackState").get_to(c.playbackState); +} + +inline std::string ExternalMediaAdapterState::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_EXTERNALMEDIAADAPTERSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Favorites.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Favorites.h new file mode 100644 index 000000000..90e9807fd --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Favorites.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_FAVORITES_H +#define EXTERNALMEDIAADAPTER_FAVORITES_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class Favorites { + FAVORITED, + UNFAVORITED, + NOT_RATED, +}; + +inline std::string toString(Favorites enumValue) { + switch (enumValue) { + case (Favorites::FAVORITED): + return "FAVORITED"; + case (Favorites::UNFAVORITED): + return "UNFAVORITED"; + case (Favorites::NOT_RATED): + return "NOT_RATED"; + } + throw std::runtime_error("invalidFavoritesType"); +} + +inline Favorites toFavorites(const std::string& stringValue) { + static std::unordered_map map = { + {"FAVORITED", Favorites::FAVORITED}, + {"UNFAVORITED", Favorites::UNFAVORITED}, + {"NOT_RATED", Favorites::NOT_RATED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidFavoritesType"); +} + +inline void to_json(nlohmann::json& j, const Favorites& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, Favorites& c) { + c = toFavorites(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_FAVORITES_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/GetStateMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/GetStateMessage.h new file mode 100644 index 000000000..134d39a48 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/GetStateMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_GETSTATEMESSAGE_H +#define EXTERNALMEDIAADAPTER_GETSTATEMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/ExternalMediaAdapterState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct GetStateMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "GetState"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ExternalMediaAdapterState = ::aasb::message::alexa::ExternalMediaAdapterState; + + std::string localPlayerId; + ExternalMediaAdapterState state; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "GetState"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetStateMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const GetStateMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetStateMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetStateMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetStateMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_GETSTATEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginCompleteMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginCompleteMessage.h new file mode 100644 index 000000000..8be0619c8 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginCompleteMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_LOGINCOMPLETEMESSAGE_H +#define EXTERNALMEDIAADAPTER_LOGINCOMPLETEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct LoginCompleteMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "LoginComplete"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "LoginComplete"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LoginCompleteMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + }; +} +inline void from_json(const nlohmann::json& j, LoginCompleteMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); +} + +inline void to_json(nlohmann::json& j, const LoginCompleteMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LoginCompleteMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LoginCompleteMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LoginCompleteMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LoginCompleteMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LoginCompleteMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LoginCompleteMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_LOGINCOMPLETEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginMessage.h new file mode 100644 index 000000000..cfd713db3 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LoginMessage.h @@ -0,0 +1,153 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_LOGINMESSAGE_H +#define EXTERNALMEDIAADAPTER_LOGINMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct LoginMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Login"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + std::string accessToken; + std::string userName; + bool forceLogin; + int tokenRefreshInterval; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Login"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LoginMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"accessToken", c.accessToken}, + {"userName", c.userName}, + {"forceLogin", c.forceLogin}, + {"tokenRefreshInterval", c.tokenRefreshInterval}, + }; +} +inline void from_json(const nlohmann::json& j, LoginMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("accessToken").get_to(c.accessToken); + j.at("userName").get_to(c.userName); + j.at("forceLogin").get_to(c.forceLogin); + j.at("tokenRefreshInterval").get_to(c.tokenRefreshInterval); +} + +inline void to_json(nlohmann::json& j, const LoginMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LoginMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LoginMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LoginMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LoginMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LoginMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LoginMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_LOGINMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutCompleteMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutCompleteMessage.h new file mode 100644 index 000000000..7f90c2439 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutCompleteMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_LOGOUTCOMPLETEMESSAGE_H +#define EXTERNALMEDIAADAPTER_LOGOUTCOMPLETEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct LogoutCompleteMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "LogoutComplete"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "LogoutComplete"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LogoutCompleteMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + }; +} +inline void from_json(const nlohmann::json& j, LogoutCompleteMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); +} + +inline void to_json(nlohmann::json& j, const LogoutCompleteMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LogoutCompleteMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LogoutCompleteMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LogoutCompleteMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LogoutCompleteMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LogoutCompleteMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LogoutCompleteMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_LOGOUTCOMPLETEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutMessage.h new file mode 100644 index 000000000..749dd2aff --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/LogoutMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_LOGOUTMESSAGE_H +#define EXTERNALMEDIAADAPTER_LOGOUTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct LogoutMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Logout"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Logout"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LogoutMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + }; +} +inline void from_json(const nlohmann::json& j, LogoutMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); +} + +inline void to_json(nlohmann::json& j, const LogoutMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, LogoutMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const LogoutMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, LogoutMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const LogoutMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, LogoutMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string LogoutMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_LOGOUTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MediaType.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MediaType.h new file mode 100644 index 000000000..6c7e35628 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MediaType.h @@ -0,0 +1,97 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_MEDIATYPE_H +#define EXTERNALMEDIAADAPTER_MEDIATYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class MediaType { + TRACK, + PODCAST, + STATION, + AD, + SAMPLE, + OTHER, +}; + +inline std::string toString(MediaType enumValue) { + switch (enumValue) { + case (MediaType::TRACK): + return "TRACK"; + case (MediaType::PODCAST): + return "PODCAST"; + case (MediaType::STATION): + return "STATION"; + case (MediaType::AD): + return "AD"; + case (MediaType::SAMPLE): + return "SAMPLE"; + case (MediaType::OTHER): + return "OTHER"; + } + throw std::runtime_error("invalidMediaTypeType"); +} + +inline MediaType toMediaType(const std::string& stringValue) { + static std::unordered_map map = { + {"TRACK", MediaType::TRACK}, + {"PODCAST", MediaType::PODCAST}, + {"STATION", MediaType::STATION}, + {"AD", MediaType::AD}, + {"SAMPLE", MediaType::SAMPLE}, + {"OTHER", MediaType::OTHER}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidMediaTypeType"); +} + +inline void to_json(nlohmann::json& j, const MediaType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, MediaType& c) { + c = toMediaType(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_MEDIATYPE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedState.h new file mode 100644 index 000000000..1b769d083 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedState.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_MUTEDSTATE_H +#define EXTERNALMEDIAADAPTER_MUTEDSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class MutedState { + MUTED, + UNMUTED, +}; + +inline std::string toString(MutedState enumValue) { + switch (enumValue) { + case (MutedState::MUTED): + return "MUTED"; + case (MutedState::UNMUTED): + return "UNMUTED"; + } + throw std::runtime_error("invalidMutedStateType"); +} + +inline MutedState toMutedState(const std::string& stringValue) { + static std::unordered_map map = { + {"MUTED", MutedState::MUTED}, + {"UNMUTED", MutedState::UNMUTED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidMutedStateType"); +} + +inline void to_json(nlohmann::json& j, const MutedState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, MutedState& c) { + c = toMutedState(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_MUTEDSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedStateChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedStateChangedMessage.h new file mode 100644 index 000000000..328f5469f --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/MutedStateChangedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_MUTEDSTATECHANGEDMESSAGE_H +#define EXTERNALMEDIAADAPTER_MUTEDSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/MutedState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct MutedStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "MutedStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using MutedState = ::aasb::message::alexa::MutedState; + + MutedState state; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "MutedStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Payload& c) { + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string MutedStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_MUTEDSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Navigation.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Navigation.h new file mode 100644 index 000000000..50e1c87d1 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/Navigation.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_NAVIGATION_H +#define EXTERNALMEDIAADAPTER_NAVIGATION_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class Navigation { + DEFAULT, + NONE, + FOREGROUND, +}; + +inline std::string toString(Navigation enumValue) { + switch (enumValue) { + case (Navigation::DEFAULT): + return "DEFAULT"; + case (Navigation::NONE): + return "NONE"; + case (Navigation::FOREGROUND): + return "FOREGROUND"; + } + throw std::runtime_error("invalidNavigationType"); +} + +inline Navigation toNavigation(const std::string& stringValue) { + static std::unordered_map map = { + {"DEFAULT", Navigation::DEFAULT}, + {"NONE", Navigation::NONE}, + {"FOREGROUND", Navigation::FOREGROUND}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidNavigationType"); +} + +inline void to_json(nlohmann::json& j, const Navigation& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, Navigation& c) { + c = toNavigation(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_NAVIGATION_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlMessage.h new file mode 100644 index 000000000..112021604 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_PLAYCONTROLMESSAGE_H +#define EXTERNALMEDIAADAPTER_PLAYCONTROLMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/PlayControlType.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct PlayControlMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayControl"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using PlayControlType = ::aasb::message::alexa::PlayControlType; + + std::string localPlayerId; + PlayControlType controlType; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayControl"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayControlMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"controlType", c.controlType}, + }; +} +inline void from_json(const nlohmann::json& j, PlayControlMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("controlType").get_to(c.controlType); +} + +inline void to_json(nlohmann::json& j, const PlayControlMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayControlMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayControlMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayControlMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayControlMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayControlMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayControlMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_PLAYCONTROLMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlType.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlType.h new file mode 100644 index 000000000..ecc9c4f2b --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayControlType.h @@ -0,0 +1,133 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_PLAYCONTROLTYPE_H +#define EXTERNALMEDIAADAPTER_PLAYCONTROLTYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class PlayControlType { + PAUSE, + RESUME, + STOP, + NEXT, + PREVIOUS, + START_OVER, + FAST_FORWARD, + REWIND, + ENABLE_REPEAT_ONE, + ENABLE_REPEAT, + DISABLE_REPEAT, + ENABLE_SHUFFLE, + DISABLE_SHUFFLE, + FAVORITE, + UNFAVORITE, +}; + +inline std::string toString(PlayControlType enumValue) { + switch (enumValue) { + case (PlayControlType::PAUSE): + return "PAUSE"; + case (PlayControlType::RESUME): + return "RESUME"; + case (PlayControlType::STOP): + return "STOP"; + case (PlayControlType::NEXT): + return "NEXT"; + case (PlayControlType::PREVIOUS): + return "PREVIOUS"; + case (PlayControlType::START_OVER): + return "START_OVER"; + case (PlayControlType::FAST_FORWARD): + return "FAST_FORWARD"; + case (PlayControlType::REWIND): + return "REWIND"; + case (PlayControlType::ENABLE_REPEAT_ONE): + return "ENABLE_REPEAT_ONE"; + case (PlayControlType::ENABLE_REPEAT): + return "ENABLE_REPEAT"; + case (PlayControlType::DISABLE_REPEAT): + return "DISABLE_REPEAT"; + case (PlayControlType::ENABLE_SHUFFLE): + return "ENABLE_SHUFFLE"; + case (PlayControlType::DISABLE_SHUFFLE): + return "DISABLE_SHUFFLE"; + case (PlayControlType::FAVORITE): + return "FAVORITE"; + case (PlayControlType::UNFAVORITE): + return "UNFAVORITE"; + } + throw std::runtime_error("invalidPlayControlTypeType"); +} + +inline PlayControlType toPlayControlType(const std::string& stringValue) { + static std::unordered_map map = { + {"PAUSE", PlayControlType::PAUSE}, + {"RESUME", PlayControlType::RESUME}, + {"STOP", PlayControlType::STOP}, + {"NEXT", PlayControlType::NEXT}, + {"PREVIOUS", PlayControlType::PREVIOUS}, + {"START_OVER", PlayControlType::START_OVER}, + {"FAST_FORWARD", PlayControlType::FAST_FORWARD}, + {"REWIND", PlayControlType::REWIND}, + {"ENABLE_REPEAT_ONE", PlayControlType::ENABLE_REPEAT_ONE}, + {"ENABLE_REPEAT", PlayControlType::ENABLE_REPEAT}, + {"DISABLE_REPEAT", PlayControlType::DISABLE_REPEAT}, + {"ENABLE_SHUFFLE", PlayControlType::ENABLE_SHUFFLE}, + {"DISABLE_SHUFFLE", PlayControlType::DISABLE_SHUFFLE}, + {"FAVORITE", PlayControlType::FAVORITE}, + {"UNFAVORITE", PlayControlType::UNFAVORITE}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidPlayControlTypeType"); +} + +inline void to_json(nlohmann::json& j, const PlayControlType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, PlayControlType& c) { + c = toPlayControlType(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_PLAYCONTROLTYPE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayMessage.h new file mode 100644 index 000000000..4e61f814e --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayMessage.h @@ -0,0 +1,159 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_PLAYMESSAGE_H +#define EXTERNALMEDIAADAPTER_PLAYMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/Navigation.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct PlayMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Play"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Navigation = ::aasb::message::alexa::Navigation; + + std::string localPlayerId; + std::string playContextToken; + int index; + int offset; + bool preload; + Navigation navigation; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Play"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"playContextToken", c.playContextToken}, + {"index", c.index}, + {"offset", c.offset}, + {"preload", c.preload}, + {"navigation", c.navigation}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("playContextToken").get_to(c.playContextToken); + j.at("index").get_to(c.index); + j.at("offset").get_to(c.offset); + j.at("preload").get_to(c.preload); + j.at("navigation").get_to(c.navigation); +} + +inline void to_json(nlohmann::json& j, const PlayMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_PLAYMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlaybackStateExternal.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlaybackStateExternal.h new file mode 100644 index 000000000..57d4597d8 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlaybackStateExternal.h @@ -0,0 +1,140 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_PLAYBACKSTATEEXTERNAL_H +#define EXTERNALMEDIAADAPTER_PLAYBACKSTATEEXTERNAL_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/SupportedPlaybackOperation.h" +#include "AASB/Message/Alexa/ExternalMediaAdapter/Favorites.h" +#include "AASB/Message/Alexa/ExternalMediaAdapter/MediaType.h" + +namespace aasb { +namespace message { +namespace alexa { + +//Class Definition +struct PlaybackStateExternal { + using SupportedPlaybackOperation = ::aasb::message::alexa::SupportedPlaybackOperation; + using Favorites = ::aasb::message::alexa::Favorites; + using MediaType = ::aasb::message::alexa::MediaType; + + std::string toString() const; + std::string state; + std::vector supportedOperations; + int trackOffset; + bool shuffleEnabled; + bool repeatEnabled; + Favorites favorites; + std::string type; + std::string playbackSource; + std::string playbackSourceId; + std::string trackName; + std::string trackId; + std::string trackNumber; + std::string artistName; + std::string artistId; + std::string albumName; + std::string albumId; + std::string tinyURL; + std::string smallURL; + std::string mediumURL; + std::string largeURL; + std::string coverId; + std::string mediaProvider; + MediaType mediaType; + int duration; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlaybackStateExternal& c) { + j = nlohmann::json{ + {"state", c.state}, + {"supportedOperations", c.supportedOperations}, + {"trackOffset", c.trackOffset}, + {"shuffleEnabled", c.shuffleEnabled}, + {"repeatEnabled", c.repeatEnabled}, + {"favorites", c.favorites}, + {"type", c.type}, + {"playbackSource", c.playbackSource}, + {"playbackSourceId", c.playbackSourceId}, + {"trackName", c.trackName}, + {"trackId", c.trackId}, + {"trackNumber", c.trackNumber}, + {"artistName", c.artistName}, + {"artistId", c.artistId}, + {"albumName", c.albumName}, + {"albumId", c.albumId}, + {"tinyURL", c.tinyURL}, + {"smallURL", c.smallURL}, + {"mediumURL", c.mediumURL}, + {"largeURL", c.largeURL}, + {"coverId", c.coverId}, + {"mediaProvider", c.mediaProvider}, + {"mediaType", c.mediaType}, + {"duration", c.duration}, + }; +} +inline void from_json(const nlohmann::json& j, PlaybackStateExternal& c) { + j.at("state").get_to(c.state); + j.at("supportedOperations").get_to(c.supportedOperations); + j.at("trackOffset").get_to(c.trackOffset); + j.at("shuffleEnabled").get_to(c.shuffleEnabled); + j.at("repeatEnabled").get_to(c.repeatEnabled); + j.at("favorites").get_to(c.favorites); + j.at("type").get_to(c.type); + j.at("playbackSource").get_to(c.playbackSource); + j.at("playbackSourceId").get_to(c.playbackSourceId); + j.at("trackName").get_to(c.trackName); + j.at("trackId").get_to(c.trackId); + j.at("trackNumber").get_to(c.trackNumber); + j.at("artistName").get_to(c.artistName); + j.at("artistId").get_to(c.artistId); + j.at("albumName").get_to(c.albumName); + j.at("albumId").get_to(c.albumId); + j.at("tinyURL").get_to(c.tinyURL); + j.at("smallURL").get_to(c.smallURL); + j.at("mediumURL").get_to(c.mediumURL); + j.at("largeURL").get_to(c.largeURL); + j.at("coverId").get_to(c.coverId); + j.at("mediaProvider").get_to(c.mediaProvider); + j.at("mediaType").get_to(c.mediaType); + j.at("duration").get_to(c.duration); +} + +inline std::string PlaybackStateExternal::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_PLAYBACKSTATEEXTERNAL_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerErrorMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerErrorMessage.h new file mode 100644 index 000000000..894e7abce --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerErrorMessage.h @@ -0,0 +1,153 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_PLAYERERRORMESSAGE_H +#define EXTERNALMEDIAADAPTER_PLAYERERRORMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct PlayerErrorMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerError"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + std::string errorName; + int code; + std::string description; + bool fatal; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerError"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayerErrorMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"errorName", c.errorName}, + {"code", c.code}, + {"description", c.description}, + {"fatal", c.fatal}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerErrorMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("errorName").get_to(c.errorName); + j.at("code").get_to(c.code); + j.at("description").get_to(c.description); + j.at("fatal").get_to(c.fatal); +} + +inline void to_json(nlohmann::json& j, const PlayerErrorMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerErrorMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayerErrorMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerErrorMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayerErrorMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerErrorMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayerErrorMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_PLAYERERRORMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerEventMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerEventMessage.h new file mode 100644 index 000000000..b67e9b8bc --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/PlayerEventMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_PLAYEREVENTMESSAGE_H +#define EXTERNALMEDIAADAPTER_PLAYEREVENTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct PlayerEventMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerEvent"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + std::string eventName; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerEvent"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayerEventMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"eventName", c.eventName}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerEventMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("eventName").get_to(c.eventName); +} + +inline void to_json(nlohmann::json& j, const PlayerEventMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerEventMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayerEventMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerEventMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayerEventMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerEventMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayerEventMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_PLAYEREVENTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.h new file mode 100644 index 000000000..fa387ed9b --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RemoveDiscoveredPlayerMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_REMOVEDISCOVEREDPLAYERMESSAGE_H +#define EXTERNALMEDIAADAPTER_REMOVEDISCOVEREDPLAYERMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct RemoveDiscoveredPlayerMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "RemoveDiscoveredPlayer"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "RemoveDiscoveredPlayer"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RemoveDiscoveredPlayerMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveDiscoveredPlayerMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); +} + +inline void to_json(nlohmann::json& j, const RemoveDiscoveredPlayerMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveDiscoveredPlayerMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RemoveDiscoveredPlayerMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveDiscoveredPlayerMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RemoveDiscoveredPlayerMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RemoveDiscoveredPlayerMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RemoveDiscoveredPlayerMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_REMOVEDISCOVEREDPLAYERMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.h new file mode 100644 index 000000000..02167c092 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ReportDiscoveredPlayersMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_REPORTDISCOVEREDPLAYERSMESSAGE_H +#define EXTERNALMEDIAADAPTER_REPORTDISCOVEREDPLAYERSMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/DiscoveredPlayerInfo.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct ReportDiscoveredPlayersMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "ReportDiscoveredPlayers"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using DiscoveredPlayerInfo = ::aasb::message::alexa::DiscoveredPlayerInfo; + + std::vector discoveredPlayers; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "ReportDiscoveredPlayers"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ReportDiscoveredPlayersMessage::Payload& c) { + j = nlohmann::json{ + {"discoveredPlayers", c.discoveredPlayers}, + }; +} +inline void from_json(const nlohmann::json& j, ReportDiscoveredPlayersMessage::Payload& c) { + j.at("discoveredPlayers").get_to(c.discoveredPlayers); +} + +inline void to_json(nlohmann::json& j, const ReportDiscoveredPlayersMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ReportDiscoveredPlayersMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ReportDiscoveredPlayersMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ReportDiscoveredPlayersMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ReportDiscoveredPlayersMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ReportDiscoveredPlayersMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ReportDiscoveredPlayersMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_REPORTDISCOVEREDPLAYERSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RequestTokenMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RequestTokenMessage.h new file mode 100644 index 000000000..68dae41d8 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/RequestTokenMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_REQUESTTOKENMESSAGE_H +#define EXTERNALMEDIAADAPTER_REQUESTTOKENMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct RequestTokenMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "RequestToken"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "RequestToken"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RequestTokenMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + }; +} +inline void from_json(const nlohmann::json& j, RequestTokenMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); +} + +inline void to_json(nlohmann::json& j, const RequestTokenMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RequestTokenMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RequestTokenMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RequestTokenMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RequestTokenMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RequestTokenMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RequestTokenMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_REQUESTTOKENMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SeekMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SeekMessage.h new file mode 100644 index 000000000..4957efcfe --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SeekMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_SEEKMESSAGE_H +#define EXTERNALMEDIAADAPTER_SEEKMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct SeekMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Seek"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + int offset; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "Seek"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SeekMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + {"offset", c.offset}, + }; +} +inline void from_json(const nlohmann::json& j, SeekMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); + j.at("offset").get_to(c.offset); +} + +inline void to_json(nlohmann::json& j, const SeekMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SeekMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SeekMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SeekMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SeekMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SeekMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SeekMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_SEEKMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SessionStateExternal.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SessionStateExternal.h new file mode 100644 index 000000000..bd1e9abb5 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SessionStateExternal.h @@ -0,0 +1,91 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_SESSIONSTATEEXTERNAL_H +#define EXTERNALMEDIAADAPTER_SESSIONSTATEEXTERNAL_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Class Definition +struct SessionStateExternal { + std::string toString() const; + std::string endpointId; + bool loggedIn; + std::string userName; + bool isGuest; + bool launched; + bool active; + std::string accessToken; + int64_t tokenRefreshInterval; + std::string playerCookie; + std::string spiVersion; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SessionStateExternal& c) { + j = nlohmann::json{ + {"endpointId", c.endpointId}, + {"loggedIn", c.loggedIn}, + {"userName", c.userName}, + {"isGuest", c.isGuest}, + {"launched", c.launched}, + {"active", c.active}, + {"accessToken", c.accessToken}, + {"tokenRefreshInterval", c.tokenRefreshInterval}, + {"playerCookie", c.playerCookie}, + {"spiVersion", c.spiVersion}, + }; +} +inline void from_json(const nlohmann::json& j, SessionStateExternal& c) { + j.at("endpointId").get_to(c.endpointId); + j.at("loggedIn").get_to(c.loggedIn); + j.at("userName").get_to(c.userName); + j.at("isGuest").get_to(c.isGuest); + j.at("launched").get_to(c.launched); + j.at("active").get_to(c.active); + j.at("accessToken").get_to(c.accessToken); + j.at("tokenRefreshInterval").get_to(c.tokenRefreshInterval); + j.at("playerCookie").get_to(c.playerCookie); + j.at("spiVersion").get_to(c.spiVersion); +} + +inline std::string SessionStateExternal::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_SESSIONSTATEEXTERNAL_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SetFocusMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SetFocusMessage.h new file mode 100644 index 000000000..543c2c802 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SetFocusMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_SETFOCUSMESSAGE_H +#define EXTERNALMEDIAADAPTER_SETFOCUSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct SetFocusMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "SetFocus"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string localPlayerId; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "SetFocus"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetFocusMessage::Payload& c) { + j = nlohmann::json{ + {"localPlayerId", c.localPlayerId}, + }; +} +inline void from_json(const nlohmann::json& j, SetFocusMessage::Payload& c) { + j.at("localPlayerId").get_to(c.localPlayerId); +} + +inline void to_json(nlohmann::json& j, const SetFocusMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetFocusMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetFocusMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetFocusMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetFocusMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetFocusMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetFocusMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_SETFOCUSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SupportedPlaybackOperation.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SupportedPlaybackOperation.h new file mode 100644 index 000000000..3b3a56786 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/SupportedPlaybackOperation.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_SUPPORTEDPLAYBACKOPERATION_H +#define EXTERNALMEDIAADAPTER_SUPPORTEDPLAYBACKOPERATION_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class SupportedPlaybackOperation { + PLAY, + PAUSE, + STOP, + NEXT, + PREVIOUS, + START_OVER, + FAST_FORWARD, + REWIND, + ENABLE_REPEAT, + ENABLE_REPEAT_ONE, + DISABLE_REPEAT, + ENABLE_SHUFFLE, + DISABLE_SHUFFLE, + FAVORITE, + UNFAVORITE, + SEEK, + ADJUST_SEEK, +}; + +inline std::string toString(SupportedPlaybackOperation enumValue) { + switch (enumValue) { + case (SupportedPlaybackOperation::PLAY): + return "PLAY"; + case (SupportedPlaybackOperation::PAUSE): + return "PAUSE"; + case (SupportedPlaybackOperation::STOP): + return "STOP"; + case (SupportedPlaybackOperation::NEXT): + return "NEXT"; + case (SupportedPlaybackOperation::PREVIOUS): + return "PREVIOUS"; + case (SupportedPlaybackOperation::START_OVER): + return "START_OVER"; + case (SupportedPlaybackOperation::FAST_FORWARD): + return "FAST_FORWARD"; + case (SupportedPlaybackOperation::REWIND): + return "REWIND"; + case (SupportedPlaybackOperation::ENABLE_REPEAT): + return "ENABLE_REPEAT"; + case (SupportedPlaybackOperation::ENABLE_REPEAT_ONE): + return "ENABLE_REPEAT_ONE"; + case (SupportedPlaybackOperation::DISABLE_REPEAT): + return "DISABLE_REPEAT"; + case (SupportedPlaybackOperation::ENABLE_SHUFFLE): + return "ENABLE_SHUFFLE"; + case (SupportedPlaybackOperation::DISABLE_SHUFFLE): + return "DISABLE_SHUFFLE"; + case (SupportedPlaybackOperation::FAVORITE): + return "FAVORITE"; + case (SupportedPlaybackOperation::UNFAVORITE): + return "UNFAVORITE"; + case (SupportedPlaybackOperation::SEEK): + return "SEEK"; + case (SupportedPlaybackOperation::ADJUST_SEEK): + return "ADJUST_SEEK"; + } + throw std::runtime_error("invalidSupportedPlaybackOperationType"); +} + +inline SupportedPlaybackOperation toSupportedPlaybackOperation(const std::string& stringValue) { + static std::unordered_map map = { + {"PLAY", SupportedPlaybackOperation::PLAY}, + {"PAUSE", SupportedPlaybackOperation::PAUSE}, + {"STOP", SupportedPlaybackOperation::STOP}, + {"NEXT", SupportedPlaybackOperation::NEXT}, + {"PREVIOUS", SupportedPlaybackOperation::PREVIOUS}, + {"START_OVER", SupportedPlaybackOperation::START_OVER}, + {"FAST_FORWARD", SupportedPlaybackOperation::FAST_FORWARD}, + {"REWIND", SupportedPlaybackOperation::REWIND}, + {"ENABLE_REPEAT", SupportedPlaybackOperation::ENABLE_REPEAT}, + {"ENABLE_REPEAT_ONE", SupportedPlaybackOperation::ENABLE_REPEAT_ONE}, + {"DISABLE_REPEAT", SupportedPlaybackOperation::DISABLE_REPEAT}, + {"ENABLE_SHUFFLE", SupportedPlaybackOperation::ENABLE_SHUFFLE}, + {"DISABLE_SHUFFLE", SupportedPlaybackOperation::DISABLE_SHUFFLE}, + {"FAVORITE", SupportedPlaybackOperation::FAVORITE}, + {"UNFAVORITE", SupportedPlaybackOperation::UNFAVORITE}, + {"SEEK", SupportedPlaybackOperation::SEEK}, + {"ADJUST_SEEK", SupportedPlaybackOperation::ADJUST_SEEK}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidSupportedPlaybackOperationType"); +} + +inline void to_json(nlohmann::json& j, const SupportedPlaybackOperation& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, SupportedPlaybackOperation& c) { + c = toSupportedPlaybackOperation(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_SUPPORTEDPLAYBACKOPERATION_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationData.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationData.h new file mode 100644 index 000000000..bd115dd50 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationData.h @@ -0,0 +1,64 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_VALIDATIONDATA_H +#define EXTERNALMEDIAADAPTER_VALIDATIONDATA_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Class Definition +struct ValidationData { + std::string toString() const; + std::string certificate; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ValidationData& c) { + j = nlohmann::json{ + {"certificate", c.certificate}, + }; +} +inline void from_json(const nlohmann::json& j, ValidationData& c) { + j.at("certificate").get_to(c.certificate); +} + +inline std::string ValidationData::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_VALIDATIONDATA_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationMethod.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationMethod.h new file mode 100644 index 000000000..91df69f9f --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/ValidationMethod.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_VALIDATIONMETHOD_H +#define EXTERNALMEDIAADAPTER_VALIDATIONMETHOD_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class ValidationMethod { + SIGNING_CERTIFICATE, + GENERATED_CERTIFICATE, + NONE, +}; + +inline std::string toString(ValidationMethod enumValue) { + switch (enumValue) { + case (ValidationMethod::SIGNING_CERTIFICATE): + return "SIGNING_CERTIFICATE"; + case (ValidationMethod::GENERATED_CERTIFICATE): + return "GENERATED_CERTIFICATE"; + case (ValidationMethod::NONE): + return "NONE"; + } + throw std::runtime_error("invalidValidationMethodType"); +} + +inline ValidationMethod toValidationMethod(const std::string& stringValue) { + static std::unordered_map map = { + {"SIGNING_CERTIFICATE", ValidationMethod::SIGNING_CERTIFICATE}, + {"GENERATED_CERTIFICATE", ValidationMethod::GENERATED_CERTIFICATE}, + {"NONE", ValidationMethod::NONE}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidValidationMethodType"); +} + +inline void to_json(nlohmann::json& j, const ValidationMethod& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ValidationMethod& c) { + c = toValidationMethod(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_VALIDATIONMETHOD_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/VolumeChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/VolumeChangedMessage.h new file mode 100644 index 000000000..5867a1bf4 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/ExternalMediaAdapter/VolumeChangedMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef EXTERNALMEDIAADAPTER_VOLUMECHANGEDMESSAGE_H +#define EXTERNALMEDIAADAPTER_VOLUMECHANGEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace externalMediaAdapter { + +//Class Definition +struct VolumeChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "VolumeChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + float volume; + }; + static const std::string& topic() { + static std::string topic = "ExternalMediaAdapter"; + return topic; + } + static const std::string& action() { + static std::string action = "VolumeChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Payload& c) { + j = nlohmann::json{ + {"volume", c.volume}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Payload& c) { + j.at("volume").get_to(c.volume); +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string VolumeChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace externalMediaAdapter +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // EXTERNALMEDIAADAPTER_VOLUMECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/GlobalPreset/SetGlobalPresetMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/GlobalPreset/SetGlobalPresetMessage.h new file mode 100644 index 000000000..0c3ab8c7c --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/GlobalPreset/SetGlobalPresetMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef GLOBALPRESET_SETGLOBALPRESETMESSAGE_H +#define GLOBALPRESET_SETGLOBALPRESETMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace globalPreset { + +//Class Definition +struct SetGlobalPresetMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "GlobalPreset"; + return topic; + } + static const std::string& action() { + static std::string action = "SetGlobalPreset"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + int preset; + }; + static const std::string& topic() { + static std::string topic = "GlobalPreset"; + return topic; + } + static const std::string& action() { + static std::string action = "SetGlobalPreset"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetGlobalPresetMessage::Payload& c) { + j = nlohmann::json{ + {"preset", c.preset}, + }; +} +inline void from_json(const nlohmann::json& j, SetGlobalPresetMessage::Payload& c) { + j.at("preset").get_to(c.preset); +} + +inline void to_json(nlohmann::json& j, const SetGlobalPresetMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetGlobalPresetMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetGlobalPresetMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetGlobalPresetMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetGlobalPresetMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetGlobalPresetMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetGlobalPresetMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace globalPreset +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // GLOBALPRESET_SETGLOBALPRESETMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/AdjustSeekMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/AdjustSeekMessage.h new file mode 100644 index 000000000..3c1a2b777 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/AdjustSeekMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_ADJUSTSEEKMESSAGE_H +#define LOCALMEDIASOURCE_ADJUSTSEEKMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct AdjustSeekMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustSeek"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + + Source source; + int deltaOffset; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustSeek"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AdjustSeekMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"deltaOffset", c.deltaOffset}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustSeekMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("deltaOffset").get_to(c.deltaOffset); +} + +inline void to_json(nlohmann::json& j, const AdjustSeekMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustSeekMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AdjustSeekMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustSeekMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AdjustSeekMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustSeekMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AdjustSeekMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_ADJUSTSEEKMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/ContentSelector.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/ContentSelector.h new file mode 100644 index 000000000..67496f29d --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/ContentSelector.h @@ -0,0 +1,87 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_CONTENTSELECTOR_H +#define LOCALMEDIASOURCE_CONTENTSELECTOR_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Enum Definition +enum class ContentSelector { + FREQUENCY, + CHANNEL, + PRESET, +}; + +inline std::string toString(ContentSelector enumValue) { + switch (enumValue) { + case (ContentSelector::FREQUENCY): + return "FREQUENCY"; + case (ContentSelector::CHANNEL): + return "CHANNEL"; + case (ContentSelector::PRESET): + return "PRESET"; + } + throw std::runtime_error("invalidContentSelectorType"); +} + +inline ContentSelector toContentSelector(const std::string& stringValue) { + static std::unordered_map map = { + {"FREQUENCY", ContentSelector::FREQUENCY}, + {"CHANNEL", ContentSelector::CHANNEL}, + {"PRESET", ContentSelector::PRESET}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidContentSelectorType"); +} + +inline void to_json(nlohmann::json& j, const ContentSelector& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ContentSelector& c) { + c = toContentSelector(j); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_CONTENTSELECTOR_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetSourceMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetSourceMessage.h new file mode 100644 index 000000000..41c0a543f --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetSourceMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_GETSOURCEMESSAGE_H +#define LOCALMEDIASOURCE_GETSOURCEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct GetSourceMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "GetSource"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "GetSource"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetSourceMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetSourceMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetSourceMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetSourceMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetSourceMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetSourceMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetSourceMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetSourceMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetSourceMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_GETSOURCEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessage.h new file mode 100644 index 000000000..caff4c4cd --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_GETSTATEMESSAGE_H +#define LOCALMEDIASOURCE_GETSTATEMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct GetStateMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "GetState"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + + Source source; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "GetState"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetStateMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessage::Payload& c) { + j.at("source").get_to(c.source); +} + +inline void to_json(nlohmann::json& j, const GetStateMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetStateMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetStateMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetStateMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_GETSTATEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessageReply.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessageReply.h new file mode 100644 index 000000000..11cda9ade --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/GetStateMessageReply.h @@ -0,0 +1,145 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_GETSTATEMESSAGEREPLY_H +#define LOCALMEDIASOURCE_GETSTATEMESSAGEREPLY_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/LocalMediaSourceState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct GetStateMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "GetState"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + LocalMediaSourceState state; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "GetState"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetStateMessageReply::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessageReply::Payload& c) { + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const GetStateMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetStateMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetStateMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetStateMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetStateMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_GETSTATEMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/LocalMediaSourceState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/LocalMediaSourceState.h new file mode 100644 index 000000000..0374115bc --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/LocalMediaSourceState.h @@ -0,0 +1,71 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_LOCALMEDIASOURCESTATE_H +#define LOCALMEDIASOURCE_LOCALMEDIASOURCESTATE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/SessionState.h" +#include "AASB/Message/Alexa/LocalMediaSource/PlaybackState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct LocalMediaSourceState { + std::string toString() const; + SessionState sessionState; + PlaybackState playbackState; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const LocalMediaSourceState& c) { + j = nlohmann::json{ + {"sessionState", c.sessionState}, + {"playbackState", c.playbackState}, + }; +} +inline void from_json(const nlohmann::json& j, LocalMediaSourceState& c) { + j.at("sessionState").get_to(c.sessionState); + j.at("playbackState").get_to(c.playbackState); +} + +inline std::string LocalMediaSourceState::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_LOCALMEDIASOURCESTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/MutedStateChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/MutedStateChangedMessage.h new file mode 100644 index 000000000..80b2280a8 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/MutedStateChangedMessage.h @@ -0,0 +1,149 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_MUTEDSTATECHANGEDMESSAGE_H +#define LOCALMEDIASOURCE_MUTEDSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" +#include "AASB/Message/Alexa/ExternalMediaAdapter/MutedState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct MutedStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "MutedStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + using MutedState = ::aasb::message::alexa::MutedState; + + Source source; + MutedState state; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "MutedStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string MutedStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_MUTEDSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayControlMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayControlMessage.h new file mode 100644 index 000000000..2c0837fdd --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayControlMessage.h @@ -0,0 +1,149 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_PLAYCONTROLMESSAGE_H +#define LOCALMEDIASOURCE_PLAYCONTROLMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" +#include "AASB/Message/Alexa/ExternalMediaAdapter/PlayControlType.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct PlayControlMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayControl"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + using PlayControlType = ::aasb::message::alexa::PlayControlType; + + Source source; + PlayControlType controlType; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayControl"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayControlMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"controlType", c.controlType}, + }; +} +inline void from_json(const nlohmann::json& j, PlayControlMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("controlType").get_to(c.controlType); +} + +inline void to_json(nlohmann::json& j, const PlayControlMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayControlMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayControlMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayControlMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayControlMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayControlMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayControlMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_PLAYCONTROLMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayMessage.h new file mode 100644 index 000000000..45f4fff9b --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayMessage.h @@ -0,0 +1,152 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_PLAYMESSAGE_H +#define LOCALMEDIASOURCE_PLAYMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" +#include "AASB/Message/Alexa/LocalMediaSource/ContentSelector.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct PlayMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "Play"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + using ContentSelector = ::aasb::message::alexa::localMediaSource::ContentSelector; + + Source source; + ContentSelector contentSelectorType; + std::string payload; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "Play"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"contentSelectorType", c.contentSelectorType}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("contentSelectorType").get_to(c.contentSelectorType); + j.at("payload").get_to(c.payload); +} + +inline void to_json(nlohmann::json& j, const PlayMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_PLAYMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlaybackState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlaybackState.h new file mode 100644 index 000000000..603f2c88f --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlaybackState.h @@ -0,0 +1,142 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_PLAYBACKSTATE_H +#define LOCALMEDIASOURCE_PLAYBACKSTATE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/ExternalMediaAdapter/SupportedPlaybackOperation.h" +#include "AASB/Message/Alexa/ExternalMediaAdapter/Favorites.h" +#include "AASB/Message/Alexa/ExternalMediaAdapter/MediaType.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct PlaybackState { + using SupportedPlaybackOperation = ::aasb::message::alexa::SupportedPlaybackOperation; + using Favorites = ::aasb::message::alexa::Favorites; + using MediaType = ::aasb::message::alexa::MediaType; + + std::string toString() const; + std::string state; + std::vector supportedOperations; + int trackOffset; + bool shuffleEnabled; + bool repeatEnabled; + Favorites favorites; + std::string type; + std::string playbackSource; + std::string playbackSourceId; + std::string trackName; + std::string trackId; + std::string trackNumber; + std::string artistName; + std::string artistId; + std::string albumName; + std::string albumId; + std::string tinyURL; + std::string smallURL; + std::string mediumURL; + std::string largeURL; + std::string coverId; + std::string mediaProvider; + MediaType mediaType; + int duration; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlaybackState& c) { + j = nlohmann::json{ + {"state", c.state}, + {"supportedOperations", c.supportedOperations}, + {"trackOffset", c.trackOffset}, + {"shuffleEnabled", c.shuffleEnabled}, + {"repeatEnabled", c.repeatEnabled}, + {"favorites", c.favorites}, + {"type", c.type}, + {"playbackSource", c.playbackSource}, + {"playbackSourceId", c.playbackSourceId}, + {"trackName", c.trackName}, + {"trackId", c.trackId}, + {"trackNumber", c.trackNumber}, + {"artistName", c.artistName}, + {"artistId", c.artistId}, + {"albumName", c.albumName}, + {"albumId", c.albumId}, + {"tinyURL", c.tinyURL}, + {"smallURL", c.smallURL}, + {"mediumURL", c.mediumURL}, + {"largeURL", c.largeURL}, + {"coverId", c.coverId}, + {"mediaProvider", c.mediaProvider}, + {"mediaType", c.mediaType}, + {"duration", c.duration}, + }; +} +inline void from_json(const nlohmann::json& j, PlaybackState& c) { + j.at("state").get_to(c.state); + j.at("supportedOperations").get_to(c.supportedOperations); + j.at("trackOffset").get_to(c.trackOffset); + j.at("shuffleEnabled").get_to(c.shuffleEnabled); + j.at("repeatEnabled").get_to(c.repeatEnabled); + j.at("favorites").get_to(c.favorites); + j.at("type").get_to(c.type); + j.at("playbackSource").get_to(c.playbackSource); + j.at("playbackSourceId").get_to(c.playbackSourceId); + j.at("trackName").get_to(c.trackName); + j.at("trackId").get_to(c.trackId); + j.at("trackNumber").get_to(c.trackNumber); + j.at("artistName").get_to(c.artistName); + j.at("artistId").get_to(c.artistId); + j.at("albumName").get_to(c.albumName); + j.at("albumId").get_to(c.albumId); + j.at("tinyURL").get_to(c.tinyURL); + j.at("smallURL").get_to(c.smallURL); + j.at("mediumURL").get_to(c.mediumURL); + j.at("largeURL").get_to(c.largeURL); + j.at("coverId").get_to(c.coverId); + j.at("mediaProvider").get_to(c.mediaProvider); + j.at("mediaType").get_to(c.mediaType); + j.at("duration").get_to(c.duration); +} + +inline std::string PlaybackState::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_PLAYBACKSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerErrorMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerErrorMessage.h new file mode 100644 index 000000000..946708a46 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerErrorMessage.h @@ -0,0 +1,156 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_PLAYERERRORMESSAGE_H +#define LOCALMEDIASOURCE_PLAYERERRORMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct PlayerErrorMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerError"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + + Source source; + std::string errorName; + int code; + std::string description; + bool fatal; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerError"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayerErrorMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"errorName", c.errorName}, + {"code", c.code}, + {"description", c.description}, + {"fatal", c.fatal}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerErrorMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("errorName").get_to(c.errorName); + j.at("code").get_to(c.code); + j.at("description").get_to(c.description); + j.at("fatal").get_to(c.fatal); +} + +inline void to_json(nlohmann::json& j, const PlayerErrorMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerErrorMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayerErrorMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerErrorMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayerErrorMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerErrorMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayerErrorMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_PLAYERERRORMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerEventMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerEventMessage.h new file mode 100644 index 000000000..af219ae82 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/PlayerEventMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_PLAYEREVENTMESSAGE_H +#define LOCALMEDIASOURCE_PLAYEREVENTMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct PlayerEventMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerEvent"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + + Source source; + std::string eventName; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "PlayerEvent"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayerEventMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"eventName", c.eventName}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerEventMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("eventName").get_to(c.eventName); +} + +inline void to_json(nlohmann::json& j, const PlayerEventMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerEventMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayerEventMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerEventMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayerEventMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayerEventMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayerEventMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_PLAYEREVENTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SeekMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SeekMessage.h new file mode 100644 index 000000000..37018fb1a --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SeekMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_SEEKMESSAGE_H +#define LOCALMEDIASOURCE_SEEKMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct SeekMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "Seek"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + + Source source; + int offset; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "Seek"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SeekMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"offset", c.offset}, + }; +} +inline void from_json(const nlohmann::json& j, SeekMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("offset").get_to(c.offset); +} + +inline void to_json(nlohmann::json& j, const SeekMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SeekMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SeekMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SeekMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SeekMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SeekMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SeekMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_SEEKMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SessionState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SessionState.h new file mode 100644 index 000000000..76ed50e8a --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SessionState.h @@ -0,0 +1,96 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_SESSIONSTATE_H +#define LOCALMEDIASOURCE_SESSIONSTATE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/ContentSelector.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct SessionState { + using ContentSelector = ::aasb::message::alexa::localMediaSource::ContentSelector; + + std::string toString() const; + std::string endpointId; + bool loggedIn; + std::string userName; + bool isGuest; + bool launched; + bool active; + std::string accessToken; + int64_t tokenRefreshInterval; + std::vector supportedContentSelectors; + std::string spiVersion; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SessionState& c) { + j = nlohmann::json{ + {"endpointId", c.endpointId}, + {"loggedIn", c.loggedIn}, + {"userName", c.userName}, + {"isGuest", c.isGuest}, + {"launched", c.launched}, + {"active", c.active}, + {"accessToken", c.accessToken}, + {"tokenRefreshInterval", c.tokenRefreshInterval}, + {"supportedContentSelectors", c.supportedContentSelectors}, + {"spiVersion", c.spiVersion}, + }; +} +inline void from_json(const nlohmann::json& j, SessionState& c) { + j.at("endpointId").get_to(c.endpointId); + j.at("loggedIn").get_to(c.loggedIn); + j.at("userName").get_to(c.userName); + j.at("isGuest").get_to(c.isGuest); + j.at("launched").get_to(c.launched); + j.at("active").get_to(c.active); + j.at("accessToken").get_to(c.accessToken); + j.at("tokenRefreshInterval").get_to(c.tokenRefreshInterval); + j.at("supportedContentSelectors").get_to(c.supportedContentSelectors); + j.at("spiVersion").get_to(c.spiVersion); +} + +inline std::string SessionState::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_SESSIONSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SetFocusMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SetFocusMessage.h new file mode 100644 index 000000000..69aa01bbe --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/SetFocusMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_SETFOCUSMESSAGE_H +#define LOCALMEDIASOURCE_SETFOCUSMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct SetFocusMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "SetFocus"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + + Source source; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "SetFocus"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetFocusMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + }; +} +inline void from_json(const nlohmann::json& j, SetFocusMessage::Payload& c) { + j.at("source").get_to(c.source); +} + +inline void to_json(nlohmann::json& j, const SetFocusMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetFocusMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetFocusMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetFocusMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetFocusMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetFocusMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetFocusMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_SETFOCUSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/Source.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/Source.h new file mode 100644 index 000000000..9b5d7a40f --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/Source.h @@ -0,0 +1,111 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_SOURCE_H +#define LOCALMEDIASOURCE_SOURCE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Enum Definition +enum class Source { + BLUETOOTH, + USB, + FM_RADIO, + AM_RADIO, + SATELLITE_RADIO, + LINE_IN, + COMPACT_DISC, + SIRIUS_XM, + DAB, +}; + +inline std::string toString(Source enumValue) { + switch (enumValue) { + case (Source::BLUETOOTH): + return "BLUETOOTH"; + case (Source::USB): + return "USB"; + case (Source::FM_RADIO): + return "FM_RADIO"; + case (Source::AM_RADIO): + return "AM_RADIO"; + case (Source::SATELLITE_RADIO): + return "SATELLITE_RADIO"; + case (Source::LINE_IN): + return "LINE_IN"; + case (Source::COMPACT_DISC): + return "COMPACT_DISC"; + case (Source::SIRIUS_XM): + return "SIRIUS_XM"; + case (Source::DAB): + return "DAB"; + } + throw std::runtime_error("invalidSourceType"); +} + +inline Source toSource(const std::string& stringValue) { + static std::unordered_map map = { + {"BLUETOOTH", Source::BLUETOOTH}, + {"USB", Source::USB}, + {"FM_RADIO", Source::FM_RADIO}, + {"AM_RADIO", Source::AM_RADIO}, + {"SATELLITE_RADIO", Source::SATELLITE_RADIO}, + {"LINE_IN", Source::LINE_IN}, + {"COMPACT_DISC", Source::COMPACT_DISC}, + {"SIRIUS_XM", Source::SIRIUS_XM}, + {"DAB", Source::DAB}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidSourceType"); +} + +inline void to_json(nlohmann::json& j, const Source& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, Source& c) { + c = toSource(j); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_SOURCE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/VolumeChangedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/VolumeChangedMessage.h new file mode 100644 index 000000000..080257eef --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/LocalMediaSource/VolumeChangedMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCALMEDIASOURCE_VOLUMECHANGEDMESSAGE_H +#define LOCALMEDIASOURCE_VOLUMECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/LocalMediaSource/Source.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace localMediaSource { + +//Class Definition +struct VolumeChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "VolumeChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Source = ::aasb::message::alexa::localMediaSource::Source; + + Source source; + float volume; + }; + static const std::string& topic() { + static std::string topic = "LocalMediaSource"; + return topic; + } + static const std::string& action() { + static std::string action = "VolumeChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"volume", c.volume}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("volume").get_to(c.volume); +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string VolumeChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace localMediaSource +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // LOCALMEDIASOURCE_VOLUMECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/IndicatorState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/IndicatorState.h new file mode 100644 index 000000000..ce6b25583 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/IndicatorState.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NOTIFICATIONS_INDICATORSTATE_H +#define NOTIFICATIONS_INDICATORSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class IndicatorState { + OFF, + ON, + UNKNOWN, +}; + +inline std::string toString(IndicatorState enumValue) { + switch (enumValue) { + case (IndicatorState::OFF): + return "OFF"; + case (IndicatorState::ON): + return "ON"; + case (IndicatorState::UNKNOWN): + return "UNKNOWN"; + } + throw std::runtime_error("invalidIndicatorStateType"); +} + +inline IndicatorState toIndicatorState(const std::string& stringValue) { + static std::unordered_map map = { + {"OFF", IndicatorState::OFF}, + {"ON", IndicatorState::ON}, + {"UNKNOWN", IndicatorState::UNKNOWN}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidIndicatorStateType"); +} + +inline void to_json(nlohmann::json& j, const IndicatorState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, IndicatorState& c) { + c = toIndicatorState(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // NOTIFICATIONS_INDICATORSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/OnNotificationReceivedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/OnNotificationReceivedMessage.h new file mode 100644 index 000000000..bf1f90dd1 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/OnNotificationReceivedMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NOTIFICATIONS_ONNOTIFICATIONRECEIVEDMESSAGE_H +#define NOTIFICATIONS_ONNOTIFICATIONRECEIVEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace notifications { + +//Class Definition +struct OnNotificationReceivedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Notifications"; + return topic; + } + static const std::string& action() { + static std::string action = "OnNotificationReceived"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "Notifications"; + return topic; + } + static const std::string& action() { + static std::string action = "OnNotificationReceived"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const OnNotificationReceivedMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, OnNotificationReceivedMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const OnNotificationReceivedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, OnNotificationReceivedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const OnNotificationReceivedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, OnNotificationReceivedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const OnNotificationReceivedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, OnNotificationReceivedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string OnNotificationReceivedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace notifications +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // NOTIFICATIONS_ONNOTIFICATIONRECEIVEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/SetIndicatorMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/SetIndicatorMessage.h new file mode 100644 index 000000000..afa88be68 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/Notifications/SetIndicatorMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NOTIFICATIONS_SETINDICATORMESSAGE_H +#define NOTIFICATIONS_SETINDICATORMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/Notifications/IndicatorState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace notifications { + +//Class Definition +struct SetIndicatorMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Notifications"; + return topic; + } + static const std::string& action() { + static std::string action = "SetIndicator"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using IndicatorState = ::aasb::message::alexa::IndicatorState; + + IndicatorState state; + }; + static const std::string& topic() { + static std::string topic = "Notifications"; + return topic; + } + static const std::string& action() { + static std::string action = "SetIndicator"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetIndicatorMessage::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, SetIndicatorMessage::Payload& c) { + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const SetIndicatorMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetIndicatorMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetIndicatorMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetIndicatorMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetIndicatorMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetIndicatorMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetIndicatorMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace notifications +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // NOTIFICATIONS_SETINDICATORMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/ButtonPressedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/ButtonPressedMessage.h new file mode 100644 index 000000000..85e577db3 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/ButtonPressedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PLAYBACKCONTROLLER_BUTTONPRESSEDMESSAGE_H +#define PLAYBACKCONTROLLER_BUTTONPRESSEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/PlaybackController/PlaybackButton.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace playbackController { + +//Class Definition +struct ButtonPressedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PlaybackController"; + return topic; + } + static const std::string& action() { + static std::string action = "ButtonPressed"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using PlaybackButton = ::aasb::message::alexa::PlaybackButton; + + PlaybackButton button; + }; + static const std::string& topic() { + static std::string topic = "PlaybackController"; + return topic; + } + static const std::string& action() { + static std::string action = "ButtonPressed"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ButtonPressedMessage::Payload& c) { + j = nlohmann::json{ + {"button", c.button}, + }; +} +inline void from_json(const nlohmann::json& j, ButtonPressedMessage::Payload& c) { + j.at("button").get_to(c.button); +} + +inline void to_json(nlohmann::json& j, const ButtonPressedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ButtonPressedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ButtonPressedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ButtonPressedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ButtonPressedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ButtonPressedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ButtonPressedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace playbackController +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // PLAYBACKCONTROLLER_BUTTONPRESSEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackButton.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackButton.h new file mode 100644 index 000000000..529dd3102 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackButton.h @@ -0,0 +1,97 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PLAYBACKCONTROLLER_PLAYBACKBUTTON_H +#define PLAYBACKCONTROLLER_PLAYBACKBUTTON_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class PlaybackButton { + PLAY, + PAUSE, + NEXT, + PREVIOUS, + SKIP_FORWARD, + SKIP_BACKWARD, +}; + +inline std::string toString(PlaybackButton enumValue) { + switch (enumValue) { + case (PlaybackButton::PLAY): + return "PLAY"; + case (PlaybackButton::PAUSE): + return "PAUSE"; + case (PlaybackButton::NEXT): + return "NEXT"; + case (PlaybackButton::PREVIOUS): + return "PREVIOUS"; + case (PlaybackButton::SKIP_FORWARD): + return "SKIP_FORWARD"; + case (PlaybackButton::SKIP_BACKWARD): + return "SKIP_BACKWARD"; + } + throw std::runtime_error("invalidPlaybackButtonType"); +} + +inline PlaybackButton toPlaybackButton(const std::string& stringValue) { + static std::unordered_map map = { + {"PLAY", PlaybackButton::PLAY}, + {"PAUSE", PlaybackButton::PAUSE}, + {"NEXT", PlaybackButton::NEXT}, + {"PREVIOUS", PlaybackButton::PREVIOUS}, + {"SKIP_FORWARD", PlaybackButton::SKIP_FORWARD}, + {"SKIP_BACKWARD", PlaybackButton::SKIP_BACKWARD}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidPlaybackButtonType"); +} + +inline void to_json(nlohmann::json& j, const PlaybackButton& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, PlaybackButton& c) { + c = toPlaybackButton(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // PLAYBACKCONTROLLER_PLAYBACKBUTTON_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackToggle.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackToggle.h new file mode 100644 index 000000000..82a9f0c24 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/PlaybackToggle.h @@ -0,0 +1,93 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PLAYBACKCONTROLLER_PLAYBACKTOGGLE_H +#define PLAYBACKCONTROLLER_PLAYBACKTOGGLE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class PlaybackToggle { + SHUFFLE, + LOOP, + REPEAT, + THUMBS_UP, + THUMBS_DOWN, +}; + +inline std::string toString(PlaybackToggle enumValue) { + switch (enumValue) { + case (PlaybackToggle::SHUFFLE): + return "SHUFFLE"; + case (PlaybackToggle::LOOP): + return "LOOP"; + case (PlaybackToggle::REPEAT): + return "REPEAT"; + case (PlaybackToggle::THUMBS_UP): + return "THUMBS_UP"; + case (PlaybackToggle::THUMBS_DOWN): + return "THUMBS_DOWN"; + } + throw std::runtime_error("invalidPlaybackToggleType"); +} + +inline PlaybackToggle toPlaybackToggle(const std::string& stringValue) { + static std::unordered_map map = { + {"SHUFFLE", PlaybackToggle::SHUFFLE}, + {"LOOP", PlaybackToggle::LOOP}, + {"REPEAT", PlaybackToggle::REPEAT}, + {"THUMBS_UP", PlaybackToggle::THUMBS_UP}, + {"THUMBS_DOWN", PlaybackToggle::THUMBS_DOWN}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidPlaybackToggleType"); +} + +inline void to_json(nlohmann::json& j, const PlaybackToggle& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, PlaybackToggle& c) { + c = toPlaybackToggle(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // PLAYBACKCONTROLLER_PLAYBACKTOGGLE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/TogglePressedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/TogglePressedMessage.h new file mode 100644 index 000000000..1b3fc4ec2 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/PlaybackController/TogglePressedMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PLAYBACKCONTROLLER_TOGGLEPRESSEDMESSAGE_H +#define PLAYBACKCONTROLLER_TOGGLEPRESSEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/PlaybackController/PlaybackToggle.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace playbackController { + +//Class Definition +struct TogglePressedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PlaybackController"; + return topic; + } + static const std::string& action() { + static std::string action = "TogglePressed"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using PlaybackToggle = ::aasb::message::alexa::PlaybackToggle; + + PlaybackToggle toggle; + bool action; + }; + static const std::string& topic() { + static std::string topic = "PlaybackController"; + return topic; + } + static const std::string& action() { + static std::string action = "TogglePressed"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const TogglePressedMessage::Payload& c) { + j = nlohmann::json{ + {"toggle", c.toggle}, + {"action", c.action}, + }; +} +inline void from_json(const nlohmann::json& j, TogglePressedMessage::Payload& c) { + j.at("toggle").get_to(c.toggle); + j.at("action").get_to(c.action); +} + +inline void to_json(nlohmann::json& j, const TogglePressedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, TogglePressedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const TogglePressedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, TogglePressedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const TogglePressedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, TogglePressedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string TogglePressedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace playbackController +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // PLAYBACKCONTROLLER_TOGGLEPRESSEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/EndOfSpeechDetectedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/EndOfSpeechDetectedMessage.h new file mode 100644 index 000000000..51f1766a8 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/EndOfSpeechDetectedMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef SPEECHRECOGNIZER_ENDOFSPEECHDETECTEDMESSAGE_H +#define SPEECHRECOGNIZER_ENDOFSPEECHDETECTEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace speechRecognizer { + +//Class Definition +struct EndOfSpeechDetectedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "SpeechRecognizer"; + return topic; + } + static const std::string& action() { + static std::string action = "EndOfSpeechDetected"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "SpeechRecognizer"; + return topic; + } + static const std::string& action() { + static std::string action = "EndOfSpeechDetected"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const EndOfSpeechDetectedMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, EndOfSpeechDetectedMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const EndOfSpeechDetectedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, EndOfSpeechDetectedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const EndOfSpeechDetectedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, EndOfSpeechDetectedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const EndOfSpeechDetectedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, EndOfSpeechDetectedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string EndOfSpeechDetectedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace speechRecognizer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // SPEECHRECOGNIZER_ENDOFSPEECHDETECTEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/Initiator.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/Initiator.h new file mode 100644 index 000000000..bf5ce1d42 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/Initiator.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef SPEECHRECOGNIZER_INITIATOR_H +#define SPEECHRECOGNIZER_INITIATOR_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class Initiator { + HOLD_TO_TALK, + TAP_TO_TALK, + WAKEWORD, +}; + +inline std::string toString(Initiator enumValue) { + switch (enumValue) { + case (Initiator::HOLD_TO_TALK): + return "HOLD_TO_TALK"; + case (Initiator::TAP_TO_TALK): + return "TAP_TO_TALK"; + case (Initiator::WAKEWORD): + return "WAKEWORD"; + } + throw std::runtime_error("invalidInitiatorType"); +} + +inline Initiator toInitiator(const std::string& stringValue) { + static std::unordered_map map = { + {"HOLD_TO_TALK", Initiator::HOLD_TO_TALK}, + {"TAP_TO_TALK", Initiator::TAP_TO_TALK}, + {"WAKEWORD", Initiator::WAKEWORD}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidInitiatorType"); +} + +inline void to_json(nlohmann::json& j, const Initiator& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, Initiator& c) { + c = toInitiator(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // SPEECHRECOGNIZER_INITIATOR_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StartCaptureMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StartCaptureMessage.h new file mode 100644 index 000000000..548222135 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StartCaptureMessage.h @@ -0,0 +1,153 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef SPEECHRECOGNIZER_STARTCAPTUREMESSAGE_H +#define SPEECHRECOGNIZER_STARTCAPTUREMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/SpeechRecognizer/Initiator.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace speechRecognizer { + +//Class Definition +struct StartCaptureMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "SpeechRecognizer"; + return topic; + } + static const std::string& action() { + static std::string action = "StartCapture"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Initiator = ::aasb::message::alexa::Initiator; + + Initiator initiator; + int keywordBegin; + int keywordEnd; + std::string keyword; + }; + static const std::string& topic() { + static std::string topic = "SpeechRecognizer"; + return topic; + } + static const std::string& action() { + static std::string action = "StartCapture"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StartCaptureMessage::Payload& c) { + j = nlohmann::json{ + {"initiator", c.initiator}, + {"keywordBegin", c.keywordBegin}, + {"keywordEnd", c.keywordEnd}, + {"keyword", c.keyword}, + }; +} +inline void from_json(const nlohmann::json& j, StartCaptureMessage::Payload& c) { + j.at("initiator").get_to(c.initiator); + j.at("keywordBegin").get_to(c.keywordBegin); + j.at("keywordEnd").get_to(c.keywordEnd); + j.at("keyword").get_to(c.keyword); +} + +inline void to_json(nlohmann::json& j, const StartCaptureMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StartCaptureMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StartCaptureMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StartCaptureMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StartCaptureMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StartCaptureMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StartCaptureMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace speechRecognizer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // SPEECHRECOGNIZER_STARTCAPTUREMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StopCaptureMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StopCaptureMessage.h new file mode 100644 index 000000000..33f4dbeed --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/StopCaptureMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef SPEECHRECOGNIZER_STOPCAPTUREMESSAGE_H +#define SPEECHRECOGNIZER_STOPCAPTUREMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace speechRecognizer { + +//Class Definition +struct StopCaptureMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "SpeechRecognizer"; + return topic; + } + static const std::string& action() { + static std::string action = "StopCapture"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "SpeechRecognizer"; + return topic; + } + static const std::string& action() { + static std::string action = "StopCapture"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StopCaptureMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, StopCaptureMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const StopCaptureMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StopCaptureMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StopCaptureMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StopCaptureMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StopCaptureMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StopCaptureMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StopCaptureMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace speechRecognizer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // SPEECHRECOGNIZER_STOPCAPTUREMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/WakewordDetectedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/WakewordDetectedMessage.h new file mode 100644 index 000000000..6d62a951e --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/SpeechRecognizer/WakewordDetectedMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef SPEECHRECOGNIZER_WAKEWORDDETECTEDMESSAGE_H +#define SPEECHRECOGNIZER_WAKEWORDDETECTEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace speechRecognizer { + +//Class Definition +struct WakewordDetectedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "SpeechRecognizer"; + return topic; + } + static const std::string& action() { + static std::string action = "WakewordDetected"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string wakeword; + }; + static const std::string& topic() { + static std::string topic = "SpeechRecognizer"; + return topic; + } + static const std::string& action() { + static std::string action = "WakewordDetected"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const WakewordDetectedMessage::Payload& c) { + j = nlohmann::json{ + {"wakeword", c.wakeword}, + }; +} +inline void from_json(const nlohmann::json& j, WakewordDetectedMessage::Payload& c) { + j.at("wakeword").get_to(c.wakeword); +} + +inline void to_json(nlohmann::json& j, const WakewordDetectedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, WakewordDetectedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const WakewordDetectedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, WakewordDetectedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const WakewordDetectedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, WakewordDetectedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string WakewordDetectedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace speechRecognizer +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // SPEECHRECOGNIZER_WAKEWORDDETECTEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearPlayerInfoMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearPlayerInfoMessage.h new file mode 100644 index 000000000..6a31fd53c --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearPlayerInfoMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef TEMPLATERUNTIME_CLEARPLAYERINFOMESSAGE_H +#define TEMPLATERUNTIME_CLEARPLAYERINFOMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace templateRuntime { + +//Class Definition +struct ClearPlayerInfoMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearPlayerInfo"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearPlayerInfo"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ClearPlayerInfoMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, ClearPlayerInfoMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const ClearPlayerInfoMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ClearPlayerInfoMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ClearPlayerInfoMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ClearPlayerInfoMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ClearPlayerInfoMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ClearPlayerInfoMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ClearPlayerInfoMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace templateRuntime +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // TEMPLATERUNTIME_CLEARPLAYERINFOMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearTemplateMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearTemplateMessage.h new file mode 100644 index 000000000..11b44696d --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/ClearTemplateMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef TEMPLATERUNTIME_CLEARTEMPLATEMESSAGE_H +#define TEMPLATERUNTIME_CLEARTEMPLATEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace templateRuntime { + +//Class Definition +struct ClearTemplateMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearTemplate"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearTemplate"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ClearTemplateMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, ClearTemplateMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const ClearTemplateMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ClearTemplateMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ClearTemplateMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ClearTemplateMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ClearTemplateMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ClearTemplateMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ClearTemplateMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace templateRuntime +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // TEMPLATERUNTIME_CLEARTEMPLATEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/DisplayCardClearedMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/DisplayCardClearedMessage.h new file mode 100644 index 000000000..51a02fb48 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/DisplayCardClearedMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef TEMPLATERUNTIME_DISPLAYCARDCLEAREDMESSAGE_H +#define TEMPLATERUNTIME_DISPLAYCARDCLEAREDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace alexa { +namespace templateRuntime { + +//Class Definition +struct DisplayCardClearedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "DisplayCardCleared"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "DisplayCardCleared"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const DisplayCardClearedMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, DisplayCardClearedMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const DisplayCardClearedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, DisplayCardClearedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const DisplayCardClearedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, DisplayCardClearedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const DisplayCardClearedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, DisplayCardClearedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string DisplayCardClearedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace templateRuntime +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // TEMPLATERUNTIME_DISPLAYCARDCLEAREDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/FocusState.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/FocusState.h new file mode 100644 index 000000000..154502774 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/FocusState.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef TEMPLATERUNTIME_FOCUSSTATE_H +#define TEMPLATERUNTIME_FOCUSSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace alexa { + +//Enum Definition +enum class FocusState { + FOREGROUND, + BACKGROUND, + NONE, +}; + +inline std::string toString(FocusState enumValue) { + switch (enumValue) { + case (FocusState::FOREGROUND): + return "FOREGROUND"; + case (FocusState::BACKGROUND): + return "BACKGROUND"; + case (FocusState::NONE): + return "NONE"; + } + throw std::runtime_error("invalidFocusStateType"); +} + +inline FocusState toFocusState(const std::string& stringValue) { + static std::unordered_map map = { + {"FOREGROUND", FocusState::FOREGROUND}, + {"BACKGROUND", FocusState::BACKGROUND}, + {"NONE", FocusState::NONE}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidFocusStateType"); +} + +inline void to_json(nlohmann::json& j, const FocusState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, FocusState& c) { + c = toFocusState(j); +} + +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // TEMPLATERUNTIME_FOCUSSTATE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderPlayerInfoMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderPlayerInfoMessage.h new file mode 100644 index 000000000..259b3650f --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderPlayerInfoMessage.h @@ -0,0 +1,155 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef TEMPLATERUNTIME_RENDERPLAYERINFOMESSAGE_H +#define TEMPLATERUNTIME_RENDERPLAYERINFOMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/AudioPlayer/PlayerActivity.h" +#include "AASB/Message/Alexa/TemplateRuntime/FocusState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace templateRuntime { + +//Class Definition +struct RenderPlayerInfoMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "RenderPlayerInfo"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using PlayerActivity = ::aasb::message::alexa::PlayerActivity; + using FocusState = ::aasb::message::alexa::FocusState; + + std::string payload; + PlayerActivity audioPlayerState; + int offset; + FocusState focusState; + }; + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "RenderPlayerInfo"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RenderPlayerInfoMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + {"audioPlayerState", c.audioPlayerState}, + {"offset", c.offset}, + {"focusState", c.focusState}, + }; +} +inline void from_json(const nlohmann::json& j, RenderPlayerInfoMessage::Payload& c) { + j.at("payload").get_to(c.payload); + j.at("audioPlayerState").get_to(c.audioPlayerState); + j.at("offset").get_to(c.offset); + j.at("focusState").get_to(c.focusState); +} + +inline void to_json(nlohmann::json& j, const RenderPlayerInfoMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RenderPlayerInfoMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RenderPlayerInfoMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RenderPlayerInfoMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RenderPlayerInfoMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RenderPlayerInfoMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RenderPlayerInfoMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace templateRuntime +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // TEMPLATERUNTIME_RENDERPLAYERINFOMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderTemplateMessage.h b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderTemplateMessage.h new file mode 100644 index 000000000..84e88ea92 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/include/AASB/Message/Alexa/TemplateRuntime/RenderTemplateMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef TEMPLATERUNTIME_RENDERTEMPLATEMESSAGE_H +#define TEMPLATERUNTIME_RENDERTEMPLATEMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Alexa/TemplateRuntime/FocusState.h" + +namespace aasb { +namespace message { +namespace alexa { +namespace templateRuntime { + +//Class Definition +struct RenderTemplateMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "RenderTemplate"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using FocusState = ::aasb::message::alexa::FocusState; + + std::string payload; + FocusState focusState; + }; + static const std::string& topic() { + static std::string topic = "TemplateRuntime"; + return topic; + } + static const std::string& action() { + static std::string action = "RenderTemplate"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RenderTemplateMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + {"focusState", c.focusState}, + }; +} +inline void from_json(const nlohmann::json& j, RenderTemplateMessage::Payload& c) { + j.at("payload").get_to(c.payload); + j.at("focusState").get_to(c.focusState); +} + +inline void to_json(nlohmann::json& j, const RenderTemplateMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RenderTemplateMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RenderTemplateMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RenderTemplateMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RenderTemplateMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RenderTemplateMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RenderTemplateMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace templateRuntime +} // namespace alexa +} // namespace message +} // namespace aasb + +#endif // TEMPLATERUNTIME_RENDERTEMPLATEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlerts.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlerts.cpp new file mode 100644 index 000000000..eba14759d --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlerts.cpp @@ -0,0 +1,156 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBAlerts"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBAlerts::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the speech synthesizer platform handler + auto alerts = std::shared_ptr(new AASBAlerts()); + + // initialize the platform handler + ThrowIfNot(alerts->initialize(messageBroker), "initializeFailed"); + + return alerts; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAlerts::initialize(std::shared_ptr messageBroker) { + try { + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::alerts::LocalStopMessage::topic(), + aasb::message::alexa::alerts::LocalStopMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + sp->localStop(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LocalStopMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::alerts::RemoveAllAlertsMessage::topic(), + aasb::message::alexa::alerts::RemoveAllAlertsMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + sp->removeAllAlerts(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "RemoveAllAlertsMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::alexa::Alerts +// + +void AASBAlerts::alertStateChanged(const std::string& alertToken, AlertState state, const std::string& reason) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::alerts::AlertStateChangedMessage message; + + message.payload.alertToken = alertToken; + message.payload.state = static_cast(state); + message.payload.reason = reason; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBAlerts::alertCreated(const std::string& alertToken, const std::string& detailedInfo) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::alerts::AlertCreatedMessage message; + + message.payload.alertToken = alertToken; + message.payload.detailedInfo = detailedInfo; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBAlerts::alertDeleted(const std::string& alertToken) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::alerts::AlertDeletedMessage message; + + message.payload.alertToken = alertToken; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaClient.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaClient.cpp new file mode 100644 index 000000000..d6075147c --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaClient.cpp @@ -0,0 +1,132 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBAlexaClient"); + +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBAlexaClient::create( + std::shared_ptr messageBroker) { + try { + auto alexaClient = std::shared_ptr(new AASBAlexaClient()); + + ThrowIfNot(alexaClient->initialize(messageBroker), "initializeFailed"); + + return alexaClient; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAlexaClient::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::alexaClient::StopForegroundActivityMessage::topic(), + aasb::message::alexa::alexaClient::StopForegroundActivityMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + sp->stopForegroundActivity(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "StopForegroundActivityMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::alexa::AlexaClient +// + +void AASBAlexaClient::dialogStateChanged(DialogState state) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::alexaClient::DialogStateChangedMessage message; + message.payload.state = static_cast(state); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBAlexaClient::authStateChanged(AuthState state, AuthError error) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::alexaClient::AuthStateChangedMessage message; + message.payload.state = static_cast(state); + message.payload.error = static_cast(error); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBAlexaClient::connectionStatusChanged(ConnectionStatus status, ConnectionChangedReason reason) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::alexaClient::ConnectionStatusChangedMessage message; + message.payload.status = static_cast(status); + message.payload.reason = static_cast(reason); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaEngineService.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaEngineService.cpp new file mode 100644 index 000000000..422c226e3 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaEngineService.cpp @@ -0,0 +1,319 @@ +/* + * Copyright 2017-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. + */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// LocalMediaSource Handlers +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBAlexaEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBAlexaEngineService); + +AASBAlexaEngineService::AASBAlexaEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService( + description, + minRequiredVersion, + {"Alerts", + "AlexaClient", + "AlexaSpeaker", + "AudioPlayer", + "AuthProvider", + "DoNotDisturb", + "EqualizerController", + "ExternalMediaAdapter", + "GlobalPreset", + "LocalMediaSource", + "Notifications", + "PlaybackController", + "SpeechRecognizer", + "SpeechSynthesizer", + "TemplateRuntime"}) { +} + +bool AASBAlexaEngineService::configureAASBInterface( + const std::string& name, + bool enabled, + std::istream& configuration) { + try { + // call inherited configure method + ThrowIfNot( + AASBHandlerEngineService::configureAASBInterface(name, enabled, configuration), + "configureAASBInterfaceFailed"); + + // handle specific interface configuration options + if (name == "LocalMediaSource" && enabled) { + ThrowIfNot(configureLocalMediaSource(configuration), "configureLocalMediaSourceFailed"); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAlexaEngineService::configureLocalMediaSource(std::istream& configuration) { + try { + auto root = nlohmann::json::parse(configuration); + auto localMediaSourceTypes = root["/types"_json_pointer]; + + // configure the local media source type configurations + if (localMediaSourceTypes != nullptr) { + ThrowIfNot(localMediaSourceTypes.is_array(), "invalidLocalMediaSourceTypesConfiguration"); + + for (auto next : localMediaSourceTypes) { + aasb::message::alexa::localMediaSource::Source source = next; + + // add the local media source type to the map... the actual local media source + // adapter will be created on postRegister with the other platform interfaces + m_localMediaSourceMap[static_cast(source)] = nullptr; + } + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAlexaEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // get the service context + auto context = getContext(); + + // Alerts + if (isInterfaceEnabled("Alerts")) { + auto alerts = AASBAlerts::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(alerts, "invalidAlertsHandler"); + context->registerPlatformInterface(alerts); + } + + // AlexaClient + if (isInterfaceEnabled("AlexaClient")) { + auto alexaClient = AASBAlexaClient::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(alexaClient, "invalidAlexaClientHandler"); + context->registerPlatformInterface(alexaClient); + } + + // AlexaSpeaker + if (isInterfaceEnabled("AlexaSpeaker")) { + auto alexaSpeaker = AASBAlexaSpeaker::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(alexaSpeaker, "invalidAlexaSpeakerHandler"); + context->registerPlatformInterface(alexaSpeaker); + } + + // AudioPlayer + if (isInterfaceEnabled("AudioPlayer")) { + auto audioPlayer = AASBAudioPlayer::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(audioPlayer, "invalidAudioPlayerHandler"); + context->registerPlatformInterface(audioPlayer); + } + + // DoNotDisturb + if (isInterfaceEnabled("DoNotDisturb")) { + auto doNotDisturb = AASBDoNotDisturb::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(doNotDisturb, "invalidDoNotDisturbHandler"); + context->registerPlatformInterface(doNotDisturb); + } + + // EqualizerController + if (isInterfaceEnabled("EqualizerController")) { + auto equalizerController = AASBEqualizerController::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(equalizerController, "invalidEqualizerControllerHandler"); + context->registerPlatformInterface(equalizerController); + } + + // ExternalMediaAdapter + if (isInterfaceEnabled("ExternalMediaAdapter")) { + auto externalMediaAdapter = AASBExternalMediaAdapter::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(externalMediaAdapter, "invalidExternalMediaAdapterHandler"); + context->registerPlatformInterface(externalMediaAdapter); + } + + // GlobalPreset + if (isInterfaceEnabled("GlobalPreset")) { + auto globalPreset = AASBGlobalPreset::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(globalPreset, "invalidGlobalPresetHandler"); + context->registerPlatformInterface(globalPreset); + } + + // LocalMediaSource + if (isInterfaceEnabled("LocalMediaSource") && m_localMediaSourceMap.empty() == false) { + for (auto next : m_localMediaSourceMap) { + auto localMediaSource = + AASBLocalMediaSource::create(next.first, aasbServiceInterface->getMessageBroker()); + ThrowIfNull(localMediaSource, "invalidLocalMediaSourceHandler"); + context->registerPlatformInterface(localMediaSource); + + // set the map value to the new local media source adapter + m_localMediaSourceMap[next.first] = localMediaSource; + } + + // register the local media source handlers so that incoming LocalMediaSource + // messages can be mapped to their adapters + ThrowIfNot( + registerLocalMediaSourceMessageHandlers(aasbServiceInterface->getMessageBroker()), + "registerLocalMediaSourceMessageHandlersFailed"); + } + + // Notifications + if (isInterfaceEnabled("Notifications")) { + auto notifications = AASBNotifications::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(notifications, "invalidNotificationsHandler"); + context->registerPlatformInterface(notifications); + } + + // PlaybackController + if (isInterfaceEnabled("PlaybackController")) { + auto playbackController = AASBPlaybackController::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(playbackController, "invalidPlaybackControllerHandler"); + context->registerPlatformInterface(playbackController); + } + + // SpeechRecognizer + if (isInterfaceEnabled("SpeechRecognizer")) { + auto speechRecognizer = AASBSpeechRecognizer::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(speechRecognizer, "invalidSpeechRecognizerHandler"); + context->registerPlatformInterface(speechRecognizer); + } + + // SpeechSynthesizer + if (isInterfaceEnabled("SpeechSynthesizer")) { + auto speechSynthesizer = AASBSpeechSynthesizer::create(); + ThrowIfNull(speechSynthesizer, "invalidSpeechSynthesizerHandler"); + context->registerPlatformInterface(speechSynthesizer); + } + + // TemplateRuntime + if (isInterfaceEnabled("TemplateRuntime")) { + auto templateRuntime = AASBTemplateRuntime::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(templateRuntime, "invalidTemplateRuntimeHandler"); + context->registerPlatformInterface(templateRuntime); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAlexaEngineService::registerLocalMediaSourceMessageHandlers( + std::shared_ptr messageBroker) { + try { + messageBroker->subscribe( + aasb::message::alexa::localMediaSource::PlayerEventMessage::topic(), + aasb::message::alexa::localMediaSource::PlayerEventMessage::action(), + [this](const aace::engine::aasb::Message& message) { + try { + aasb::message::alexa::localMediaSource::PlayerEventMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + auto source = static_cast(payload.source); + auto localMediaSource = m_localMediaSourceMap[source]; + + ThrowIfNull(localMediaSource, "invalidLocalMediaSourceAdapter"); + + localMediaSource->playerEvent(payload.eventName); + AACE_INFO(LX(TAG, "PlayerEventMessage").m("MessageRouted")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "PlayerEventMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::localMediaSource::PlayerErrorMessage::topic(), + aasb::message::alexa::localMediaSource::PlayerErrorMessage::action(), + [this](const aace::engine::aasb::Message& message) { + try { + aasb::message::alexa::localMediaSource::PlayerErrorMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + auto source = static_cast(payload.source); + auto localMediaSource = m_localMediaSourceMap[source]; + + ThrowIfNull(localMediaSource, "invalidLocalMediaSourceAdapter"); + + localMediaSource->playerError(payload.errorName, payload.code, payload.description, payload.fatal); + AACE_INFO(LX(TAG, "PlayerErrorMessage").m("MessageRouted")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "PlayerErrorMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::localMediaSource::SetFocusMessage::topic(), + aasb::message::alexa::localMediaSource::SetFocusMessage::action(), + [this](const aace::engine::aasb::Message& message) { + try { + aasb::message::alexa::localMediaSource::SetFocusMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + auto source = static_cast(payload.source); + auto localMediaSource = m_localMediaSourceMap[source]; + ThrowIfNull(localMediaSource, "invalidLocalMediaSourceAdapter"); + + localMediaSource->setFocus(); + AACE_INFO(LX(TAG, "SetFocusMessage").m("MessageRouted")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SetFocusMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaSpeaker.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaSpeaker.cpp new file mode 100644 index 000000000..1eda9095c --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAlexaSpeaker.cpp @@ -0,0 +1,138 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBAlexaSpeaker"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBAlexaSpeaker::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the speech synthesizer platform handler + auto alexaSpeaker = std::shared_ptr(new AASBAlexaSpeaker()); + + // initialize the platform handler + ThrowIfNot(alexaSpeaker->initialize(messageBroker), "initializeFailed"); + + return alexaSpeaker; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAlexaSpeaker::initialize(std::shared_ptr messageBroker) { + try { + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::alexaSpeaker::LocalSetVolumeMessage::topic(), + aasb::message::alexa::alexaSpeaker::LocalSetVolumeMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::alexa::alexaSpeaker::LocalSetVolumeMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->localSetVolume(static_cast(payload.type), payload.volume); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LocalSetVolumeMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::alexaSpeaker::LocalAdjustVolumeMessage::topic(), + aasb::message::alexa::alexaSpeaker::LocalAdjustVolumeMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::alexa::alexaSpeaker::LocalAdjustVolumeMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->localAdjustVolume(static_cast(payload.type), payload.delta); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LocalAdjustVolumeMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::alexaSpeaker::LocalSetMuteMessage::topic(), + aasb::message::alexa::alexaSpeaker::LocalSetMuteMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::alexa::alexaSpeaker::LocalSetMuteMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->localSetMute(static_cast(payload.type), payload.mute); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LocalSetMuteMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::alexa::alexaSpeaker +// + +void AASBAlexaSpeaker::speakerSettingsChanged(SpeakerType type, bool local, int8_t volume, bool mute) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::alexaSpeaker::SpeakerSettingsChangedMessage message; + + message.payload.type = static_cast(type); + message.payload.local = local; + message.payload.volume = volume; + message.payload.mute = mute; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBAudioPlayer.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAudioPlayer.cpp new file mode 100644 index 000000000..c112eeb33 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAudioPlayer.cpp @@ -0,0 +1,131 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBAudioPlayer"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBAudioPlayer::create( + std::shared_ptr messageBroker) { + try { + auto audioPlayer = std::shared_ptr(new AASBAudioPlayer()); + + ThrowIfNot(audioPlayer->initialize(messageBroker), "initializeFailed"); + + return audioPlayer; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "create").d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAudioPlayer::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::audioPlayer::GetPlayerPositionMessage::topic(), + aasb::message::alexa::audioPlayer::GetPlayerPositionMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::alexa::audioPlayer::GetPlayerPositionMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + AACE_INFO(LX(TAG, "GetPlayerPositionMessage").m("MessageRouted")); + + auto m_messageBroker_lock = sp->m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::audioPlayer::GetPlayerPositionMessageReply getPlayerPositionMessageReply; + getPlayerPositionMessageReply.header.messageDescription.replyToId = message.messageId(); + getPlayerPositionMessageReply.payload.playbackPosition = sp->getPlayerPosition(); + m_messageBroker_lock->publish(getPlayerPositionMessageReply.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "GetPlayerPositionMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::audioPlayer::GetPlayerDurationMessage::topic(), + aasb::message::alexa::audioPlayer::GetPlayerDurationMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::alexa::audioPlayer::GetPlayerDurationMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + AACE_INFO(LX(TAG, "GetPlayerDurationMessage").m("MessageRouted")); + + auto m_messageBroker_lock = sp->m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::audioPlayer::GetPlayerDurationMessageReply getPlayerDurationMessageReply; + getPlayerDurationMessageReply.header.messageDescription.replyToId = message.messageId(); + getPlayerDurationMessageReply.payload.playbackDuration = sp->getPlayerDuration(); + m_messageBroker_lock->publish(getPlayerDurationMessageReply.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "GetPlayerDurationMessage").d("reason", ex.what())); + } + }); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::alexa::AudioPlayer +// +void AASBAudioPlayer::playerActivityChanged(PlayerActivity state) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::audioPlayer::PlayerActivityChangedMessage message; + message.payload.state = static_cast(state); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBAuthProvider.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAuthProvider.cpp new file mode 100644 index 000000000..9a7d32f63 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBAuthProvider.cpp @@ -0,0 +1,137 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBAuthProvider"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBAuthProvider::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto authProvider = std::shared_ptr(new AASBAuthProvider()); + ThrowIfNot(authProvider->initialize(messageBroker), "initializeFailed"); + + return authProvider; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAuthProvider::initialize(std::shared_ptr messageBroker) { + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::authProvider::AuthStateChangedMessage::topic(), + aasb::message::alexa::authProvider::AuthStateChangedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::authProvider::AuthStateChangedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->authStateChanged( + static_cast(payload.authState), static_cast(payload.authError)); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "AuthStateChangedMessage").d("reason", ex.what())); + } + }); + + return true; +} + +// +// aace::alexa::AuthProvider +// + +std::string AASBAuthProvider::getAuthToken() { + try { + AACE_VERBOSE(LX(TAG)); + + if (m_cachedAuthToken.empty()) { + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::authProvider::GetAuthTokenMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForAuthTokenTimeout"); + + aasb::message::alexa::authProvider::GetAuthTokenMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + m_cachedAuthToken = payload.authToken; + } + + return m_cachedAuthToken; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return std::string(); + } +} + +aace::alexa::AuthProvider::AuthState AASBAuthProvider::getAuthState() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::authProvider::GetAuthStateMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForAuthStateTimeout"); + + aasb::message::alexa::authProvider::GetAuthStateMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + m_authState = static_cast(payload.state); + + return m_authState; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return m_authState; + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBDoNotDisturb.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBDoNotDisturb.cpp new file mode 100644 index 000000000..e47df1d82 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBDoNotDisturb.cpp @@ -0,0 +1,97 @@ +/* + * 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. + */ + +#include +#include + +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBDoNotDisturb"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBDoNotDisturb::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto doNotDisturb = std::shared_ptr(new AASBDoNotDisturb()); + ThrowIfNot(doNotDisturb->initialize(messageBroker), "initializeFailed"); + + return doNotDisturb; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBDoNotDisturb::initialize(std::shared_ptr messageBroker) { + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::doNotDisturb::DoNotDisturbChangedMessage::topic(), + aasb::message::alexa::doNotDisturb::DoNotDisturbChangedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::doNotDisturb::DoNotDisturbChangedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->doNotDisturbChanged(payload.doNotDisturb); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "DoNotDisturbChangedMessage").d("reason", ex.what())); + } + }); + + return true; +} + +// +// aace::alexa::DoNotDisturb +// + +void AASBDoNotDisturb::setDoNotDisturb(const bool doNotDisturb) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::doNotDisturb::SetDoNotDisturbMessage message; + message.payload.doNotDisturb = doNotDisturb; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBEqualizerController.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBEqualizerController.cpp new file mode 100644 index 000000000..93d9574f6 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBEqualizerController.cpp @@ -0,0 +1,196 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBEqualizerController"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBEqualizerController::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the equalizer controller platform handler + auto equalizerController = std::shared_ptr(new AASBEqualizerController()); + + // initialize the equalizer controller + ThrowIfNot(equalizerController->initialize(messageBroker), "initializeFailed"); + + return equalizerController; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBEqualizerController::initialize(std::shared_ptr messageBroker) { + try { + m_messageBroker = messageBroker; + + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::equalizerController::LocalSetBandLevelsMessage::topic(), + aasb::message::alexa::equalizerController::LocalSetBandLevelsMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::equalizerController::LocalSetBandLevelsMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + // convert the band levels from aasb to aace types + std::vector bandLevels; + for (auto next : payload.bandLevels) { + bandLevels.push_back( + {static_cast(next.band), next.level}); + } + + sp->localSetBandLevels(bandLevels); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LocalSetBandLevelsMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::equalizerController::LocalAdjustBandLevelsMessage::topic(), + aasb::message::alexa::equalizerController::LocalAdjustBandLevelsMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::equalizerController::LocalAdjustBandLevelsMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + // convert the band levels from aasb to aace types + std::vector bandLevels; + for (auto next : payload.bandAdjustments) { + bandLevels.push_back( + {static_cast(next.band), next.level}); + } + + sp->localAdjustBandLevels(bandLevels); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LocalAdjustBandLevelsMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::equalizerController::LocalResetBandsMessage::topic(), + aasb::message::alexa::equalizerController::LocalResetBandsMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::equalizerController::LocalResetBandsMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + // convert the bands from aasb to aace types + std::vector bands; + for (auto band : payload.bands) { + bands.push_back(static_cast(band)); + } + + sp->localResetBands(bands); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LocalResetBandsMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::alexa::EqualizerController +// +void AASBEqualizerController::setBandLevels( + const std::vector& bandLevels) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + // create the SetBandLevelsMessage + aasb::message::alexa::equalizerController::SetBandLevelsMessage message; + + // convert the band levels from aace to aasb + for (auto next : bandLevels) { + message.payload.bandLevels.push_back( + {static_cast(next.first), next.second}); + } + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +std::vector AASBEqualizerController::getBandLevels() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::equalizerController::GetBandLevelsMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForBandLevelTimeout"); + + aasb::message::alexa::equalizerController::GetBandLevelsMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + std::vector bandLevels; + + // Need to check name of variable in GetBandLevelsMessageReply.h + for (auto next : payload.bandLevels) { + bandLevels.push_back({static_cast(next.band), next.level}); + } + + return bandLevels; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return {}; + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBExternalMediaAdapter.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBExternalMediaAdapter.cpp new file mode 100644 index 000000000..2d9a29bf9 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBExternalMediaAdapter.cpp @@ -0,0 +1,598 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace aace { +namespace alexa { + +// map TaskState values to JSON as strings +NLOHMANN_JSON_SERIALIZE_ENUM( + ExternalMediaAdapter::SupportedPlaybackOperation, + { + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::PLAY, "PLAY"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::PAUSE, "PAUSE"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::STOP, "STOP"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::NEXT, "NEXT"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::PREVIOUS, "PREVIOUS"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::START_OVER, "START_OVER"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::FAST_FORWARD, "FAST_FORWARD"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::REWIND, "REWIND"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_REPEAT, "ENABLE_REPEAT"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_REPEAT_ONE, "ENABLE_REPEAT_ONE"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::DISABLE_REPEAT, "DISABLE_REPEAT"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::ENABLE_SHUFFLE, "ENABLE_SHUFFLE"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::DISABLE_SHUFFLE, "DISABLE_SHUFFLE"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::FAVORITE, "FAVORITE"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::UNFAVORITE, "UNFAVORITE"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::SEEK, "SEEK"}, + {aace::alexa::ExternalMediaAdapter::SupportedPlaybackOperation::ADJUST_SEEK, "ADJUST_SEEK"}, + }) + +//json serialization +void to_json(nlohmann::json& j, const ExternalMediaAdapter::AuthorizedPlayerInfo& s) { + j["localPlayerId"] = s.localPlayerId; + j["authorized"] = s.authorized; +} + +void to_json(nlohmann::json& j, const ExternalMediaAdapter::SessionState& s) { + j["endpointId"] = s.endpointId; + j["loggedIn"] = s.loggedIn; + j["userName"] = s.userName; + j["isGuest"] = s.isGuest; + j["launched"] = s.launched; + j["active"] = s.active; + j["accessToken"] = s.accessToken; + j["tokenRefreshInterval"] = s.tokenRefreshInterval.count(); + j["playerCookie"] = s.playerCookie; + j["spiVersion"] = s.spiVersion; +} + +void to_json(nlohmann::json& j, const ExternalMediaAdapter::PlaybackState& s) { + j["state"] = s.state; + j["supportedOperations"] = s.supportedOperations; + j["trackOffset"] = s.trackOffset.count(); + j["shuffleEnabled"] = s.shuffleEnabled; + j["repeatEnabled"] = s.repeatEnabled; + j["favorites"] = s.favorites; + j["type"] = s.type; + j["playbackSource"] = s.playbackSource; + j["playbackSourceId"] = s.playbackSourceId; + j["trackName"] = s.trackName; + j["trackId"] = s.trackId; + j["trackNumber"] = s.trackNumber; + j["artistName"] = s.artistName; + j["artistId"] = s.artistId; + j["albumName"] = s.albumName; + j["albumId"] = s.albumId; + j["tinyURL"] = s.tinyURL; + j["smallURL"] = s.smallURL; + j["mediumURL"] = s.mediumURL; + j["largeURL"] = s.largeURL; + j["coverId"] = s.coverId; + j["mediaProvider"] = s.mediaProvider; + j["mediaType"] = s.mediaType; + j["duration"] = s.duration.count(); +} + +void to_json(nlohmann::json& j, const ExternalMediaAdapter::ExternalMediaAdapterState& s) { + j["sessionState"] = s.sessionState; + j["playbackState"] = s.playbackState; +} + +} // namespace alexa +} // namespace aace + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBExternalMediaAdapter"); + +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBExternalMediaAdapter::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto externalMediaAdapter = std::shared_ptr(new AASBExternalMediaAdapter()); + + ThrowIfNot(externalMediaAdapter->initialize(messageBroker), "initializeFailed"); + + return externalMediaAdapter; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBExternalMediaAdapter::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + m_messageBroker = messageBroker; + + std::weak_ptr wp = shared_from_this(); + messageBroker->subscribe( + aasb::message::alexa::externalMediaAdapter::ReportDiscoveredPlayersMessage::topic(), + aasb::message::alexa::externalMediaAdapter::ReportDiscoveredPlayersMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::externalMediaAdapter::ReportDiscoveredPlayersMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + std::vector discoveredPlayers; + for (auto player : payload.discoveredPlayers) { + aace::alexa::ExternalMediaAdapter::DiscoveredPlayerInfo discoveredPlayer; + discoveredPlayer.localPlayerId = player.localPlayerId; + discoveredPlayer.spiVersion = player.spiVersion; + discoveredPlayer.validationMethod = aasb::message::alexa::toString(player.validationMethod); + + std::vector validationDataVector; + for (auto data : player.validationData) { + validationDataVector.push_back(data.toString()); + } + discoveredPlayer.validationData = validationDataVector; + + discoveredPlayers.push_back(discoveredPlayer); + } + + sp->reportDiscoveredPlayers(discoveredPlayers); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ReportDiscoveredPlayersMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::externalMediaAdapter::RequestTokenMessage::topic(), + aasb::message::alexa::externalMediaAdapter::RequestTokenMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::externalMediaAdapter::RequestTokenMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->requestToken(payload.localPlayerId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "RequestTokenMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::externalMediaAdapter::LoginCompleteMessage::topic(), + aasb::message::alexa::externalMediaAdapter::LoginCompleteMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::externalMediaAdapter::LoginCompleteMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->loginComplete(payload.localPlayerId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LoginCompleteMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::externalMediaAdapter::LogoutCompleteMessage::topic(), + aasb::message::alexa::externalMediaAdapter::LogoutCompleteMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::externalMediaAdapter::LogoutCompleteMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->logoutComplete(payload.localPlayerId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "LogoutCompleteMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::externalMediaAdapter::PlayerEventMessage::topic(), + aasb::message::alexa::externalMediaAdapter::PlayerEventMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::externalMediaAdapter::PlayerEventMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->playerEvent(payload.localPlayerId, payload.eventName); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "PlayerEventMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::externalMediaAdapter::PlayerErrorMessage::topic(), + aasb::message::alexa::externalMediaAdapter::PlayerErrorMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::externalMediaAdapter::PlayerErrorMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->playerError( + payload.localPlayerId, payload.errorName, payload.code, payload.description, payload.fatal); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "PlayerErrorMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::externalMediaAdapter::SetFocusMessage::topic(), + aasb::message::alexa::externalMediaAdapter::SetFocusMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::externalMediaAdapter::SetFocusMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->setFocus(payload.localPlayerId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SetFocusMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::externalMediaAdapter::RemoveDiscoveredPlayerMessage::topic(), + aasb::message::alexa::externalMediaAdapter::RemoveDiscoveredPlayerMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::externalMediaAdapter::RemoveDiscoveredPlayerMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->removeDiscoveredPlayer(payload.localPlayerId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "RemoveDiscoveredPlayerMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +//aace::alexa::ExternalMediaAdapter +bool AASBExternalMediaAdapter::login( + const std::string& localPlayerId, + const std::string& accessToken, + const std::string& userName, + bool forceLogin, + std::chrono::milliseconds tokenRefreshInterval) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::externalMediaAdapter::LoginMessage message; + + message.payload.localPlayerId = localPlayerId; + message.payload.accessToken = accessToken; + message.payload.userName = userName; + message.payload.forceLogin = forceLogin; + message.payload.tokenRefreshInterval = tokenRefreshInterval.count(); + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::logout(const std::string& localPlayerId) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::externalMediaAdapter::LogoutMessage message; + + message.payload.localPlayerId = localPlayerId; + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::play( + const std::string& localPlayerId, + const std::string& playContextToken, + int64_t index, + std::chrono::milliseconds offset, + bool preload, + aace::alexa::ExternalMediaAdapter::Navigation navigation) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::externalMediaAdapter::PlayMessage message; + + message.payload.localPlayerId = localPlayerId; + message.payload.playContextToken = playContextToken; + message.payload.index = index; + message.payload.offset = offset.count(); + message.payload.preload = preload; + message.payload.navigation = static_cast(navigation); + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::playControl(const std::string& localPlayerId, PlayControlType controlType) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::externalMediaAdapter::PlayControlMessage message; + + message.payload.localPlayerId = localPlayerId; + message.payload.controlType = static_cast(controlType); + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::seek(const std::string& localPlayerId, std::chrono::milliseconds offset) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + aasb::message::alexa::externalMediaAdapter::SeekMessage message; + + message.payload.localPlayerId = localPlayerId; + message.payload.offset = offset.count(); + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::adjustSeek(const std::string& localPlayerId, std::chrono::milliseconds deltaOffset) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + aasb::message::alexa::externalMediaAdapter::AdjustSeekMessage message; + + message.payload.localPlayerId = localPlayerId; + message.payload.deltaOffset = deltaOffset.count(); + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::authorize( + const std::vector& authorizedPlayers) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + aasb::message::alexa::externalMediaAdapter::AuthorizeMessage message; + + std::vector aasbAuthorizedPlayers; + for (auto player : authorizedPlayers) { + aasb::message::alexa::AuthorizedPlayerInfo aasbPlayer; + aasbPlayer.localPlayerId = player.localPlayerId; + aasbPlayer.authorized = player.authorized; + aasbAuthorizedPlayers.push_back(aasbPlayer); + } + message.payload.authorizedPlayers = aasbAuthorizedPlayers; + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::getState( + const std::string& localPlayerId, + aace::alexa::ExternalMediaAdapter::ExternalMediaAdapterState& state) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + aasb::message::alexa::externalMediaAdapter::GetStateMessage message; + + message.payload.localPlayerId = localPlayerId; + + // construct AASB ExternalMediaAdapterState + aasb::message::alexa::ExternalMediaAdapterState externalMediaAdapterState; + + // AASB SessionState + aasb::message::alexa::SessionStateExternal sessionState; + sessionState.endpointId = state.sessionState.endpointId; + sessionState.loggedIn = state.sessionState.loggedIn; + sessionState.isGuest = state.sessionState.isGuest; + sessionState.launched = state.sessionState.launched; + sessionState.active = state.sessionState.active; + sessionState.accessToken = state.sessionState.accessToken; + sessionState.tokenRefreshInterval = state.sessionState.tokenRefreshInterval.count(); + sessionState.playerCookie = state.sessionState.playerCookie; + sessionState.spiVersion = state.sessionState.spiVersion; + externalMediaAdapterState.sessionState = sessionState; + + // AASB PlaybackState + aasb::message::alexa::PlaybackStateExternal playbackState; + playbackState.state = state.playbackState.state; + + std::vector supportedOperations; + for (auto operation : state.playbackState.supportedOperations) { + supportedOperations.push_back(static_cast(operation)); + } + playbackState.supportedOperations = supportedOperations; + + playbackState.trackOffset = state.playbackState.trackOffset.count(); + playbackState.shuffleEnabled = state.playbackState.shuffleEnabled; + playbackState.repeatEnabled = state.playbackState.repeatEnabled; + playbackState.favorites = static_cast(state.playbackState.favorites); + playbackState.type = state.playbackState.type; + playbackState.playbackSource = state.playbackState.playbackSource; + playbackState.playbackSourceId = state.playbackState.playbackSourceId; + playbackState.trackName = state.playbackState.trackName; + playbackState.trackId = state.playbackState.trackId; + playbackState.trackNumber = state.playbackState.trackNumber; + playbackState.artistName = state.playbackState.artistName; + playbackState.artistId = state.playbackState.artistId; + playbackState.albumName = state.playbackState.albumName; + playbackState.albumId = state.playbackState.albumId; + playbackState.tinyURL = state.playbackState.tinyURL; + playbackState.smallURL = state.playbackState.smallURL; + playbackState.mediumURL = state.playbackState.mediumURL; + playbackState.largeURL = state.playbackState.largeURL; + playbackState.coverId = state.playbackState.coverId; + playbackState.mediaProvider = state.playbackState.mediaProvider; + playbackState.mediaType = static_cast(state.playbackState.mediaType); + playbackState.duration = state.playbackState.duration.count(); + externalMediaAdapterState.playbackState = playbackState; + + message.payload.state = externalMediaAdapterState; + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::volumeChanged(float volume) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + aasb::message::alexa::externalMediaAdapter::VolumeChangedMessage message; + + message.payload.volume = volume; + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBExternalMediaAdapter::mutedStateChanged(aace::alexa::ExternalMediaAdapter::MutedState state) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::externalMediaAdapter::MutedStateChangedMessage message; + + message.payload.state = static_cast(state); + + m_messageBroker_lock->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBGlobalPreset.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBGlobalPreset.cpp new file mode 100644 index 000000000..359bd8169 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBGlobalPreset.cpp @@ -0,0 +1,78 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBGlobalPreset"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBGlobalPreset::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the speech synthesizer platform handler + auto globalPreset = std::shared_ptr(new AASBGlobalPreset()); + + // initialize the platform handler + ThrowIfNot(globalPreset->initialize(messageBroker), "initializeFailed"); + + return globalPreset; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBGlobalPreset::initialize(std::shared_ptr messageBroker) { + try { + m_messageBroker = messageBroker; + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +void AASBGlobalPreset::setGlobalPreset(int preset) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::globalPreset::SetGlobalPresetMessage message; + + message.payload.preset = preset; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBLocalMediaSource.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBLocalMediaSource.cpp new file mode 100644 index 000000000..55fcd14f2 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBLocalMediaSource.cpp @@ -0,0 +1,284 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +//#include +#include +#include +#include +//#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBLocalMediaSource"); + +// aliases +using Message = aace::engine::aasb::Message; + +AASBLocalMediaSource::AASBLocalMediaSource(LocalMediaSource::Source source) : LocalMediaSource(source) { +} + +std::shared_ptr AASBLocalMediaSource::create( + aace::alexa::LocalMediaSource::Source source, + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the local media source platform handler + auto localMediaSource = std::shared_ptr(new AASBLocalMediaSource(source)); + + // initialize the platform handler + ThrowIfNot(localMediaSource->initialize(messageBroker), "initializeFailed"); + + return localMediaSource; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBLocalMediaSource::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + m_messageBroker = messageBroker; + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +//aace::alexa::LocalMediaSource +bool AASBLocalMediaSource::play(ContentSelector contentSelectorType, const std::string& payload) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::localMediaSource::PlayMessage message; + + message.payload.source = static_cast(getSource()); + message.payload.contentSelectorType = + static_cast(contentSelectorType); + message.payload.payload = payload; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBLocalMediaSource::playControl(aace::alexa::LocalMediaSource::PlayControlType controlType) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::localMediaSource::PlayControlMessage message; + + message.payload.source = static_cast(getSource()); + message.payload.controlType = static_cast(controlType); + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBLocalMediaSource::seek(std::chrono::milliseconds offset) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::localMediaSource::SeekMessage message; + + message.payload.source = static_cast(getSource()); + message.payload.offset = offset.count(); + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBLocalMediaSource::adjustSeek(std::chrono::milliseconds deltaOffset) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::localMediaSource::AdjustSeekMessage message; + + message.payload.source = static_cast(getSource()); + message.payload.deltaOffset = deltaOffset.count(); + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +aace::alexa::LocalMediaSource::LocalMediaSourceState AASBLocalMediaSource::getState() { + LocalMediaSourceState state; + + try { + AACE_VERBOSE(LX(TAG)); + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::localMediaSource::GetStateMessage message; + + message.payload.source = static_cast(getSource()); + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForRefreshTokenTimeout"); + + aasb::message::alexa::localMediaSource::GetStateMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + state.playbackState.state = payload.state.playbackState.state; + state.playbackState.trackOffset = std::chrono::milliseconds(payload.state.playbackState.trackOffset); + state.playbackState.shuffleEnabled = payload.state.playbackState.shuffleEnabled; + state.playbackState.repeatEnabled = payload.state.playbackState.repeatEnabled; + state.playbackState.favorites = + static_cast(payload.state.playbackState.favorites); + state.playbackState.type = payload.state.playbackState.type; + state.playbackState.playbackSource = payload.state.playbackState.playbackSource; + state.playbackState.playbackSourceId = payload.state.playbackState.playbackSourceId; + state.playbackState.trackName = payload.state.playbackState.trackName; + state.playbackState.trackId = payload.state.playbackState.trackId; + state.playbackState.trackNumber = payload.state.playbackState.trackNumber; + state.playbackState.artistName = payload.state.playbackState.artistName; + state.playbackState.artistId = payload.state.playbackState.artistId; + state.playbackState.albumName = payload.state.playbackState.albumName; + state.playbackState.albumId = payload.state.playbackState.albumId; + state.playbackState.tinyURL = payload.state.playbackState.tinyURL; + state.playbackState.smallURL = payload.state.playbackState.smallURL; + state.playbackState.mediumURL = payload.state.playbackState.mediumURL; + state.playbackState.largeURL = payload.state.playbackState.largeURL; + state.playbackState.coverId = payload.state.playbackState.coverId; + state.playbackState.mediaProvider = payload.state.playbackState.mediaProvider; + state.playbackState.mediaType = + static_cast(payload.state.playbackState.mediaType); + state.playbackState.duration = std::chrono::milliseconds(payload.state.playbackState.duration); + + for (auto next : payload.state.playbackState.supportedOperations) { + state.playbackState.supportedOperations.push_back( + static_cast(next)); + } + + state.sessionState.endpointId = payload.state.sessionState.endpointId; + state.sessionState.loggedIn = payload.state.sessionState.loggedIn; + state.sessionState.isGuest = payload.state.sessionState.isGuest; + state.sessionState.launched = payload.state.sessionState.launched; + state.sessionState.active = payload.state.sessionState.active; + state.sessionState.accessToken = payload.state.sessionState.accessToken; + state.sessionState.tokenRefreshInterval = + std::chrono::milliseconds(payload.state.sessionState.tokenRefreshInterval); + state.sessionState.spiVersion = payload.state.sessionState.spiVersion; + + for (auto selector : payload.state.sessionState.supportedContentSelectors) { + state.sessionState.supportedContentSelectors.push_back( + static_cast(selector)); + } + + AACE_INFO(LX(TAG).m("ReplyReceived")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } + + return state; +} + +bool AASBLocalMediaSource::volumeChanged(float volume) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::localMediaSource::VolumeChangedMessage message; + + message.payload.source = static_cast(getSource()); + message.payload.volume = volume; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBLocalMediaSource::mutedStateChanged(aace::alexa::LocalMediaSource::MutedState state) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::localMediaSource::MutedStateChangedMessage message; + + message.payload.source = static_cast(getSource()); + message.payload.state = static_cast(state); + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBNotifications.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBNotifications.cpp new file mode 100644 index 000000000..f9f2d5da5 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBNotifications.cpp @@ -0,0 +1,94 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.Notifications"); + +std::shared_ptr AASBNotifications::create( + std::shared_ptr messageBroker) { + try { + auto notifications = std::shared_ptr(new AASBNotifications()); + + ThrowIfNot(notifications->initialize(messageBroker), "initializeFailed"); + + return notifications; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBNotifications::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::alexa::Notifications +// + +void AASBNotifications::setIndicator(aace::alexa::Notifications::IndicatorState state) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::notifications::SetIndicatorMessage message; + message.payload.state = static_cast(state); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBNotifications::onNotificationReceived() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::notifications::OnNotificationReceivedMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBPlaybackController.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBPlaybackController.cpp new file mode 100644 index 000000000..1ce2f591b --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBPlaybackController.cpp @@ -0,0 +1,99 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBPlaybackController"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBPlaybackController::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the playback controller platform handler + auto playbackController = std::shared_ptr(new AASBPlaybackController()); + + // initialize the playback controller + ThrowIfNot(playbackController->initialize(messageBroker), "initializeFailed"); + + return playbackController; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBPlaybackController::initialize(std::shared_ptr messageBroker) { + try { + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::playbackController::ButtonPressedMessage::topic(), + aasb::message::alexa::playbackController::ButtonPressedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::playbackController::ButtonPressedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->buttonPressed(static_cast(payload.button)); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ButtonPressedMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::playbackController::TogglePressedMessage::topic(), + aasb::message::alexa::playbackController::TogglePressedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::playbackController::TogglePressedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->togglePressed(static_cast(payload.toggle), payload.action); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "TogglePressedMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBSpeechRecognizer.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBSpeechRecognizer.cpp new file mode 100644 index 000000000..8d53ddf7b --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBSpeechRecognizer.cpp @@ -0,0 +1,139 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBSpeechRecognizer"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBSpeechRecognizer::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the speech recognizer platform handler + auto speechRecognizer = std::shared_ptr(new AASBSpeechRecognizer()); + + // initialize the platform handler + ThrowIfNot(speechRecognizer->initialize(messageBroker), "initializeFailed"); + + return speechRecognizer; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBSpeechRecognizer::initialize(std::shared_ptr messageBroker) { + try { + // save the message broker reference + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::speechRecognizer::StartCaptureMessage::topic(), + aasb::message::alexa::speechRecognizer::StartCaptureMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::alexa::speechRecognizer::StartCaptureMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->startCapture( + static_cast(payload.initiator), + payload.keywordBegin, + payload.keywordEnd, + payload.keyword); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "StartCaptureMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::alexa::speechRecognizer::StopCaptureMessage::topic(), + aasb::message::alexa::speechRecognizer::StopCaptureMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + sp->stopCapture(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "StopCaptureMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBSpeechRecognizer::wakewordDetected(const std::string& wakeword) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::speechRecognizer::WakewordDetectedMessage message; + message.payload.wakeword = wakeword; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +void AASBSpeechRecognizer::endOfSpeechDetected() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::speechRecognizer::EndOfSpeechDetectedMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBSpeechSynthesizer.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBSpeechSynthesizer.cpp new file mode 100644 index 000000000..008777f7d --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBSpeechSynthesizer.cpp @@ -0,0 +1,38 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBSpeechSynthesizer"); + +std::shared_ptr AASBSpeechSynthesizer::create() { + try { + // create the speech synthesizer platform handler + return std::shared_ptr(new AASBSpeechSynthesizer()); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-alexa/engine/src/AASBTemplateRuntime.cpp b/extensions/aasb/modules/aasb-alexa/engine/src/AASBTemplateRuntime.cpp new file mode 100644 index 000000000..ec8cfe745 --- /dev/null +++ b/extensions/aasb/modules/aasb-alexa/engine/src/AASBTemplateRuntime.cpp @@ -0,0 +1,154 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace alexa { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.alexa.AASBTemplateRuntime"); + +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBTemplateRuntime::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBroker"); + + auto templateRuntime = std::shared_ptr(new AASBTemplateRuntime()); + + // initialize the platform handler + ThrowIfNot(templateRuntime->initialize(messageBroker), "initializeFailed"); + + return templateRuntime; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBTemplateRuntime::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::alexa::templateRuntime::DisplayCardClearedMessage::topic(), + aasb::message::alexa::templateRuntime::DisplayCardClearedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + sp->displayCardCleared(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "DisplayCardClearedMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +void AASBTemplateRuntime::renderTemplate(const std::string& payload, FocusState focusState) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::templateRuntime::RenderTemplateMessage message; + + message.payload.payload = payload; + message.payload.focusState = static_cast(focusState); + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBTemplateRuntime::clearTemplate() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::templateRuntime::ClearTemplateMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBTemplateRuntime::renderPlayerInfo( + const std::string& payload, + PlayerActivity audioPlayerState, + std::chrono::milliseconds offset, + FocusState focusState) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::templateRuntime::RenderPlayerInfoMessage message; + + message.payload.payload = payload; + message.payload.audioPlayerState = static_cast(audioPlayerState); + message.payload.offset = offset.count(); + message.payload.focusState = static_cast(focusState); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBTemplateRuntime::clearPlayerInfo() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::alexa::templateRuntime::ClearPlayerInfoMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace alexa +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-apl/CMakeLists.txt b/extensions/aasb/modules/aasb-apl/CMakeLists.txt new file mode 100644 index 000000000..264fc2327 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/CMakeLists.txt @@ -0,0 +1,46 @@ +# AASB APL + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASBAPL LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AASBAPL") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AASBAPL.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +# AASBAPL module depends on AACEAASB and AACEAPL module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + include(${AAC_HOME}/share/cmake/AACEAPL.cmake) + include(${AAC_HOME}/share/cmake/AACECore.cmake) +endif() + +#add_subdirectory(platform) +add_subdirectory(engine) + +install( + EXPORT AASBAPL + DESTINATION share/cmake +) diff --git a/extensions/aasb/modules/aasb-apl/aac-aasb-apl.bb b/extensions/aasb/modules/aasb-apl/aac-aasb-apl.bb new file mode 100644 index 000000000..b3df336e7 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/aac-aasb-apl.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB APL" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/APL/AASBAPLEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-apl aac-module-aasb nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb-apl/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-apl/engine/CMakeLists.txt new file mode 100644 index 000000000..1c14ab581 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/CMakeLists.txt @@ -0,0 +1,65 @@ +# AASB APL Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/APL/AASBAPL.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/APL/AASBAPLEngineService.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_APL_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/ActivityEvent.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/ClearAllExecuteCommandsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/ClearCardMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/ClearDocumentMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/ExecuteCommandsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/ExecuteCommandsResultMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/GetVisualContextMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/GetVisualContextMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/InterruptCommandSequenceMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/ProcessActivityEventMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/RenderDocumentMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/RenderDocumentResultMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/SendUserEventMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/SetAPLMaxVersionMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Apl/APL/SetDocumentIdleTimeoutMessage.h +) + +source_group("APL Message Headers" FILES ${AASB_APL_MESSAGES}) + +add_library(AASBAPLEngine SHARED + ${HEADERS} + ${AASB_APL_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAPL.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBAPLEngineService.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBAPLEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBAPLEngine + PUBLIC + AACEAASBEngine + AACEAPLPlatform +) + +install( + TARGETS AASBAPLEngine + DESTINATION lib + EXPORT AASBAPL +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Engine/APL/AASBAPL.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Engine/APL/AASBAPL.h new file mode 100644 index 000000000..1ee19fac9 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Engine/APL/AASBAPL.h @@ -0,0 +1,52 @@ +/* + * 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 AASB_ENGINE_APL_AASB_APL_H +#define AASB_ENGINE_APL_AASB_APL_H + +#include +#include + +namespace aasb { +namespace engine { +namespace apl { + +class AASBAPL + : public aace::apl::APL + , public std::enable_shared_from_this { +private: + AASBAPL() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create(std::shared_ptr messageBroker); + + // aace::apl + std::string getVisualContext() override; + void renderDocument(const std::string& payload, const std::string& token, const std::string& windowId) override; + void clearDocument() override; + void executeCommands(const std::string& payload, const std::string& token) override; + void interruptCommandSequence() override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace apl +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Engine/APL/AASBAPLEngineService.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Engine/APL/AASBAPLEngineService.h new file mode 100644 index 000000000..594d21cf3 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Engine/APL/AASBAPLEngineService.h @@ -0,0 +1,47 @@ +/* + * 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 AASB_ENGINE_APL_AASB_APL_ENGINE_SERVICE_H +#define AASB_ENGINE_APL_AASB_APL_ENGINE_SERVICE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace apl { + +class AASBAPLEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.apl", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBAPLEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBAPLEngineService() = default; +}; + +} // namespace apl +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ActivityEvent.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ActivityEvent.h new file mode 100644 index 000000000..9580194a0 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ActivityEvent.h @@ -0,0 +1,93 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_ACTIVITYEVENT_H +#define APL_ACTIVITYEVENT_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace apl { + +//Enum Definition +enum class ActivityEvent { + ACTIVATED, + DEACTIVATED, + ONE_TIME, + INTERRUPT, + UNKNOWN, +}; + +inline std::string toString(ActivityEvent enumValue) { + switch (enumValue) { + case (ActivityEvent::ACTIVATED): + return "ACTIVATED"; + case (ActivityEvent::DEACTIVATED): + return "DEACTIVATED"; + case (ActivityEvent::ONE_TIME): + return "ONE_TIME"; + case (ActivityEvent::INTERRUPT): + return "INTERRUPT"; + case (ActivityEvent::UNKNOWN): + return "UNKNOWN"; + } + throw std::runtime_error("invalidActivityEventType"); +} + +inline ActivityEvent toActivityEvent(const std::string& stringValue) { + static std::unordered_map map = { + {"ACTIVATED", ActivityEvent::ACTIVATED}, + {"DEACTIVATED", ActivityEvent::DEACTIVATED}, + {"ONE_TIME", ActivityEvent::ONE_TIME}, + {"INTERRUPT", ActivityEvent::INTERRUPT}, + {"UNKNOWN", ActivityEvent::UNKNOWN}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidActivityEventType"); +} + +inline void to_json(nlohmann::json& j, const ActivityEvent& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ActivityEvent& c) { + c = toActivityEvent(j); +} + +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_ACTIVITYEVENT_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearAllExecuteCommandsMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearAllExecuteCommandsMessage.h new file mode 100644 index 000000000..586e1ed23 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearAllExecuteCommandsMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_CLEARALLEXECUTECOMMANDSMESSAGE_H +#define APL_CLEARALLEXECUTECOMMANDSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct ClearAllExecuteCommandsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearAllExecuteCommands"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearAllExecuteCommands"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ClearAllExecuteCommandsMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, ClearAllExecuteCommandsMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const ClearAllExecuteCommandsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ClearAllExecuteCommandsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ClearAllExecuteCommandsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ClearAllExecuteCommandsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ClearAllExecuteCommandsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ClearAllExecuteCommandsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ClearAllExecuteCommandsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_CLEARALLEXECUTECOMMANDSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearCardMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearCardMessage.h new file mode 100644 index 000000000..b7cc8844f --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearCardMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_CLEARCARDMESSAGE_H +#define APL_CLEARCARDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct ClearCardMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearCard"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearCard"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ClearCardMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, ClearCardMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const ClearCardMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ClearCardMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ClearCardMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ClearCardMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ClearCardMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ClearCardMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ClearCardMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_CLEARCARDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearDocumentMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearDocumentMessage.h new file mode 100644 index 000000000..281a16ad4 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ClearDocumentMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_CLEARDOCUMENTMESSAGE_H +#define APL_CLEARDOCUMENTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct ClearDocumentMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearDocument"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearDocument"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ClearDocumentMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, ClearDocumentMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const ClearDocumentMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ClearDocumentMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ClearDocumentMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ClearDocumentMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ClearDocumentMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ClearDocumentMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ClearDocumentMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_CLEARDOCUMENTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsMessage.h new file mode 100644 index 000000000..dea7803bc --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_EXECUTECOMMANDSMESSAGE_H +#define APL_EXECUTECOMMANDSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct ExecuteCommandsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ExecuteCommands"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string payload; + std::string token; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ExecuteCommands"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ExecuteCommandsMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, ExecuteCommandsMessage::Payload& c) { + j.at("payload").get_to(c.payload); + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const ExecuteCommandsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ExecuteCommandsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ExecuteCommandsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ExecuteCommandsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ExecuteCommandsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ExecuteCommandsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ExecuteCommandsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_EXECUTECOMMANDSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsResultMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsResultMessage.h new file mode 100644 index 000000000..ffff4d4ab --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ExecuteCommandsResultMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_EXECUTECOMMANDSRESULTMESSAGE_H +#define APL_EXECUTECOMMANDSRESULTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct ExecuteCommandsResultMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ExecuteCommandsResult"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string token; + bool result; + std::string error; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ExecuteCommandsResult"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ExecuteCommandsResultMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + {"result", c.result}, + {"error", c.error}, + }; +} +inline void from_json(const nlohmann::json& j, ExecuteCommandsResultMessage::Payload& c) { + j.at("token").get_to(c.token); + j.at("result").get_to(c.result); + j.at("error").get_to(c.error); +} + +inline void to_json(nlohmann::json& j, const ExecuteCommandsResultMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ExecuteCommandsResultMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ExecuteCommandsResultMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ExecuteCommandsResultMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ExecuteCommandsResultMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ExecuteCommandsResultMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ExecuteCommandsResultMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_EXECUTECOMMANDSRESULTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/GetVisualContextMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/GetVisualContextMessage.h new file mode 100644 index 000000000..d26a89c22 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/GetVisualContextMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_GETVISUALCONTEXTMESSAGE_H +#define APL_GETVISUALCONTEXTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct GetVisualContextMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "GetVisualContext"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "GetVisualContext"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetVisualContextMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetVisualContextMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetVisualContextMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetVisualContextMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetVisualContextMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetVisualContextMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetVisualContextMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetVisualContextMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetVisualContextMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_GETVISUALCONTEXTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/GetVisualContextMessageReply.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/GetVisualContextMessageReply.h new file mode 100644 index 000000000..451abb603 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/GetVisualContextMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_GETVISUALCONTEXTMESSAGEREPLY_H +#define APL_GETVISUALCONTEXTMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct GetVisualContextMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "GetVisualContext"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string visualContext; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "GetVisualContext"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetVisualContextMessageReply::Payload& c) { + j = nlohmann::json{ + {"visualContext", c.visualContext}, + }; +} +inline void from_json(const nlohmann::json& j, GetVisualContextMessageReply::Payload& c) { + j.at("visualContext").get_to(c.visualContext); +} + +inline void to_json(nlohmann::json& j, const GetVisualContextMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetVisualContextMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetVisualContextMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetVisualContextMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetVisualContextMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetVisualContextMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetVisualContextMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_GETVISUALCONTEXTMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/InterruptCommandSequenceMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/InterruptCommandSequenceMessage.h new file mode 100644 index 000000000..9780b4bff --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/InterruptCommandSequenceMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_INTERRUPTCOMMANDSEQUENCEMESSAGE_H +#define APL_INTERRUPTCOMMANDSEQUENCEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct InterruptCommandSequenceMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "InterruptCommandSequence"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "InterruptCommandSequence"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const InterruptCommandSequenceMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, InterruptCommandSequenceMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const InterruptCommandSequenceMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, InterruptCommandSequenceMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const InterruptCommandSequenceMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, InterruptCommandSequenceMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const InterruptCommandSequenceMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, InterruptCommandSequenceMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string InterruptCommandSequenceMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_INTERRUPTCOMMANDSEQUENCEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ProcessActivityEventMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ProcessActivityEventMessage.h new file mode 100644 index 000000000..f62eafcfc --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/ProcessActivityEventMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_PROCESSACTIVITYEVENTMESSAGE_H +#define APL_PROCESSACTIVITYEVENTMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Apl/APL/ActivityEvent.h" + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct ProcessActivityEventMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ProcessActivityEvent"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ActivityEvent = ::aasb::message::apl::ActivityEvent; + + std::string source; + ActivityEvent event; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "ProcessActivityEvent"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ProcessActivityEventMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source}, + {"event", c.event}, + }; +} +inline void from_json(const nlohmann::json& j, ProcessActivityEventMessage::Payload& c) { + j.at("source").get_to(c.source); + j.at("event").get_to(c.event); +} + +inline void to_json(nlohmann::json& j, const ProcessActivityEventMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ProcessActivityEventMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ProcessActivityEventMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ProcessActivityEventMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ProcessActivityEventMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ProcessActivityEventMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ProcessActivityEventMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_PROCESSACTIVITYEVENTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentMessage.h new file mode 100644 index 000000000..51a596df9 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_RENDERDOCUMENTMESSAGE_H +#define APL_RENDERDOCUMENTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct RenderDocumentMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "RenderDocument"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string payload; + std::string token; + std::string windowId; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "RenderDocument"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RenderDocumentMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + {"token", c.token}, + {"windowId", c.windowId}, + }; +} +inline void from_json(const nlohmann::json& j, RenderDocumentMessage::Payload& c) { + j.at("payload").get_to(c.payload); + j.at("token").get_to(c.token); + j.at("windowId").get_to(c.windowId); +} + +inline void to_json(nlohmann::json& j, const RenderDocumentMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RenderDocumentMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RenderDocumentMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RenderDocumentMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RenderDocumentMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RenderDocumentMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RenderDocumentMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_RENDERDOCUMENTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentResultMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentResultMessage.h new file mode 100644 index 000000000..1788d6deb --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/RenderDocumentResultMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_RENDERDOCUMENTRESULTMESSAGE_H +#define APL_RENDERDOCUMENTRESULTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct RenderDocumentResultMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "RenderDocumentResult"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string token; + bool result; + std::string error; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "RenderDocumentResult"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RenderDocumentResultMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + {"result", c.result}, + {"error", c.error}, + }; +} +inline void from_json(const nlohmann::json& j, RenderDocumentResultMessage::Payload& c) { + j.at("token").get_to(c.token); + j.at("result").get_to(c.result); + j.at("error").get_to(c.error); +} + +inline void to_json(nlohmann::json& j, const RenderDocumentResultMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RenderDocumentResultMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RenderDocumentResultMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RenderDocumentResultMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RenderDocumentResultMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RenderDocumentResultMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RenderDocumentResultMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_RENDERDOCUMENTRESULTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendUserEventMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendUserEventMessage.h new file mode 100644 index 000000000..305ab3cd1 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SendUserEventMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_SENDUSEREVENTMESSAGE_H +#define APL_SENDUSEREVENTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct SendUserEventMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "SendUserEvent"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string payload; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "SendUserEvent"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SendUserEventMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendUserEventMessage::Payload& c) { + j.at("payload").get_to(c.payload); +} + +inline void to_json(nlohmann::json& j, const SendUserEventMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SendUserEventMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SendUserEventMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SendUserEventMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SendUserEventMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendUserEventMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SendUserEventMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_SENDUSEREVENTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetAPLMaxVersionMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetAPLMaxVersionMessage.h new file mode 100644 index 000000000..d5221f429 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetAPLMaxVersionMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_SETAPLMAXVERSIONMESSAGE_H +#define APL_SETAPLMAXVERSIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct SetAPLMaxVersionMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "SetAPLMaxVersion"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string version; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "SetAPLMaxVersion"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetAPLMaxVersionMessage::Payload& c) { + j = nlohmann::json{ + {"version", c.version}, + }; +} +inline void from_json(const nlohmann::json& j, SetAPLMaxVersionMessage::Payload& c) { + j.at("version").get_to(c.version); +} + +inline void to_json(nlohmann::json& j, const SetAPLMaxVersionMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetAPLMaxVersionMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetAPLMaxVersionMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetAPLMaxVersionMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetAPLMaxVersionMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetAPLMaxVersionMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetAPLMaxVersionMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_SETAPLMAXVERSIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetDocumentIdleTimeoutMessage.h b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetDocumentIdleTimeoutMessage.h new file mode 100644 index 000000000..2da3deff4 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/include/AASB/Message/Apl/APL/SetDocumentIdleTimeoutMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef APL_SETDOCUMENTIDLETIMEOUTMESSAGE_H +#define APL_SETDOCUMENTIDLETIMEOUTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace apl { +namespace apl { + +//Class Definition +struct SetDocumentIdleTimeoutMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "SetDocumentIdleTimeout"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + int64_t timeout; + }; + static const std::string& topic() { + static std::string topic = "APL"; + return topic; + } + static const std::string& action() { + static std::string action = "SetDocumentIdleTimeout"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetDocumentIdleTimeoutMessage::Payload& c) { + j = nlohmann::json{ + {"timeout", c.timeout}, + }; +} +inline void from_json(const nlohmann::json& j, SetDocumentIdleTimeoutMessage::Payload& c) { + j.at("timeout").get_to(c.timeout); +} + +inline void to_json(nlohmann::json& j, const SetDocumentIdleTimeoutMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetDocumentIdleTimeoutMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetDocumentIdleTimeoutMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetDocumentIdleTimeoutMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetDocumentIdleTimeoutMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetDocumentIdleTimeoutMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetDocumentIdleTimeoutMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace apl +} // namespace apl +} // namespace message +} // namespace aasb + +#endif // APL_SETDOCUMENTIDLETIMEOUTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-apl/engine/src/AASBAPL.cpp b/extensions/aasb/modules/aasb-apl/engine/src/AASBAPL.cpp new file mode 100644 index 000000000..7328a1af4 --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/src/AASBAPL.cpp @@ -0,0 +1,309 @@ +/* + * 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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace apl { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.apl.AASBAPL"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBAPL::create(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the car control platform handler + auto apl = std::shared_ptr(new AASBAPL()); + + // initialize the platform handler + ThrowIfNot(apl->initialize(messageBroker), "initializeAASBAPLFailed"); + + return apl; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAPL::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::apl::apl::ClearCardMessage::topic(), + aasb::message::apl::apl::ClearCardMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + sp->clearCard(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ClearCardMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::apl::apl::ClearAllExecuteCommandsMessage::topic(), + aasb::message::apl::apl::ClearAllExecuteCommandsMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + sp->clearAllExecuteCommands(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ClearAllExecuteCommandsMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::apl::apl::SendUserEventMessage::topic(), + aasb::message::apl::apl::SendUserEventMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::apl::apl::SendUserEventMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->sendUserEvent(payload.payload); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SendUserEventMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::apl::apl::SetAPLMaxVersionMessage::topic(), + aasb::message::apl::apl::SetAPLMaxVersionMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::apl::apl::SetAPLMaxVersionMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->setAPLMaxVersion(payload.version); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SetAPLMaxVersionMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::apl::apl::SetDocumentIdleTimeoutMessage::topic(), + aasb::message::apl::apl::SetDocumentIdleTimeoutMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::apl::apl::SetDocumentIdleTimeoutMessage::Payload payload = + nlohmann::json::parse(message.payload()); + std::chrono::milliseconds millis(payload.timeout); + + sp->setDocumentIdleTimeout(millis); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SetDocumentIdleTimeoutMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::apl::apl::RenderDocumentResultMessage::topic(), + aasb::message::apl::apl::RenderDocumentResultMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::apl::apl::RenderDocumentResultMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->renderDocumentResult(payload.token, payload.result, payload.error); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "RenderDocumentResultMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::apl::apl::ExecuteCommandsResultMessage::topic(), + aasb::message::apl::apl::ExecuteCommandsResultMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::apl::apl::ExecuteCommandsResultMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->executeCommandsResult(payload.token, payload.result, payload.error); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ExecuteCommandsResultMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::apl::apl::ProcessActivityEventMessage::topic(), + aasb::message::apl::apl::ProcessActivityEventMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::apl::apl::ProcessActivityEventMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->processActivityEvent(payload.source, static_cast(payload.event)); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ProcessActivityEventMessage").d("reason", ex.what())); + } + }); + + return true; + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::apl::APL +// + +std::string AASBAPL::getVisualContext() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::apl::apl::GetVisualContextMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).timeout(std::chrono::milliseconds(500)).get(); + + std::string visualContext; + if (result.valid()) { + std::string payload = result.payload(); + aasb::message::apl::apl::GetVisualContextMessageReply::Payload replyPayload = + nlohmann::json::parse(payload); + visualContext = replyPayload.visualContext; + } else { + AACE_ERROR(LX(TAG).m("Visual context is invalid")); + } + + return visualContext; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return ""; + } +} + +void AASBAPL::renderDocument(const std::string& payload, const std::string& token, const std::string& windowId) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::apl::apl::RenderDocumentMessage message; + message.payload.payload = payload; + message.payload.token = token; + message.payload.windowId = windowId; + + m_messageBroker_lock->publish(message.toString()).send(); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBAPL::clearDocument() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::apl::apl::ClearDocumentMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBAPL::executeCommands(const std::string& payload, const std::string& token) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::apl::apl::ExecuteCommandsMessage message; + message.payload.payload = payload; + message.payload.token = token; + + m_messageBroker_lock->publish(message.toString()).send(); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBAPL::interruptCommandSequence() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::apl::apl::InterruptCommandSequenceMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace apl +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-apl/engine/src/AASBAPLEngineService.cpp b/extensions/aasb/modules/aasb-apl/engine/src/AASBAPLEngineService.cpp new file mode 100644 index 000000000..c83333ccf --- /dev/null +++ b/extensions/aasb/modules/aasb-apl/engine/src/AASBAPLEngineService.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace apl { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.apl.AASBAPLEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBAPLEngineService); + +AASBAPLEngineService::AASBAPLEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"APL"}) { +} + +bool AASBAPLEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // APL + if (isInterfaceEnabled("APL")) { + auto apl = AASBAPL::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(apl, "invalidAPLHandler"); + getContext()->registerPlatformInterface(apl); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace apl +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-car-control/CMakeLists.txt b/extensions/aasb/modules/aasb-car-control/CMakeLists.txt new file mode 100644 index 000000000..7947d96dc --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/CMakeLists.txt @@ -0,0 +1,46 @@ +# AASB Car Control + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASBCarControl LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AASBCarControl") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AASBCarControl.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +# AASBCarControl module depends on AACEAASB and AACECarControl module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + include(${AAC_HOME}/share/cmake/AACECarControl.cmake) + include(${AAC_HOME}/share/cmake/AACECore.cmake) +endif() + +#add_subdirectory(platform) +add_subdirectory(engine) + +install( + EXPORT AASBCarControl + DESTINATION share/cmake +) diff --git a/extensions/aasb/modules/aasb-car-control/aac-aasb-car-control.bb b/extensions/aasb/modules/aasb-car-control/aac-aasb-car-control.bb new file mode 100644 index 000000000..fcf246100 --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/aac-aasb-car-control.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB CBL" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/CarControl/AASBCarControlEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-car-control aac-module-aasb nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb-car-control/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-car-control/engine/CMakeLists.txt new file mode 100644 index 000000000..d62a54c63 --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/CMakeLists.txt @@ -0,0 +1,58 @@ +# AASB Car Control Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/CarControl/AASBCarControl.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/CarControl/AASBCarControlEngineService.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_CARCONTROL_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/CarControl/CarControl/AdjustRangeControllerValueMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/CarControl/CarControl/AdjustModeControllerValueMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/CarControl/CarControl/AdjustControllerValueMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/CarControl/CarControl/SetPowerControllerValueMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/CarControl/CarControl/SetModeControllerValueMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/CarControl/CarControl/SetRangeControllerValueMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/CarControl/CarControl/SetToggleControllerValueMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/CarControl/CarControl/SetControllerValueMessageReply.h +) + +source_group("Car Control Message Headers" FILES ${AASB_CARCONTROL_MESSAGES}) + +add_library(AASBCarControlEngine SHARED + ${HEADERS} + ${AASB_CARCONTROL_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBCarControl.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBCarControlEngineService.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBCarControlEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBCarControlEngine + PUBLIC + AACEAASBEngine + AACECarControlPlatform +) + +install( + TARGETS AASBCarControlEngine + DESTINATION lib + EXPORT AASBCarControl +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Engine/CarControl/AASBCarControl.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Engine/CarControl/AASBCarControl.h new file mode 100644 index 000000000..1560f30af --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Engine/CarControl/AASBCarControl.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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 AASB_ENGINE_CAR_CONTROL_AASB_CAR_CONTROL_H +#define AASB_ENGINE_CAR_CONTROL_AASB_CAR_CONTROL_H + +#include +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace carControl { + +class AASBCarControl + : public aace::carControl::CarControl + , public std::enable_shared_from_this { +private: + using CarControlPromise = std::promise; + AASBCarControl() = default; + + bool initialize(std::shared_ptr messageBroker); + void addReplyMessagePromise(const std::string& messageId, std::shared_ptr promise); + void removeReplyMessagePromise(const std::string& messageId); + bool waitForAsyncReply(const std::string& messageId); + std::shared_ptr getReplyMessagePromise(const std::string& messageId); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::carControl + bool turnPowerControllerOn(const std::string& endpointId) override; + bool turnPowerControllerOff(const std::string& endpointId) override; + bool isPowerControllerOn(const std::string& endpointId, bool& isOn) override; + + bool turnToggleControllerOn(const std::string& endpointId, const std::string& controllerId) override; + bool turnToggleControllerOff(const std::string& endpointId, const std::string& controllerId) override; + bool isToggleControllerOn(const std::string& endpointId, const std::string& controllerId, bool& isOn) override; + + bool setRangeControllerValue(const std::string& endpointId, const std::string& controllerId, double value) override; + bool adjustRangeControllerValue(const std::string& endpointId, const std::string& controllerId, double delta) + override; + bool getRangeControllerValue(const std::string& endpointId, const std::string& controllerId, double& value) + override; + + bool setModeControllerValue( + const std::string& endpointId, + const std::string& controllerId, + const std::string& value) override; + bool adjustModeControllerValue(const std::string& endpointId, const std::string& controllerId, int delta) override; + bool getModeControllerValue(const std::string& endpointId, const std::string& controllerId, std::string& value) + override; + +private: + std::weak_ptr m_messageBroker; + int m_replyMessageTimeout = 5000; + std::mutex m_promise_map_access_mutex; + std::unordered_map> m_promiseMap; +}; + +} // namespace carControl +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Engine/CarControl/AASBCarControlEngineService.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Engine/CarControl/AASBCarControlEngineService.h new file mode 100644 index 000000000..2964c2f07 --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Engine/CarControl/AASBCarControlEngineService.h @@ -0,0 +1,47 @@ +/* + * Copyright 2017-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 AASB_ENGINE_CARCONTROL_AASB_CARCONTROL_ENGINE_SERVICE_H +#define AASB_ENGINE_CARCONTROL_AASB_CARCONTROL_ENGINE_SERVICE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace carControl { + +class AASBCarControlEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.carcontrol", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBCarControlEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBCarControlEngineService() = default; +}; + +} // namespace carControl +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustControllerValueMessageReply.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustControllerValueMessageReply.h new file mode 100644 index 000000000..214879682 --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustControllerValueMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CARCONTROL_ADJUSTCONTROLLERVALUEMESSAGEREPLY_H +#define CARCONTROL_ADJUSTCONTROLLERVALUEMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace carControl { +namespace carControl { + +//Class Definition +struct AdjustControllerValueMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustControllerValue"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + bool success; + }; + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustControllerValue"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AdjustControllerValueMessageReply::Payload& c) { + j = nlohmann::json{ + {"success", c.success}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustControllerValueMessageReply::Payload& c) { + j.at("success").get_to(c.success); +} + +inline void to_json(nlohmann::json& j, const AdjustControllerValueMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustControllerValueMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const AdjustControllerValueMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustControllerValueMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AdjustControllerValueMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustControllerValueMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AdjustControllerValueMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace carControl +} // namespace carControl +} // namespace message +} // namespace aasb + +#endif // CARCONTROL_ADJUSTCONTROLLERVALUEMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustModeControllerValueMessage.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustModeControllerValueMessage.h new file mode 100644 index 000000000..c0a66e548 --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustModeControllerValueMessage.h @@ -0,0 +1,156 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CARCONTROL_ADJUSTMODECONTROLLERVALUEMESSAGE_H +#define CARCONTROL_ADJUSTMODECONTROLLERVALUEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace carControl { +namespace carControl { + +//Class Definition +struct AdjustModeControllerValueMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustControllerValue"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + static const std::string& controllerType() { + static std::string controllerType = "MODE"; + return controllerType; + } + std::string endpointId; + std::string controllerId; + int delta; + }; + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustControllerValue"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + static const std::string& controllerType() { + static std::string controllerType = "MODE"; + return controllerType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AdjustModeControllerValueMessage::Payload& c) { + j = nlohmann::json{ + {"controllerType", c.controllerType()}, + {"endpointId", c.endpointId}, + {"controllerId", c.controllerId}, + {"delta", c.delta}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustModeControllerValueMessage::Payload& c) { + j.at("endpointId").get_to(c.endpointId); + j.at("controllerId").get_to(c.controllerId); + j.at("delta").get_to(c.delta); +} + +inline void to_json(nlohmann::json& j, const AdjustModeControllerValueMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustModeControllerValueMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AdjustModeControllerValueMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustModeControllerValueMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AdjustModeControllerValueMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustModeControllerValueMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AdjustModeControllerValueMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace carControl +} // namespace carControl +} // namespace message +} // namespace aasb + +#endif // CARCONTROL_ADJUSTMODECONTROLLERVALUEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustRangeControllerValueMessage.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustRangeControllerValueMessage.h new file mode 100644 index 000000000..8738b7f4e --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/AdjustRangeControllerValueMessage.h @@ -0,0 +1,156 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CARCONTROL_ADJUSTRANGECONTROLLERVALUEMESSAGE_H +#define CARCONTROL_ADJUSTRANGECONTROLLERVALUEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace carControl { +namespace carControl { + +//Class Definition +struct AdjustRangeControllerValueMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustControllerValue"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + static const std::string& controllerType() { + static std::string controllerType = "RANGE"; + return controllerType; + } + std::string endpointId; + std::string controllerId; + double delta; + }; + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "AdjustControllerValue"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + static const std::string& controllerType() { + static std::string controllerType = "RANGE"; + return controllerType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AdjustRangeControllerValueMessage::Payload& c) { + j = nlohmann::json{ + {"controllerType", c.controllerType()}, + {"endpointId", c.endpointId}, + {"controllerId", c.controllerId}, + {"delta", c.delta}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustRangeControllerValueMessage::Payload& c) { + j.at("endpointId").get_to(c.endpointId); + j.at("controllerId").get_to(c.controllerId); + j.at("delta").get_to(c.delta); +} + +inline void to_json(nlohmann::json& j, const AdjustRangeControllerValueMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustRangeControllerValueMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AdjustRangeControllerValueMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustRangeControllerValueMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AdjustRangeControllerValueMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AdjustRangeControllerValueMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AdjustRangeControllerValueMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace carControl +} // namespace carControl +} // namespace message +} // namespace aasb + +#endif // CARCONTROL_ADJUSTRANGECONTROLLERVALUEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetControllerValueMessageReply.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetControllerValueMessageReply.h new file mode 100644 index 000000000..f44ee4ca8 --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetControllerValueMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CARCONTROL_SETCONTROLLERVALUEMESSAGEREPLY_H +#define CARCONTROL_SETCONTROLLERVALUEMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace carControl { +namespace carControl { + +//Class Definition +struct SetControllerValueMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + bool success; + }; + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetControllerValueMessageReply::Payload& c) { + j = nlohmann::json{ + {"success", c.success}, + }; +} +inline void from_json(const nlohmann::json& j, SetControllerValueMessageReply::Payload& c) { + j.at("success").get_to(c.success); +} + +inline void to_json(nlohmann::json& j, const SetControllerValueMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, SetControllerValueMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const SetControllerValueMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetControllerValueMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetControllerValueMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetControllerValueMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetControllerValueMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace carControl +} // namespace carControl +} // namespace message +} // namespace aasb + +#endif // CARCONTROL_SETCONTROLLERVALUEMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetModeControllerValueMessage.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetModeControllerValueMessage.h new file mode 100644 index 000000000..adf5191dd --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetModeControllerValueMessage.h @@ -0,0 +1,156 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CARCONTROL_SETMODECONTROLLERVALUEMESSAGE_H +#define CARCONTROL_SETMODECONTROLLERVALUEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace carControl { +namespace carControl { + +//Class Definition +struct SetModeControllerValueMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + static const std::string& controllerType() { + static std::string controllerType = "MODE"; + return controllerType; + } + std::string endpointId; + std::string controllerId; + std::string value; + }; + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + static const std::string& controllerType() { + static std::string controllerType = "MODE"; + return controllerType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetModeControllerValueMessage::Payload& c) { + j = nlohmann::json{ + {"controllerType", c.controllerType()}, + {"endpointId", c.endpointId}, + {"controllerId", c.controllerId}, + {"value", c.value}, + }; +} +inline void from_json(const nlohmann::json& j, SetModeControllerValueMessage::Payload& c) { + j.at("endpointId").get_to(c.endpointId); + j.at("controllerId").get_to(c.controllerId); + j.at("value").get_to(c.value); +} + +inline void to_json(nlohmann::json& j, const SetModeControllerValueMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetModeControllerValueMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetModeControllerValueMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetModeControllerValueMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetModeControllerValueMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetModeControllerValueMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetModeControllerValueMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace carControl +} // namespace carControl +} // namespace message +} // namespace aasb + +#endif // CARCONTROL_SETMODECONTROLLERVALUEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetPowerControllerValueMessage.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetPowerControllerValueMessage.h new file mode 100644 index 000000000..20e1ab64c --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetPowerControllerValueMessage.h @@ -0,0 +1,153 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CARCONTROL_SETPOWERCONTROLLERVALUEMESSAGE_H +#define CARCONTROL_SETPOWERCONTROLLERVALUEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace carControl { +namespace carControl { + +//Class Definition +struct SetPowerControllerValueMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + static const std::string& controllerType() { + static std::string controllerType = "POWER"; + return controllerType; + } + std::string endpointId; + bool turnOn; + }; + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + static const std::string& controllerType() { + static std::string controllerType = "POWER"; + return controllerType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetPowerControllerValueMessage::Payload& c) { + j = nlohmann::json{ + {"controllerType", c.controllerType()}, + {"endpointId", c.endpointId}, + {"turnOn", c.turnOn}, + }; +} +inline void from_json(const nlohmann::json& j, SetPowerControllerValueMessage::Payload& c) { + j.at("endpointId").get_to(c.endpointId); + j.at("turnOn").get_to(c.turnOn); +} + +inline void to_json(nlohmann::json& j, const SetPowerControllerValueMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetPowerControllerValueMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetPowerControllerValueMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetPowerControllerValueMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetPowerControllerValueMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetPowerControllerValueMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetPowerControllerValueMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace carControl +} // namespace carControl +} // namespace message +} // namespace aasb + +#endif // CARCONTROL_SETPOWERCONTROLLERVALUEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetRangeControllerValueMessage.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetRangeControllerValueMessage.h new file mode 100644 index 000000000..1df082a7d --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetRangeControllerValueMessage.h @@ -0,0 +1,156 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CARCONTROL_SETRANGECONTROLLERVALUEMESSAGE_H +#define CARCONTROL_SETRANGECONTROLLERVALUEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace carControl { +namespace carControl { + +//Class Definition +struct SetRangeControllerValueMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + static const std::string& controllerType() { + static std::string controllerType = "RANGE"; + return controllerType; + } + std::string endpointId; + std::string controllerId; + double value; + }; + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + static const std::string& controllerType() { + static std::string controllerType = "RANGE"; + return controllerType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetRangeControllerValueMessage::Payload& c) { + j = nlohmann::json{ + {"controllerType", c.controllerType()}, + {"endpointId", c.endpointId}, + {"controllerId", c.controllerId}, + {"value", c.value}, + }; +} +inline void from_json(const nlohmann::json& j, SetRangeControllerValueMessage::Payload& c) { + j.at("endpointId").get_to(c.endpointId); + j.at("controllerId").get_to(c.controllerId); + j.at("value").get_to(c.value); +} + +inline void to_json(nlohmann::json& j, const SetRangeControllerValueMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetRangeControllerValueMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetRangeControllerValueMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetRangeControllerValueMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetRangeControllerValueMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetRangeControllerValueMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetRangeControllerValueMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace carControl +} // namespace carControl +} // namespace message +} // namespace aasb + +#endif // CARCONTROL_SETRANGECONTROLLERVALUEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetToggleControllerValueMessage.h b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetToggleControllerValueMessage.h new file mode 100644 index 000000000..e73073b79 --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/include/AASB/Message/CarControl/CarControl/SetToggleControllerValueMessage.h @@ -0,0 +1,156 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CARCONTROL_SETTOGGLECONTROLLERVALUEMESSAGE_H +#define CARCONTROL_SETTOGGLECONTROLLERVALUEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace carControl { +namespace carControl { + +//Class Definition +struct SetToggleControllerValueMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + static const std::string& controllerType() { + static std::string controllerType = "TOGGLE"; + return controllerType; + } + std::string endpointId; + std::string controllerId; + bool turnOn; + }; + static const std::string& topic() { + static std::string topic = "CarControl"; + return topic; + } + static const std::string& action() { + static std::string action = "SetControllerValue"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + static const std::string& controllerType() { + static std::string controllerType = "TOGGLE"; + return controllerType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetToggleControllerValueMessage::Payload& c) { + j = nlohmann::json{ + {"controllerType", c.controllerType()}, + {"endpointId", c.endpointId}, + {"controllerId", c.controllerId}, + {"turnOn", c.turnOn}, + }; +} +inline void from_json(const nlohmann::json& j, SetToggleControllerValueMessage::Payload& c) { + j.at("endpointId").get_to(c.endpointId); + j.at("controllerId").get_to(c.controllerId); + j.at("turnOn").get_to(c.turnOn); +} + +inline void to_json(nlohmann::json& j, const SetToggleControllerValueMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetToggleControllerValueMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetToggleControllerValueMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetToggleControllerValueMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetToggleControllerValueMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetToggleControllerValueMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetToggleControllerValueMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace carControl +} // namespace carControl +} // namespace message +} // namespace aasb + +#endif // CARCONTROL_SETTOGGLECONTROLLERVALUEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-car-control/engine/src/AASBCarControl.cpp b/extensions/aasb/modules/aasb-car-control/engine/src/AASBCarControl.cpp new file mode 100644 index 000000000..b24f56ded --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/src/AASBCarControl.cpp @@ -0,0 +1,411 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace carControl { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.carControl.AASBCarControl"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBCarControl::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + // create the car control platform handler + auto carControl = std::shared_ptr(new AASBCarControl()); + + // initialize the platform handler + ThrowIfNot(carControl->initialize(messageBroker), "initializeAASBCarControlFailed"); + + return carControl; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBCarControl::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::carControl::carControl::SetControllerValueMessageReply::topic(), + aasb::message::carControl::carControl::SetControllerValueMessageReply::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + auto promise = sp->getReplyMessagePromise(message.replyTo()); + ThrowIfNull(promise, "invalidPromise"); + + aasb::message::carControl::carControl::SetControllerValueMessageReply::Payload payload = + nlohmann::json::parse(message.payload()); + promise->set_value(payload.success); + AACE_VERBOSE(LX(TAG, "SetControllerValueMessageReply").m("setControllerValueReplyPromiseSet")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SetControllerValueMessageReply").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::carControl::carControl::AdjustControllerValueMessageReply::topic(), + aasb::message::carControl::carControl::AdjustControllerValueMessageReply::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + auto promise = sp->getReplyMessagePromise(message.replyTo()); + ThrowIfNull(promise, "invalidPromise"); + + aasb::message::carControl::carControl::AdjustControllerValueMessageReply::Payload payload = + nlohmann::json::parse(message.payload()); + promise->set_value(payload.success); + AACE_VERBOSE( + LX(TAG, "AdjustControllerValueMessageReply").m("adjustControllerValueReplyPromiseSet")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "AdjustControllerValueMessageReply").d("reason", ex.what())); + } + }); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::carControl::CarControl +// + +/** + * PowerController + */ +bool AASBCarControl::turnPowerControllerOn(const std::string& endpointId) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::carControl::carControl::SetPowerControllerValueMessage message; + + message.payload.endpointId = endpointId; + message.payload.turnOn = true; + + m_messageBroker_lock->publish(message.toString()).send(); + + std::string messageId = message.header.id; + return waitForAsyncReply(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBCarControl::turnPowerControllerOff(const std::string& endpointId) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::carControl::carControl::SetPowerControllerValueMessage message; + + message.payload.endpointId = endpointId; + message.payload.turnOn = false; + + m_messageBroker_lock->publish(message.toString()).send(); + + std::string messageId = message.header.id; + return waitForAsyncReply(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBCarControl::isPowerControllerOn(const std::string& endpointId, bool& isOn) { + return true; +} + +/** + * ToggleController + */ +bool AASBCarControl::turnToggleControllerOn(const std::string& endpointId, const std::string& controllerId) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::carControl::carControl::SetToggleControllerValueMessage message; + + message.payload.endpointId = endpointId; + message.payload.controllerId = controllerId; + message.payload.turnOn = true; + + m_messageBroker_lock->publish(message.toString()).send(); + + std::string messageId = message.header.id; + return waitForAsyncReply(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBCarControl::turnToggleControllerOff(const std::string& endpointId, const std::string& controllerId) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::carControl::carControl::SetToggleControllerValueMessage message; + message.payload.turnOn = false; + message.payload.endpointId = endpointId; + message.payload.controllerId = controllerId; + + m_messageBroker_lock->publish(message.toString()).send(); + + std::string messageId = message.header.id; + return waitForAsyncReply(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBCarControl::isToggleControllerOn(const std::string& endpointId, const std::string& controllerId, bool& isOn) { + return true; +} + +/** + * RangeController + */ +bool AASBCarControl::setRangeControllerValue( + const std::string& endpointId, + const std::string& controllerId, + double value) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::carControl::carControl::SetRangeControllerValueMessage message; + + message.payload.endpointId = endpointId; + message.payload.controllerId = controllerId; + message.payload.value = value; + + m_messageBroker_lock->publish(message.toString()).send(); + + std::string messageId = message.header.id; + return waitForAsyncReply(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBCarControl::adjustRangeControllerValue( + const std::string& endpointId, + const std::string& controllerId, + double delta) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::carControl::carControl::AdjustRangeControllerValueMessage message; + + message.payload.endpointId = endpointId; + message.payload.controllerId = controllerId; + message.payload.delta = delta; + + m_messageBroker_lock->publish(message.toString()).send(); + + std::string messageId = message.header.id; + return waitForAsyncReply(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBCarControl::getRangeControllerValue( + const std::string& endpointId, + const std::string& controllerId, + double& value) { + return true; +} + +/** + * ModeController + */ +bool AASBCarControl::setModeControllerValue( + const std::string& endpointId, + const std::string& controllerId, + const std::string& value) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::carControl::carControl::SetModeControllerValueMessage message; + + message.payload.endpointId = endpointId; + message.payload.controllerId = controllerId; + message.payload.value = value; + + m_messageBroker_lock->publish(message.toString()).send(); + + std::string messageId = message.header.id; + return waitForAsyncReply(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBCarControl::adjustModeControllerValue( + const std::string& endpointId, + const std::string& controllerId, + int delta) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::carControl::carControl::AdjustModeControllerValueMessage message; + + message.payload.endpointId = endpointId; + message.payload.controllerId = controllerId; + message.payload.delta = delta; + + m_messageBroker_lock->publish(message.toString()).send(); + + std::string messageId = message.header.id; + return waitForAsyncReply(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBCarControl::getModeControllerValue( + const std::string& endpointId, + const std::string& controllerId, + std::string& value) { + return true; +} + +bool AASBCarControl::waitForAsyncReply(const std::string& messageId) { + // create the promise for the car control reply message to fulfill + std::shared_ptr promise = std::make_shared(); + + // create a future to receive the promised car control reply message when it is received + std::shared_future future(promise->get_future()); + + bool success = false; + try { + addReplyMessagePromise(messageId, promise); + ThrowIfNot( + future.wait_for(std::chrono::milliseconds(m_replyMessageTimeout)) == std::future_status::ready, + "replyMessageTimeout:id=" + messageId); + ThrowIfNot(future.valid(), "invalidMessageResponse"); + success = future.get(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + promise->set_exception(std::current_exception()); + } + removeReplyMessagePromise(messageId); + return success; +} + +void AASBCarControl::addReplyMessagePromise(const std::string& messageId, std::shared_ptr promise) { + try { + std::lock_guard lock(m_promise_map_access_mutex); + + ThrowIf(m_promiseMap.find(messageId) != m_promiseMap.end(), "messageIdAlreadyExists"); + + // add the promise to the promise map + m_promiseMap[messageId] = promise; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "addReplyMessagePromise").d("reason", ex.what())); + } +} + +void AASBCarControl::removeReplyMessagePromise(const std::string& messageId) { + try { + std::lock_guard lock(m_promise_map_access_mutex); + + auto it = m_promiseMap.find(messageId); + ThrowIf(it == m_promiseMap.end(), "messageIdDoesNotExist"); + + // remove the promise from the promise map + m_promiseMap.erase(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "removeReplyMessagePromise").d("reason", ex.what())); + } +} + +std::shared_ptr AASBCarControl::getReplyMessagePromise( + const std::string& messageId) { + try { + std::lock_guard lock(m_promise_map_access_mutex); + + auto it = m_promiseMap.find(messageId); + ThrowIf(it == m_promiseMap.end(), "messageIdDoesNotExist"); + + return it->second; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what()).d("keys", m_promiseMap.size()).d("messageId", messageId)); + return nullptr; + } +} + +} // namespace carControl +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-car-control/engine/src/AASBCarControlEngineService.cpp b/extensions/aasb/modules/aasb-car-control/engine/src/AASBCarControlEngineService.cpp new file mode 100644 index 000000000..2c2c1e8e6 --- /dev/null +++ b/extensions/aasb/modules/aasb-car-control/engine/src/AASBCarControlEngineService.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace carControl { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.carControl.AASBCarControlEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBCarControlEngineService); + +AASBCarControlEngineService::AASBCarControlEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"CarControl"}) { +} + +bool AASBCarControlEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // CarControl + if (isInterfaceEnabled("CarControl")) { + auto carControl = AASBCarControl::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(carControl, "invalidCarControlHandler"); + getContext()->registerPlatformInterface(carControl); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace carControl +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-cbl/CMakeLists.txt b/extensions/aasb/modules/aasb-cbl/CMakeLists.txt new file mode 100644 index 000000000..72c6bdd0b --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/CMakeLists.txt @@ -0,0 +1,47 @@ +# AASB CBL + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASBCBL LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AASBCBL") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AASBCBL.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +# AASBCBL module depends on AACEAASB and AACECBL module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + include(${AAC_HOME}/share/cmake/AACECBL.cmake) + include(${AAC_HOME}/share/cmake/AACECore.cmake) + include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +endif() + +#add_subdirectory(platform) +add_subdirectory(engine) + +install( + EXPORT AASBCBL + DESTINATION share/cmake +) diff --git a/extensions/aasb/modules/aasb-cbl/aac-aasb-cbl.bb b/extensions/aasb/modules/aasb-cbl/aac-aasb-cbl.bb new file mode 100644 index 000000000..f5ee15820 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/aac-aasb-cbl.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB CBL" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/CBL/AASBCBLEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-cbl aac-module-aasb nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb-cbl/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-cbl/engine/CMakeLists.txt new file mode 100644 index 000000000..8d3762a84 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/CMakeLists.txt @@ -0,0 +1,61 @@ +# AASB CBL Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/CBL/AASBCBLEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/CBL/AASBCBL.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_CBL_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/CancelMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/CBLState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/CBLStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/CBLStateChangedReason.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/ClearRefreshTokenMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/ResetMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/SetRefreshTokenMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/SetUserProfileMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Cbl/CBL/StartMessage.h +) + +source_group("CBL Message Headers" FILES ${AASB_CBL_MESSAGES}) + +add_library(AASBCBLEngine SHARED + ${HEADERS} + ${AASB_CBL_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBCBLEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBCBL.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBCBLEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBCBLEngine + PUBLIC + AACEAASBEngine + AACECBLPlatform +) + +install( + TARGETS AASBCBLEngine + DESTINATION lib + EXPORT AASBCBL +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBL.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBL.h new file mode 100644 index 000000000..ca01eb912 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBL.h @@ -0,0 +1,59 @@ +/* + * Copyright 2018-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 AASB_ENGINE_CBL_AASB_CBL_H +#define AASB_ENGINE_CBL_AASB_CBL_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace engine { +namespace cbl { + +class AASBCBL + : public aace::cbl::CBL + , public std::enable_shared_from_this { +private: + AASBCBL() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create(std::shared_ptr messageBroker); + + // aace::cbl::CLB + void cblStateChanged(CBLState state, CBLStateChangedReason reason, const std::string& url, const std::string& code) + override; + void clearRefreshToken() override; + void setRefreshToken(const std::string& refreshToken) override; + std::string getRefreshToken() override; + void setUserProfile(const std::string& name, const std::string& email) override; + +private: + std::weak_ptr m_messageBroker; + + std::string m_cachedRefreshToken; +}; + +} // namespace cbl +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_CBL_AASB_CBL_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBLEngineService.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBLEngineService.h new file mode 100644 index 000000000..5178fcc60 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Engine/CBL/AASBCBLEngineService.h @@ -0,0 +1,44 @@ +/* + * Copyright 2017-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 AASB_ENGINE_CBL_AASB_CBL_ENGINE_SERVICE_H +#define AASB_ENGINE_CBL_AASB_CBL_ENGINE_SERVICE_H + +#include +#include + +namespace aasb { +namespace engine { +namespace cbl { + +class AASBCBLEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.cbl", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBCBLEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBCBLEngineService() = default; +}; + +} // namespace cbl +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLState.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLState.h new file mode 100644 index 000000000..bdee08f59 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLState.h @@ -0,0 +1,97 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_CBLSTATE_H +#define CBL_CBLSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace cbl { + +//Enum Definition +enum class CBLState { + STARTING, + REQUESTING_CODE_PAIR, + CODE_PAIR_RECEIVED, + REFRESHING_TOKEN, + REQUESTING_TOKEN, + STOPPING, +}; + +inline std::string toString(CBLState enumValue) { + switch (enumValue) { + case (CBLState::STARTING): + return "STARTING"; + case (CBLState::REQUESTING_CODE_PAIR): + return "REQUESTING_CODE_PAIR"; + case (CBLState::CODE_PAIR_RECEIVED): + return "CODE_PAIR_RECEIVED"; + case (CBLState::REFRESHING_TOKEN): + return "REFRESHING_TOKEN"; + case (CBLState::REQUESTING_TOKEN): + return "REQUESTING_TOKEN"; + case (CBLState::STOPPING): + return "STOPPING"; + } + throw std::runtime_error("invalidCBLStateType"); +} + +inline CBLState toCBLState(const std::string& stringValue) { + static std::unordered_map map = { + {"STARTING", CBLState::STARTING}, + {"REQUESTING_CODE_PAIR", CBLState::REQUESTING_CODE_PAIR}, + {"CODE_PAIR_RECEIVED", CBLState::CODE_PAIR_RECEIVED}, + {"REFRESHING_TOKEN", CBLState::REFRESHING_TOKEN}, + {"REQUESTING_TOKEN", CBLState::REQUESTING_TOKEN}, + {"STOPPING", CBLState::STOPPING}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidCBLStateType"); +} + +inline void to_json(nlohmann::json& j, const CBLState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, CBLState& c) { + c = toCBLState(j); +} + +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_CBLSTATE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedMessage.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedMessage.h new file mode 100644 index 000000000..2c4e1d1a0 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedMessage.h @@ -0,0 +1,155 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_CBLSTATECHANGEDMESSAGE_H +#define CBL_CBLSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Cbl/CBL/CBLState.h" +#include "AASB/Message/Cbl/CBL/CBLStateChangedReason.h" + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct CBLStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "CBLStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using CBLState = ::aasb::message::cbl::CBLState; + using CBLStateChangedReason = ::aasb::message::cbl::CBLStateChangedReason; + + CBLState state; + CBLStateChangedReason reason; + std::string url; + std::string code; + }; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "CBLStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const CBLStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + {"reason", c.reason}, + {"url", c.url}, + {"code", c.code}, + }; +} +inline void from_json(const nlohmann::json& j, CBLStateChangedMessage::Payload& c) { + j.at("state").get_to(c.state); + j.at("reason").get_to(c.reason); + j.at("url").get_to(c.url); + j.at("code").get_to(c.code); +} + +inline void to_json(nlohmann::json& j, const CBLStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, CBLStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const CBLStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, CBLStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const CBLStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, CBLStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string CBLStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_CBLSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedReason.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedReason.h new file mode 100644 index 000000000..9782aa551 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CBLStateChangedReason.h @@ -0,0 +1,97 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_CBLSTATECHANGEDREASON_H +#define CBL_CBLSTATECHANGEDREASON_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace cbl { + +//Enum Definition +enum class CBLStateChangedReason { + SUCCESS, + ERROR, + TIMEOUT, + CODE_PAIR_EXPIRED, + AUTHORIZATION_EXPIRED, + NONE, +}; + +inline std::string toString(CBLStateChangedReason enumValue) { + switch (enumValue) { + case (CBLStateChangedReason::SUCCESS): + return "SUCCESS"; + case (CBLStateChangedReason::ERROR): + return "ERROR"; + case (CBLStateChangedReason::TIMEOUT): + return "TIMEOUT"; + case (CBLStateChangedReason::CODE_PAIR_EXPIRED): + return "CODE_PAIR_EXPIRED"; + case (CBLStateChangedReason::AUTHORIZATION_EXPIRED): + return "AUTHORIZATION_EXPIRED"; + case (CBLStateChangedReason::NONE): + return "NONE"; + } + throw std::runtime_error("invalidCBLStateChangedReasonType"); +} + +inline CBLStateChangedReason toCBLStateChangedReason(const std::string& stringValue) { + static std::unordered_map map = { + {"SUCCESS", CBLStateChangedReason::SUCCESS}, + {"ERROR", CBLStateChangedReason::ERROR}, + {"TIMEOUT", CBLStateChangedReason::TIMEOUT}, + {"CODE_PAIR_EXPIRED", CBLStateChangedReason::CODE_PAIR_EXPIRED}, + {"AUTHORIZATION_EXPIRED", CBLStateChangedReason::AUTHORIZATION_EXPIRED}, + {"NONE", CBLStateChangedReason::NONE}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidCBLStateChangedReasonType"); +} + +inline void to_json(nlohmann::json& j, const CBLStateChangedReason& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, CBLStateChangedReason& c) { + c = toCBLStateChangedReason(j); +} + +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_CBLSTATECHANGEDREASON_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CancelMessage.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CancelMessage.h new file mode 100644 index 000000000..70c41ca70 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/CancelMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_CANCELMESSAGE_H +#define CBL_CANCELMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct CancelMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "Cancel"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "Cancel"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const CancelMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, CancelMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const CancelMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, CancelMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const CancelMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, CancelMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const CancelMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, CancelMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string CancelMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_CANCELMESSAGE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ClearRefreshTokenMessage.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ClearRefreshTokenMessage.h new file mode 100644 index 000000000..0c7fcbcc8 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ClearRefreshTokenMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_CLEARREFRESHTOKENMESSAGE_H +#define CBL_CLEARREFRESHTOKENMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct ClearRefreshTokenMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearRefreshToken"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "ClearRefreshToken"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ClearRefreshTokenMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, ClearRefreshTokenMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const ClearRefreshTokenMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ClearRefreshTokenMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ClearRefreshTokenMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ClearRefreshTokenMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ClearRefreshTokenMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ClearRefreshTokenMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ClearRefreshTokenMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_CLEARREFRESHTOKENMESSAGE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessage.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessage.h new file mode 100644 index 000000000..d262f937e --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_GETREFRESHTOKENMESSAGE_H +#define CBL_GETREFRESHTOKENMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct GetRefreshTokenMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "GetRefreshToken"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "GetRefreshToken"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetRefreshTokenMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetRefreshTokenMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetRefreshTokenMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetRefreshTokenMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetRefreshTokenMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetRefreshTokenMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetRefreshTokenMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetRefreshTokenMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetRefreshTokenMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_GETREFRESHTOKENMESSAGE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessageReply.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessageReply.h new file mode 100644 index 000000000..c2730cc79 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/GetRefreshTokenMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_GETREFRESHTOKENMESSAGEREPLY_H +#define CBL_GETREFRESHTOKENMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct GetRefreshTokenMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "GetRefreshToken"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string refreshToken; + }; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "GetRefreshToken"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetRefreshTokenMessageReply::Payload& c) { + j = nlohmann::json{ + {"refreshToken", c.refreshToken}, + }; +} +inline void from_json(const nlohmann::json& j, GetRefreshTokenMessageReply::Payload& c) { + j.at("refreshToken").get_to(c.refreshToken); +} + +inline void to_json(nlohmann::json& j, const GetRefreshTokenMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetRefreshTokenMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetRefreshTokenMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetRefreshTokenMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetRefreshTokenMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetRefreshTokenMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetRefreshTokenMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_GETREFRESHTOKENMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ResetMessage.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ResetMessage.h new file mode 100644 index 000000000..4712f9706 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/ResetMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_RESETMESSAGE_H +#define CBL_RESETMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct ResetMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "Reset"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "Reset"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ResetMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, ResetMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const ResetMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ResetMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ResetMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ResetMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ResetMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ResetMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ResetMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_RESETMESSAGE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetRefreshTokenMessage.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetRefreshTokenMessage.h new file mode 100644 index 000000000..8d58817bc --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetRefreshTokenMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_SETREFRESHTOKENMESSAGE_H +#define CBL_SETREFRESHTOKENMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct SetRefreshTokenMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "SetRefreshToken"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string refreshToken; + }; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "SetRefreshToken"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetRefreshTokenMessage::Payload& c) { + j = nlohmann::json{ + {"refreshToken", c.refreshToken}, + }; +} +inline void from_json(const nlohmann::json& j, SetRefreshTokenMessage::Payload& c) { + j.at("refreshToken").get_to(c.refreshToken); +} + +inline void to_json(nlohmann::json& j, const SetRefreshTokenMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetRefreshTokenMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetRefreshTokenMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetRefreshTokenMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetRefreshTokenMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetRefreshTokenMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetRefreshTokenMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_SETREFRESHTOKENMESSAGE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetUserProfileMessage.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetUserProfileMessage.h new file mode 100644 index 000000000..377f8db73 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/SetUserProfileMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_SETUSERPROFILEMESSAGE_H +#define CBL_SETUSERPROFILEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct SetUserProfileMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "SetUserProfile"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string name; + std::string email; + }; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "SetUserProfile"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetUserProfileMessage::Payload& c) { + j = nlohmann::json{ + {"name", c.name}, + {"email", c.email}, + }; +} +inline void from_json(const nlohmann::json& j, SetUserProfileMessage::Payload& c) { + j.at("name").get_to(c.name); + j.at("email").get_to(c.email); +} + +inline void to_json(nlohmann::json& j, const SetUserProfileMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetUserProfileMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetUserProfileMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetUserProfileMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetUserProfileMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetUserProfileMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetUserProfileMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_SETUSERPROFILEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/StartMessage.h b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/StartMessage.h new file mode 100644 index 000000000..2cdfa619a --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/include/AASB/Message/Cbl/CBL/StartMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef CBL_STARTMESSAGE_H +#define CBL_STARTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace cbl { +namespace cbl { + +//Class Definition +struct StartMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "Start"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "CBL"; + return topic; + } + static const std::string& action() { + static std::string action = "Start"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StartMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, StartMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const StartMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StartMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StartMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StartMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StartMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StartMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StartMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace cbl +} // namespace cbl +} // namespace message +} // namespace aasb + +#endif // CBL_STARTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-cbl/engine/src/AASBCBL.cpp b/extensions/aasb/modules/aasb-cbl/engine/src/AASBCBL.cpp new file mode 100644 index 000000000..4b12d79e0 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/src/AASBCBL.cpp @@ -0,0 +1,208 @@ +/* + * Copyright 2018-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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace cbl { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.cbl.AASBCBL"); + +// aliases +using Message = aace::engine::aasb::Message; + +bool AASBCBL::initialize(std::shared_ptr messageBroker) { + try { + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::cbl::cbl::StartMessage::topic(), + aasb::message::cbl::cbl::StartMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + sp->start(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "StartMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::cbl::cbl::CancelMessage::topic(), + aasb::message::cbl::cbl::CancelMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + sp->cancel(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "CancelMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::cbl::cbl::ResetMessage::topic(), + aasb::message::cbl::cbl::ResetMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + sp->reset(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ResetMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +std::shared_ptr AASBCBL::create(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto handler = std::shared_ptr(new AASBCBL()); + + // initialize the handler + ThrowIfNot(handler->initialize(messageBroker), "initializeAASBCBLFailed"); + + return handler; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +void AASBCBL::cblStateChanged( + CBLState state, + CBLStateChangedReason reason, + const std::string& url, + const std::string& code) { + try { + AACE_VERBOSE(LX(TAG).d("state", state).d("reason", reason).d("url", url).d("code", code)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::cbl::cbl::CBLStateChangedMessage message; + message.payload.state = static_cast(state); + message.payload.reason = static_cast(reason); + + if (state == CBLState::CODE_PAIR_RECEIVED) { + message.payload.url = url; + message.payload.code = code; + } + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBCBL::clearRefreshToken() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + m_cachedRefreshToken.clear(); + + aasb::message::cbl::cbl::ClearRefreshTokenMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBCBL::setRefreshToken(const std::string& refreshToken) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + m_cachedRefreshToken = refreshToken; + + aasb::message::cbl::cbl::SetRefreshTokenMessage message; + message.payload.refreshToken = refreshToken; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +std::string AASBCBL::getRefreshToken() { + try { + AACE_VERBOSE(LX(TAG)); + + if (m_cachedRefreshToken.empty()) { + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::cbl::cbl::GetRefreshTokenMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForRefreshTokenTimeout"); + + aasb::message::cbl::cbl::GetRefreshTokenMessageReply::Payload reply = + nlohmann::json::parse(result.payload()); + + m_cachedRefreshToken = reply.refreshToken; + } + + return m_cachedRefreshToken; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return std::string(); + } +} + +void AASBCBL::setUserProfile(const std::string& name, const std::string& email) { +} + +} // namespace cbl +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-cbl/engine/src/AASBCBLEngineService.cpp b/extensions/aasb/modules/aasb-cbl/engine/src/AASBCBLEngineService.cpp new file mode 100644 index 000000000..8dd73a156 --- /dev/null +++ b/extensions/aasb/modules/aasb-cbl/engine/src/AASBCBLEngineService.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace cbl { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.cbl.AASBCBLEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBCBLEngineService); + +AASBCBLEngineService::AASBCBLEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"CBL"}) { +} + +bool AASBCBLEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // CBL + if (isInterfaceEnabled("CBL")) { + auto cbl = AASBCBL::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(cbl, "invalidCBLHandler"); + getContext()->registerPlatformInterface(cbl); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace cbl +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/CMakeLists.txt b/extensions/aasb/modules/aasb-core/CMakeLists.txt new file mode 100644 index 000000000..8aee4439f --- /dev/null +++ b/extensions/aasb/modules/aasb-core/CMakeLists.txt @@ -0,0 +1,45 @@ +# AASB Core + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASBCore LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AASBCore") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AASBCore.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +# AASBCore module depends on AACEAASB and Core module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACECore.cmake) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +endif() + +#add_subdirectory(platform) +add_subdirectory(engine) + +install( + EXPORT AASBCore + DESTINATION share/cmake +) diff --git a/extensions/aasb/modules/aasb-core/aac-aasb-core.bb b/extensions/aasb/modules/aasb-core/aac-aasb-core.bb new file mode 100644 index 000000000..b6b4b4f16 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/aac-aasb-core.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB Core" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/Audio/AASBAudioEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-core aac-module-aasb websocketpp asio nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb-core/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-core/engine/CMakeLists.txt new file mode 100644 index 000000000..6e454f8d3 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/CMakeLists.txt @@ -0,0 +1,127 @@ +# AASB Core Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Location/AASBLocationEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Location/AASBLocationProvider.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Network/AASBNetworkEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Network/AASBNetworkInfoProvider.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Audio/AASBAudioEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Audio/AASBAudioInputProvider.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Audio/AASBAudioInput.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Audio/AASBAudioOutputProvider.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Audio/AASBAudioOutput.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/PropertyManager/AASBPropertyManager.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/PropertyManager/AASBPropertyManagerEngineService.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_AUDIO_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioInput/AudioInputAudioType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioInput/StartAudioInputMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioInput/StopAudioInputMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/AudioOutputAudioType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/AudioOutputSourceType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/GetDurationMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/GetDurationMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/GetPositionMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/GetPositionMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/MediaError.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/MediaErrorMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/MediaState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/MediaStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/MutedState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/MutedStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/PauseMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/PlayMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/PrepareStreamMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/PrepareURLMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/ResumeMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/SetPositionMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/StopMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/VolumeChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Audio/AudioOutput/AudioStreamEncoding.h +) + +source_group("Audio Message Headers" FILES ${AASB_AUDIO_MESSAGES}) + +set(AASB_LOCATION_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Location/LocationProvider/GetCountryMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Location/LocationProvider/GetCountryMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Location/LocationProvider/GetLocationMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Location/LocationProvider/GetLocationMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Location/LocationProvider/Location.h +) + +source_group("Location Message Headers" FILES ${AASB_LOCATION_MESSAGES}) + +set(AASB_NETWORK_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatus.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatusChangedMessage.h +) + +source_group("Network Message Headers" FILES ${AASB_NETWORK_MESSAGES}) + +set(AASB_PPROPERTY_MANAGER_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PropertyManager/PropertyManager/PropertyChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PropertyManager/PropertyManager/PropertyStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PropertyManager/PropertyManager/SetPropertyMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PropertyManager/PropertyManager/PropertyState.h +) + +source_group("PropertyManager Message Headers" FILES ${AASB_PROPERTY_MANAGER_MESSAGES}) + +add_library(AASBCoreEngine SHARED + ${HEADERS} + ${AASB_AUDIO_MESSAGES} + ${AASB_LOCATION_MESSAGES} + ${AASB_NETWORK_MESSAGES} + ${AASB_PROPERTY_MANAGER_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/Location/AASBLocationEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Location/AASBLocationProvider.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Network/AASBNetworkEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Network/AASBNetworkInfoProvider.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/AASBAudioEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/AASBAudioInputProvider.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/AASBAudioInput.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/AASBAudioOutputProvider.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Audio/AASBAudioOutput.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/PropertyManager/AASBPropertyManager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/PropertyManager/AASBPropertyManagerEngineService.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBCoreEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBCoreEngine + PUBLIC + AACEAASBEngine + AACECorePlatform +) + +install( + TARGETS AASBCoreEngine + DESTINATION lib + EXPORT AASBCore +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioEngineService.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioEngineService.h new file mode 100644 index 000000000..89d8479d8 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioEngineService.h @@ -0,0 +1,49 @@ +/* + * Copyright 2017-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 AASB_ENGINE_AUDIO_AASB_AUDIO_ENGINE_SERVICE_H +#define AASB_ENGINE_AUDIO_AASB_AUDIO_ENGINE_SERVICE_H + +#include +#include +#include + +namespace aasb { +namespace engine { +namespace audio { + +class AASBAudioEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE( + "aasb.audio", + VERSION("1.0"), + DEPENDS(aace::engine::aasb::AASBEngineService), + DEPENDS(aace::engine::audio::AudioEngineService)) + +private: + AASBAudioEngineService(const aace::engine::core::ServiceDescription& description); + +public: + virtual ~AASBAudioEngineService() = default; + +private: + bool postRegister() override; +}; + +} // namespace audio +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_AUDIO_AASB_AUDIO_ENGINE_SERVICE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInput.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInput.h new file mode 100644 index 000000000..f67740eb8 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInput.h @@ -0,0 +1,94 @@ +/* + * Copyright 2017-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 AASB_ENGINE_AUDIO_AASB_AUDIO_INPUT_H +#define AASB_ENGINE_AUDIO_AASB_AUDIO_INPUT_H + +#include +#include +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace audio { + +class AASBAudioInput + : public aace::audio::AudioInput + , public std::enable_shared_from_this { +public: + using AudioInputType = aace::audio::AudioInputProvider::AudioInputType; + +private: + AASBAudioInput(const std::string& name, AudioInputType type); + + bool initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + +public: + virtual ~AASBAudioInput() = default; + + static std::shared_ptr create( + const std::string& name, + AudioInputType type, + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + + // aace::audio::AudioInput + bool startAudioInput() override; + bool stopAudioInput() override; + + // AudioServerInterface + void handleAudioInput(const int16_t* data, const size_t size); + +private: + const std::string m_name; + const AudioInputType m_type; + + bool m_expectAudio = false; + + std::string m_currentStreamId; + + std::weak_ptr m_messageBroker; + std::weak_ptr m_streamManager; + + // + // AudioInputStreamHandler + // + + class AudioInputStreamHandler : public aace::aasb::AASBStream { + public: + AudioInputStreamHandler(std::shared_ptr audioInput); + + // aace::aasb::AASBStream + ssize_t read(char* data, const size_t size) override; + ssize_t write(const char* data, const size_t size) override; + bool isClosed() override; + AASBStream::Mode getMode() override; + + private: + std::shared_ptr m_audioInput; + }; +}; + +} // namespace audio +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_AUDIO_AASB_AUDIO_INPUT_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInputProvider.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInputProvider.h new file mode 100644 index 000000000..daa54699d --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioInputProvider.h @@ -0,0 +1,59 @@ +/* + * Copyright 2017-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 AASB_ENGINE_AUDIO_AASB_AUDIO_INPUT_PROVIDER_H +#define AASB_ENGINE_AUDIO_AASB_AUDIO_INPUT_PROVIDER_H + +#include +#include +#include + +#include "AASBAudioInput.h" + +#include +#include + +namespace aasb { +namespace engine { +namespace audio { + +class AASBAudioInputProvider : public aace::audio::AudioInputProvider { +private: + AASBAudioInputProvider() = default; + + bool initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + +public: + virtual ~AASBAudioInputProvider() = default; + + static std::shared_ptr create( + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + + // aace::audio::AudioInputProvider + std::shared_ptr openChannel(const std::string& name, AudioInputType type) override; + +private: + std::weak_ptr m_messageBroker; + std::weak_ptr m_streamManager; +}; + +} // namespace audio +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_AUDIO_AASB_AUDIO_INPUT_PROVIDER_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutput.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutput.h new file mode 100644 index 000000000..b37f8d8e7 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutput.h @@ -0,0 +1,97 @@ +/* + * Copyright 2017-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 AASB_ENGINE_AUDIO_AASB_AUDIO_OUTPUT_H +#define AASB_ENGINE_AUDIO_AASB_AUDIO_OUTPUT_H + +#include +#include +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace audio { + +class AASBAudioOutput + : public aace::audio::AudioOutput + , public std::enable_shared_from_this { +private: + AASBAudioOutput(const std::string& name, const aace::audio::AudioOutputProvider::AudioOutputType& type); + + bool initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + +public: + virtual ~AASBAudioOutput() = default; + + static std::shared_ptr create( + const std::string& name, + const aace::audio::AudioOutputProvider::AudioOutputType& type, + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + + // aace::audio::AudioOutput + bool prepare(std::shared_ptr stream, bool repeating) override; + bool prepare(const std::string& url, bool repeating) override; + bool play() override; + bool stop() override; + bool pause() override; + bool resume() override; + int64_t getPosition() override; + bool setPosition(int64_t position) override; + int64_t getDuration() override; + bool volumeChanged(float volume) override; + bool mutedStateChanged(MutedState state) override; + int64_t getNumBytesBuffered() override; + +private: + const std::string m_name; + const aace::audio::AudioOutputProvider::AudioOutputType m_type; + + std::string m_currentToken; + + std::shared_ptr m_handler; + + std::weak_ptr m_messageBroker; + std::weak_ptr m_streamManager; + + // + // AudioOutputStreamHandler + // + + class AudioOutputStreamHandler : public aace::aasb::AASBStream { + public: + AudioOutputStreamHandler(std::shared_ptr stream); + + // aace::aasb::AASBStream + ssize_t read(char* data, const size_t size) override; + ssize_t write(const char* data, const size_t size) override; + bool isClosed() override; + AASBStream::Mode getMode() override; + + private: + std::shared_ptr m_stream; + }; +}; + +} // namespace audio +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_AUDIO_AASB_AUDIO_OUTPUT_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutputProvider.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutputProvider.h new file mode 100644 index 000000000..4111556b0 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Audio/AASBAudioOutputProvider.h @@ -0,0 +1,56 @@ +/* + * Copyright 2017-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 AASB_ENGINE_AUDIO_AASB_AUDIO_OUTPUT_PROVIDER_H +#define AASB_ENGINE_AUDIO_AASB_AUDIO_OUTPUT_PROVIDER_H + +#include +#include +#include + +#include "AASBAudioOutput.h" + +namespace aasb { +namespace engine { +namespace audio { + +class AASBAudioOutputProvider : public aace::audio::AudioOutputProvider { +private: + AASBAudioOutputProvider() = default; + + bool initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + +public: + virtual ~AASBAudioOutputProvider() = default; + + static std::shared_ptr create( + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + + // aace::audio::AudioOutputProvider + std::shared_ptr openChannel(const std::string& name, AudioOutputType type) override; + +private: + std::weak_ptr m_messageBroker; + std::weak_ptr m_streamManager; +}; + +} // namespace audio +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_AUDIO_AASB_AUDIO_OUTPUT_PROVIDER_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Location/AASBLocationEngineService.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Location/AASBLocationEngineService.h new file mode 100644 index 000000000..c3f892b82 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Location/AASBLocationEngineService.h @@ -0,0 +1,47 @@ +/* + * Copyright 2017-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 AASB_ENGINE_LOCATION_AASB_LOCATION_ENGINE_SERVICE_H +#define AASB_ENGINE_LOCATION_AASB_LOCATION_ENGINE_SERVICE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace location { + +class AASBLocationEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.location", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBLocationEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBLocationEngineService() = default; +}; + +} // namespace location +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Location/AASBLocationProvider.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Location/AASBLocationProvider.h new file mode 100644 index 000000000..093e80867 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Location/AASBLocationProvider.h @@ -0,0 +1,53 @@ +/* + * Copyright 2017-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 AASB_ENGINE_LOCATION_AASB_LOCATION_PROVIDER_H +#define AASB_ENGINE_LOCATION_AASB_LOCATION_PROVIDER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace location { + +class AASBLocationProvider + : public aace::location::LocationProvider + , public std::enable_shared_from_this { +private: + AASBLocationProvider() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::location::LocationProvider + aace::location::Location getLocation() override; + std::string getCountry() override; + +private: + std::weak_ptr m_messageBroker; + + // the current location + aace::location::Location m_location; +}; + +} // namespace location +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Network/AASBNetworkEngineService.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Network/AASBNetworkEngineService.h new file mode 100644 index 000000000..e27b5d8b1 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Network/AASBNetworkEngineService.h @@ -0,0 +1,47 @@ +/* + * Copyright 2017-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 AASB_ENGINE_NETWORK_AASB_NETWORK_ENGINE_SERVICE_H +#define AASB_ENGINE_NETWORK_AASB_NETWORK_ENGINE_SERVICE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace network { + +class AASBNetworkEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.network", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBNetworkEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBNetworkEngineService() = default; +}; + +} // namespace network +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Network/AASBNetworkInfoProvider.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Network/AASBNetworkInfoProvider.h new file mode 100644 index 000000000..8acda2917 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/Network/AASBNetworkInfoProvider.h @@ -0,0 +1,50 @@ +/* + * Copyright 2017-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 AASB_ENGINE_NETWORK_AASB_NETWORK_INFO_PROVIDER_H +#define AASB_ENGINE_NETWORK_AASB_NETWORK_INFO_PROVIDER_H + +#include +#include + +namespace aasb { +namespace engine { +namespace network { + +class AASBNetworkInfoProvider + : public aace::network::NetworkInfoProvider + , public std::enable_shared_from_this { +private: + AASBNetworkInfoProvider() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::network::NetworkInfoProvider + NetworkStatus getNetworkStatus() override; + int getWifiSignalStrength() override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace network +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/PropertyManager/AASBPropertyManager.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/PropertyManager/AASBPropertyManager.h new file mode 100644 index 000000000..5a355eeee --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/PropertyManager/AASBPropertyManager.h @@ -0,0 +1,53 @@ +/* + * 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 AASB_ENGINE_PROPERTY_MANAGER_AASB_PROPERTY_MANAGER_H +#define AASB_ENGINE_PROPERTY_MANAGER_AASB_PROPERTY_MANAGER_H + +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace propertyManager { + +class AASBPropertyManager + : public aace::propertyManager::PropertyManager + , public std::enable_shared_from_this { +private: + AASBPropertyManager() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::propertyManager::PropertyManager + void propertyChanged(const std::string& name, const std::string& newValue) override; + void propertyStateChanged(const std::string& name, const std::string& value, const PropertyState state) override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace propertyManager +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_PROPERTY_MANAGER_AASB_PROPERTY_MANAGER_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/PropertyManager/AASBPropertyManagerEngineService.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/PropertyManager/AASBPropertyManagerEngineService.h new file mode 100644 index 000000000..b633a6c90 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Engine/PropertyManager/AASBPropertyManagerEngineService.h @@ -0,0 +1,46 @@ +/* + * 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 AASB_ENGINE_PROPERTY_MANAGER_AASB_PROPERTY_MANAGER_ENGINE_SERVICE_H +#define AASB_ENGINE_PROPERTY_MANAGER_AASB_PROPERTY_MANAGER_ENGINE_SERVICE_H + +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace propertyManager { + +class AASBPropertyManagerEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.propertyManager", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBPropertyManagerEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBPropertyManagerEngineService() = default; +}; + +} // namespace propertyManager +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/AudioInputAudioType.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/AudioInputAudioType.h new file mode 100644 index 000000000..d8233acc1 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/AudioInputAudioType.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOINPUT_AUDIOINPUTAUDIOTYPE_H +#define AUDIOINPUT_AUDIOINPUTAUDIOTYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace audio { + +//Enum Definition +enum class AudioInputAudioType { + VOICE, + COMMUNICATION, + LOOPBACK, +}; + +inline std::string toString(AudioInputAudioType enumValue) { + switch (enumValue) { + case (AudioInputAudioType::VOICE): + return "VOICE"; + case (AudioInputAudioType::COMMUNICATION): + return "COMMUNICATION"; + case (AudioInputAudioType::LOOPBACK): + return "LOOPBACK"; + } + throw std::runtime_error("invalidAudioInputAudioTypeType"); +} + +inline AudioInputAudioType toAudioInputAudioType(const std::string& stringValue) { + static std::unordered_map map = { + {"VOICE", AudioInputAudioType::VOICE}, + {"COMMUNICATION", AudioInputAudioType::COMMUNICATION}, + {"LOOPBACK", AudioInputAudioType::LOOPBACK}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAudioInputAudioTypeType"); +} + +inline void to_json(nlohmann::json& j, const AudioInputAudioType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AudioInputAudioType& c) { + c = toAudioInputAudioType(j); +} + +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOINPUT_AUDIOINPUTAUDIOTYPE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StartAudioInputMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StartAudioInputMessage.h new file mode 100644 index 000000000..27ea949e3 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StartAudioInputMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOINPUT_STARTAUDIOINPUTMESSAGE_H +#define AUDIOINPUT_STARTAUDIOINPUTMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Audio/AudioInput/AudioInputAudioType.h" + +namespace aasb { +namespace message { +namespace audio { +namespace audioInput { + +//Class Definition +struct StartAudioInputMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioInput"; + return topic; + } + static const std::string& action() { + static std::string action = "StartAudioInput"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AudioInputAudioType = ::aasb::message::audio::AudioInputAudioType; + + std::string name; + AudioInputAudioType audioType; + std::string streamId; + }; + static const std::string& topic() { + static std::string topic = "AudioInput"; + return topic; + } + static const std::string& action() { + static std::string action = "StartAudioInput"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StartAudioInputMessage::Payload& c) { + j = nlohmann::json{ + {"name", c.name}, + {"audioType", c.audioType}, + {"streamId", c.streamId}, + }; +} +inline void from_json(const nlohmann::json& j, StartAudioInputMessage::Payload& c) { + j.at("name").get_to(c.name); + j.at("audioType").get_to(c.audioType); + j.at("streamId").get_to(c.streamId); +} + +inline void to_json(nlohmann::json& j, const StartAudioInputMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StartAudioInputMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StartAudioInputMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StartAudioInputMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StartAudioInputMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StartAudioInputMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StartAudioInputMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioInput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOINPUT_STARTAUDIOINPUTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StopAudioInputMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StopAudioInputMessage.h new file mode 100644 index 000000000..38dcee193 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioInput/StopAudioInputMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOINPUT_STOPAUDIOINPUTMESSAGE_H +#define AUDIOINPUT_STOPAUDIOINPUTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioInput { + +//Class Definition +struct StopAudioInputMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioInput"; + return topic; + } + static const std::string& action() { + static std::string action = "StopAudioInput"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string streamId; + }; + static const std::string& topic() { + static std::string topic = "AudioInput"; + return topic; + } + static const std::string& action() { + static std::string action = "StopAudioInput"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StopAudioInputMessage::Payload& c) { + j = nlohmann::json{ + {"streamId", c.streamId}, + }; +} +inline void from_json(const nlohmann::json& j, StopAudioInputMessage::Payload& c) { + j.at("streamId").get_to(c.streamId); +} + +inline void to_json(nlohmann::json& j, const StopAudioInputMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StopAudioInputMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StopAudioInputMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StopAudioInputMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StopAudioInputMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StopAudioInputMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StopAudioInputMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioInput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOINPUT_STOPAUDIOINPUTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputAudioType.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputAudioType.h new file mode 100644 index 000000000..a4f859439 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputAudioType.h @@ -0,0 +1,101 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_AUDIOOUTPUTAUDIOTYPE_H +#define AUDIOOUTPUT_AUDIOOUTPUTAUDIOTYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace audio { + +//Enum Definition +enum class AudioOutputAudioType { + TTS, + MUSIC, + NOTIFICATION, + ALARM, + EARCON, + COMMUNICATION, + RINGTONE, +}; + +inline std::string toString(AudioOutputAudioType enumValue) { + switch (enumValue) { + case (AudioOutputAudioType::TTS): + return "TTS"; + case (AudioOutputAudioType::MUSIC): + return "MUSIC"; + case (AudioOutputAudioType::NOTIFICATION): + return "NOTIFICATION"; + case (AudioOutputAudioType::ALARM): + return "ALARM"; + case (AudioOutputAudioType::EARCON): + return "EARCON"; + case (AudioOutputAudioType::COMMUNICATION): + return "COMMUNICATION"; + case (AudioOutputAudioType::RINGTONE): + return "RINGTONE"; + } + throw std::runtime_error("invalidAudioOutputAudioTypeType"); +} + +inline AudioOutputAudioType toAudioOutputAudioType(const std::string& stringValue) { + static std::unordered_map map = { + {"TTS", AudioOutputAudioType::TTS}, + {"MUSIC", AudioOutputAudioType::MUSIC}, + {"NOTIFICATION", AudioOutputAudioType::NOTIFICATION}, + {"ALARM", AudioOutputAudioType::ALARM}, + {"EARCON", AudioOutputAudioType::EARCON}, + {"COMMUNICATION", AudioOutputAudioType::COMMUNICATION}, + {"RINGTONE", AudioOutputAudioType::RINGTONE}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAudioOutputAudioTypeType"); +} + +inline void to_json(nlohmann::json& j, const AudioOutputAudioType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AudioOutputAudioType& c) { + c = toAudioOutputAudioType(j); +} + +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_AUDIOOUTPUTAUDIOTYPE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputSourceType.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputSourceType.h new file mode 100644 index 000000000..157abff49 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioOutputSourceType.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_AUDIOOUTPUTSOURCETYPE_H +#define AUDIOOUTPUT_AUDIOOUTPUTSOURCETYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace audio { + +//Enum Definition +enum class AudioOutputSourceType { + URI, + STREAM, +}; + +inline std::string toString(AudioOutputSourceType enumValue) { + switch (enumValue) { + case (AudioOutputSourceType::URI): + return "URI"; + case (AudioOutputSourceType::STREAM): + return "STREAM"; + } + throw std::runtime_error("invalidAudioOutputSourceTypeType"); +} + +inline AudioOutputSourceType toAudioOutputSourceType(const std::string& stringValue) { + static std::unordered_map map = { + {"URI", AudioOutputSourceType::URI}, + {"STREAM", AudioOutputSourceType::STREAM}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAudioOutputSourceTypeType"); +} + +inline void to_json(nlohmann::json& j, const AudioOutputSourceType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AudioOutputSourceType& c) { + c = toAudioOutputSourceType(j); +} + +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_AUDIOOUTPUTSOURCETYPE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamEncoding.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamEncoding.h new file mode 100644 index 000000000..31b9dd937 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamEncoding.h @@ -0,0 +1,89 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_AUDIOSTREAMENCODING_H +#define AUDIOOUTPUT_AUDIOSTREAMENCODING_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace audio { + +//Enum Definition +enum class AudioStreamEncoding { + UNKNOWN, + LPCM, + MP3, + OPUS, +}; + +inline std::string toString(AudioStreamEncoding enumValue) { + switch (enumValue) { + case (AudioStreamEncoding::UNKNOWN): + return "UNKNOWN"; + case (AudioStreamEncoding::LPCM): + return "LPCM"; + case (AudioStreamEncoding::MP3): + return "MP3"; + case (AudioStreamEncoding::OPUS): + return "OPUS"; + } + throw std::runtime_error("invalidAudioStreamEncodingType"); +} + +inline AudioStreamEncoding toAudioStreamEncoding(const std::string& stringValue) { + static std::unordered_map map = { + {"UNKNOWN", AudioStreamEncoding::UNKNOWN}, + {"LPCM", AudioStreamEncoding::LPCM}, + {"MP3", AudioStreamEncoding::MP3}, + {"OPUS", AudioStreamEncoding::OPUS}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAudioStreamEncodingType"); +} + +inline void to_json(nlohmann::json& j, const AudioStreamEncoding& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AudioStreamEncoding& c) { + c = toAudioStreamEncoding(j); +} + +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_AUDIOSTREAMENCODING_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamProperty.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamProperty.h new file mode 100644 index 000000000..784f54159 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/AudioStreamProperty.h @@ -0,0 +1,67 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_AUDIOSTREAMPROPERTY_H +#define AUDIOOUTPUT_AUDIOSTREAMPROPERTY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { + +//Class Definition +struct AudioStreamProperty { + std::string toString() const; + std::string name; + std::string value; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AudioStreamProperty& c) { + j = nlohmann::json{ + {"name", c.name}, + {"value", c.value}, + }; +} +inline void from_json(const nlohmann::json& j, AudioStreamProperty& c) { + j.at("name").get_to(c.name); + j.at("value").get_to(c.value); +} + +inline std::string AudioStreamProperty::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_AUDIOSTREAMPROPERTY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessage.h new file mode 100644 index 000000000..76fa70c79 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_GETDURATIONMESSAGE_H +#define AUDIOOUTPUT_GETDURATIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct GetDurationMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetDuration"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + std::string token; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetDuration"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetDurationMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, GetDurationMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const GetDurationMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetDurationMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetDurationMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetDurationMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetDurationMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetDurationMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetDurationMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_GETDURATIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessageReply.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessageReply.h new file mode 100644 index 000000000..a93f818c9 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetDurationMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_GETDURATIONMESSAGEREPLY_H +#define AUDIOOUTPUT_GETDURATIONMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct GetDurationMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetDuration"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + int duration; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetDuration"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetDurationMessageReply::Payload& c) { + j = nlohmann::json{ + {"duration", c.duration}, + }; +} +inline void from_json(const nlohmann::json& j, GetDurationMessageReply::Payload& c) { + j.at("duration").get_to(c.duration); +} + +inline void to_json(nlohmann::json& j, const GetDurationMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetDurationMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetDurationMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetDurationMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetDurationMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetDurationMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetDurationMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_GETDURATIONMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessage.h new file mode 100644 index 000000000..67ed4076b --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_GETNUMBYTESBUFFEREDMESSAGE_H +#define AUDIOOUTPUT_GETNUMBYTESBUFFEREDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct GetNumBytesBufferedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNumBytesBuffered"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + std::string token; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNumBytesBuffered"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetNumBytesBufferedMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, GetNumBytesBufferedMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const GetNumBytesBufferedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetNumBytesBufferedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetNumBytesBufferedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetNumBytesBufferedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetNumBytesBufferedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetNumBytesBufferedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetNumBytesBufferedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_GETNUMBYTESBUFFEREDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessageReply.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessageReply.h new file mode 100644 index 000000000..7bfd50e2c --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetNumBytesBufferedMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_GETNUMBYTESBUFFEREDMESSAGEREPLY_H +#define AUDIOOUTPUT_GETNUMBYTESBUFFEREDMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct GetNumBytesBufferedMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNumBytesBuffered"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + int bufferedBytes; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNumBytesBuffered"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetNumBytesBufferedMessageReply::Payload& c) { + j = nlohmann::json{ + {"bufferedBytes", c.bufferedBytes}, + }; +} +inline void from_json(const nlohmann::json& j, GetNumBytesBufferedMessageReply::Payload& c) { + j.at("bufferedBytes").get_to(c.bufferedBytes); +} + +inline void to_json(nlohmann::json& j, const GetNumBytesBufferedMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetNumBytesBufferedMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetNumBytesBufferedMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetNumBytesBufferedMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetNumBytesBufferedMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetNumBytesBufferedMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetNumBytesBufferedMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_GETNUMBYTESBUFFEREDMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessage.h new file mode 100644 index 000000000..774e4cb58 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_GETPOSITIONMESSAGE_H +#define AUDIOOUTPUT_GETPOSITIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct GetPositionMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPosition"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + std::string token; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPosition"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetPositionMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, GetPositionMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const GetPositionMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetPositionMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetPositionMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetPositionMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetPositionMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetPositionMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetPositionMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_GETPOSITIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessageReply.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessageReply.h new file mode 100644 index 000000000..959ba1b0d --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/GetPositionMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_GETPOSITIONMESSAGEREPLY_H +#define AUDIOOUTPUT_GETPOSITIONMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct GetPositionMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPosition"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + int position; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "GetPosition"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetPositionMessageReply::Payload& c) { + j = nlohmann::json{ + {"position", c.position}, + }; +} +inline void from_json(const nlohmann::json& j, GetPositionMessageReply::Payload& c) { + j.at("position").get_to(c.position); +} + +inline void to_json(nlohmann::json& j, const GetPositionMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetPositionMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetPositionMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetPositionMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetPositionMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetPositionMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetPositionMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_GETPOSITIONMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaError.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaError.h new file mode 100644 index 000000000..4eb046efd --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaError.h @@ -0,0 +1,93 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_MEDIAERROR_H +#define AUDIOOUTPUT_MEDIAERROR_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace audio { + +//Enum Definition +enum class MediaError { + MEDIA_ERROR_UNKNOWN, + MEDIA_ERROR_INVALID_REQUEST, + MEDIA_ERROR_SERVICE_UNAVAILABLE, + MEDIA_ERROR_INTERNAL_SERVER_ERROR, + MEDIA_ERROR_INTERNAL_DEVICE_ERROR, +}; + +inline std::string toString(MediaError enumValue) { + switch (enumValue) { + case (MediaError::MEDIA_ERROR_UNKNOWN): + return "MEDIA_ERROR_UNKNOWN"; + case (MediaError::MEDIA_ERROR_INVALID_REQUEST): + return "MEDIA_ERROR_INVALID_REQUEST"; + case (MediaError::MEDIA_ERROR_SERVICE_UNAVAILABLE): + return "MEDIA_ERROR_SERVICE_UNAVAILABLE"; + case (MediaError::MEDIA_ERROR_INTERNAL_SERVER_ERROR): + return "MEDIA_ERROR_INTERNAL_SERVER_ERROR"; + case (MediaError::MEDIA_ERROR_INTERNAL_DEVICE_ERROR): + return "MEDIA_ERROR_INTERNAL_DEVICE_ERROR"; + } + throw std::runtime_error("invalidMediaErrorType"); +} + +inline MediaError toMediaError(const std::string& stringValue) { + static std::unordered_map map = { + {"MEDIA_ERROR_UNKNOWN", MediaError::MEDIA_ERROR_UNKNOWN}, + {"MEDIA_ERROR_INVALID_REQUEST", MediaError::MEDIA_ERROR_INVALID_REQUEST}, + {"MEDIA_ERROR_SERVICE_UNAVAILABLE", MediaError::MEDIA_ERROR_SERVICE_UNAVAILABLE}, + {"MEDIA_ERROR_INTERNAL_SERVER_ERROR", MediaError::MEDIA_ERROR_INTERNAL_SERVER_ERROR}, + {"MEDIA_ERROR_INTERNAL_DEVICE_ERROR", MediaError::MEDIA_ERROR_INTERNAL_DEVICE_ERROR}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidMediaErrorType"); +} + +inline void to_json(nlohmann::json& j, const MediaError& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, MediaError& c) { + c = toMediaError(j); +} + +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_MEDIAERROR_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaErrorMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaErrorMessage.h new file mode 100644 index 000000000..e2868596f --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaErrorMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_MEDIAERRORMESSAGE_H +#define AUDIOOUTPUT_MEDIAERRORMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Audio/AudioOutput/MediaError.h" + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct MediaErrorMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "MediaError"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using MediaError = ::aasb::message::audio::MediaError; + + std::string token; + MediaError error; + std::string description; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "MediaError"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const MediaErrorMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + {"error", c.error}, + {"description", c.description}, + }; +} +inline void from_json(const nlohmann::json& j, MediaErrorMessage::Payload& c) { + j.at("token").get_to(c.token); + j.at("error").get_to(c.error); + j.at("description").get_to(c.description); +} + +inline void to_json(nlohmann::json& j, const MediaErrorMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, MediaErrorMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const MediaErrorMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, MediaErrorMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const MediaErrorMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, MediaErrorMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string MediaErrorMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_MEDIAERRORMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaState.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaState.h new file mode 100644 index 000000000..5dfd27d3d --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaState.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_MEDIASTATE_H +#define AUDIOOUTPUT_MEDIASTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace audio { + +//Enum Definition +enum class MediaState { + STOPPED, + PLAYING, + BUFFERING, +}; + +inline std::string toString(MediaState enumValue) { + switch (enumValue) { + case (MediaState::STOPPED): + return "STOPPED"; + case (MediaState::PLAYING): + return "PLAYING"; + case (MediaState::BUFFERING): + return "BUFFERING"; + } + throw std::runtime_error("invalidMediaStateType"); +} + +inline MediaState toMediaState(const std::string& stringValue) { + static std::unordered_map map = { + {"STOPPED", MediaState::STOPPED}, + {"PLAYING", MediaState::PLAYING}, + {"BUFFERING", MediaState::BUFFERING}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidMediaStateType"); +} + +inline void to_json(nlohmann::json& j, const MediaState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, MediaState& c) { + c = toMediaState(j); +} + +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_MEDIASTATE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaStateChangedMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaStateChangedMessage.h new file mode 100644 index 000000000..0ea52bd64 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MediaStateChangedMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_MEDIASTATECHANGEDMESSAGE_H +#define AUDIOOUTPUT_MEDIASTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Audio/AudioOutput/MediaState.h" + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct MediaStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "MediaStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using MediaState = ::aasb::message::audio::MediaState; + + std::string channel; + std::string token; + MediaState state; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "MediaStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const MediaStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, MediaStateChangedMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const MediaStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, MediaStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const MediaStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, MediaStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const MediaStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, MediaStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string MediaStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_MEDIASTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedState.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedState.h new file mode 100644 index 000000000..860bcd409 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedState.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_MUTEDSTATE_H +#define AUDIOOUTPUT_MUTEDSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace audio { + +//Enum Definition +enum class MutedState { + MUTED, + UNMUTED, +}; + +inline std::string toString(MutedState enumValue) { + switch (enumValue) { + case (MutedState::MUTED): + return "MUTED"; + case (MutedState::UNMUTED): + return "UNMUTED"; + } + throw std::runtime_error("invalidMutedStateType"); +} + +inline MutedState toMutedState(const std::string& stringValue) { + static std::unordered_map map = { + {"MUTED", MutedState::MUTED}, + {"UNMUTED", MutedState::UNMUTED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidMutedStateType"); +} + +inline void to_json(nlohmann::json& j, const MutedState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, MutedState& c) { + c = toMutedState(j); +} + +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_MUTEDSTATE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedStateChangedMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedStateChangedMessage.h new file mode 100644 index 000000000..efc0d2f18 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/MutedStateChangedMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_MUTEDSTATECHANGEDMESSAGE_H +#define AUDIOOUTPUT_MUTEDSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Audio/AudioOutput/MutedState.h" + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct MutedStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "MutedStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using MutedState = ::aasb::message::audio::MutedState; + + std::string channel; + MutedState state; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "MutedStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const MutedStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, MutedStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string MutedStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_MUTEDSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PauseMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PauseMessage.h new file mode 100644 index 000000000..2938e2be3 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PauseMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_PAUSEMESSAGE_H +#define AUDIOOUTPUT_PAUSEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct PauseMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Pause"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + std::string token; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Pause"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PauseMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, PauseMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const PauseMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PauseMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PauseMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PauseMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PauseMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PauseMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PauseMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_PAUSEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PlayMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PlayMessage.h new file mode 100644 index 000000000..21dc08c21 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PlayMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_PLAYMESSAGE_H +#define AUDIOOUTPUT_PLAYMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct PlayMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Play"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + std::string token; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Play"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PlayMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const PlayMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PlayMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PlayMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PlayMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PlayMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_PLAYMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareStreamMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareStreamMessage.h new file mode 100644 index 000000000..4804c71d6 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareStreamMessage.h @@ -0,0 +1,173 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_PREPARESTREAMMESSAGE_H +#define AUDIOOUTPUT_PREPARESTREAMMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Audio/AudioOutput/AudioOutputAudioType.h" +#include "AASB/Message/Audio/AudioOutput/AudioStreamEncoding.h" + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct PrepareStreamMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Prepare"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AudioOutputAudioType = ::aasb::message::audio::AudioOutputAudioType; + using AudioStreamEncoding = ::aasb::message::audio::AudioStreamEncoding; + + static const std::string& source() { + static std::string source = "STREAM"; + return source; + } + std::string channel; + AudioOutputAudioType audioType; + std::string token; + std::string streamId; + bool repeating; + AudioStreamEncoding encoding; + std::unordered_map properties; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Prepare"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + static const std::string& source() { + static std::string source = "STREAM"; + return source; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PrepareStreamMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source()}, + {"channel", c.channel}, + {"audioType", c.audioType}, + {"token", c.token}, + {"streamId", c.streamId}, + {"repeating", c.repeating}, + {"encoding", c.encoding}, + {"properties", c.properties}, + }; +} +inline void from_json(const nlohmann::json& j, PrepareStreamMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("audioType").get_to(c.audioType); + j.at("token").get_to(c.token); + j.at("streamId").get_to(c.streamId); + j.at("repeating").get_to(c.repeating); + j.at("encoding").get_to(c.encoding); + j.at("properties").get_to(c.properties); +} + +inline void to_json(nlohmann::json& j, const PrepareStreamMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PrepareStreamMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PrepareStreamMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PrepareStreamMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PrepareStreamMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PrepareStreamMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PrepareStreamMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_PREPARESTREAMMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareURLMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareURLMessage.h new file mode 100644 index 000000000..ee60df7a9 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/PrepareURLMessage.h @@ -0,0 +1,165 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_PREPAREURLMESSAGE_H +#define AUDIOOUTPUT_PREPAREURLMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Audio/AudioOutput/AudioOutputAudioType.h" + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct PrepareURLMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Prepare"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AudioOutputAudioType = ::aasb::message::audio::AudioOutputAudioType; + + static const std::string& source() { + static std::string source = "URL"; + return source; + } + std::string channel; + AudioOutputAudioType audioType; + std::string token; + std::string url; + bool repeating; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Prepare"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + static const std::string& source() { + static std::string source = "URL"; + return source; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PrepareURLMessage::Payload& c) { + j = nlohmann::json{ + {"source", c.source()}, + {"channel", c.channel}, + {"audioType", c.audioType}, + {"token", c.token}, + {"url", c.url}, + {"repeating", c.repeating}, + }; +} +inline void from_json(const nlohmann::json& j, PrepareURLMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("audioType").get_to(c.audioType); + j.at("token").get_to(c.token); + j.at("url").get_to(c.url); + j.at("repeating").get_to(c.repeating); +} + +inline void to_json(nlohmann::json& j, const PrepareURLMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PrepareURLMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PrepareURLMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PrepareURLMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PrepareURLMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PrepareURLMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PrepareURLMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_PREPAREURLMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/ResumeMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/ResumeMessage.h new file mode 100644 index 000000000..e2eab116b --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/ResumeMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_RESUMEMESSAGE_H +#define AUDIOOUTPUT_RESUMEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct ResumeMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Resume"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + std::string token; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Resume"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ResumeMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, ResumeMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const ResumeMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ResumeMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ResumeMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ResumeMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ResumeMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ResumeMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ResumeMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_RESUMEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/SetPositionMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/SetPositionMessage.h new file mode 100644 index 000000000..ba0de9e3a --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/SetPositionMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_SETPOSITIONMESSAGE_H +#define AUDIOOUTPUT_SETPOSITIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct SetPositionMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "SetPosition"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + std::string token; + int position; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "SetPosition"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetPositionMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + {"position", c.position}, + }; +} +inline void from_json(const nlohmann::json& j, SetPositionMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); + j.at("position").get_to(c.position); +} + +inline void to_json(nlohmann::json& j, const SetPositionMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetPositionMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetPositionMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetPositionMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetPositionMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetPositionMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetPositionMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_SETPOSITIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/StopMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/StopMessage.h new file mode 100644 index 000000000..fbed6d4e6 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/StopMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_STOPMESSAGE_H +#define AUDIOOUTPUT_STOPMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct StopMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Stop"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + std::string token; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "Stop"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StopMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, StopMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const StopMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StopMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StopMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StopMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StopMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StopMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StopMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_STOPMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/VolumeChangedMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/VolumeChangedMessage.h new file mode 100644 index 000000000..9033b2ccb --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Audio/AudioOutput/VolumeChangedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AUDIOOUTPUT_VOLUMECHANGEDMESSAGE_H +#define AUDIOOUTPUT_VOLUMECHANGEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace audio { +namespace audioOutput { + +//Class Definition +struct VolumeChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "VolumeChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string channel; + float volume; + }; + static const std::string& topic() { + static std::string topic = "AudioOutput"; + return topic; + } + static const std::string& action() { + static std::string action = "VolumeChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Payload& c) { + j = nlohmann::json{ + {"channel", c.channel}, + {"volume", c.volume}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Payload& c) { + j.at("channel").get_to(c.channel); + j.at("volume").get_to(c.volume); +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const VolumeChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, VolumeChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string VolumeChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace audioOutput +} // namespace audio +} // namespace message +} // namespace aasb + +#endif // AUDIOOUTPUT_VOLUMECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessage.h new file mode 100644 index 000000000..9ea6b6476 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCATIONPROVIDER_GETCOUNTRYMESSAGE_H +#define LOCATIONPROVIDER_GETCOUNTRYMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace location { +namespace locationProvider { + +//Class Definition +struct GetCountryMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocationProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetCountry"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "LocationProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetCountry"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetCountryMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetCountryMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetCountryMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetCountryMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetCountryMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetCountryMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetCountryMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetCountryMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetCountryMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace locationProvider +} // namespace location +} // namespace message +} // namespace aasb + +#endif // LOCATIONPROVIDER_GETCOUNTRYMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessageReply.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessageReply.h new file mode 100644 index 000000000..d559b87e2 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetCountryMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCATIONPROVIDER_GETCOUNTRYMESSAGEREPLY_H +#define LOCATIONPROVIDER_GETCOUNTRYMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace location { +namespace locationProvider { + +//Class Definition +struct GetCountryMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocationProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetCountry"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string country; + }; + static const std::string& topic() { + static std::string topic = "LocationProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetCountry"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetCountryMessageReply::Payload& c) { + j = nlohmann::json{ + {"country", c.country}, + }; +} +inline void from_json(const nlohmann::json& j, GetCountryMessageReply::Payload& c) { + j.at("country").get_to(c.country); +} + +inline void to_json(nlohmann::json& j, const GetCountryMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetCountryMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetCountryMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetCountryMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetCountryMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetCountryMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetCountryMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace locationProvider +} // namespace location +} // namespace message +} // namespace aasb + +#endif // LOCATIONPROVIDER_GETCOUNTRYMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessage.h new file mode 100644 index 000000000..1b94b6a63 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCATIONPROVIDER_GETLOCATIONMESSAGE_H +#define LOCATIONPROVIDER_GETLOCATIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace location { +namespace locationProvider { + +//Class Definition +struct GetLocationMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocationProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetLocation"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "LocationProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetLocation"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetLocationMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetLocationMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetLocationMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetLocationMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetLocationMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetLocationMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetLocationMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetLocationMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetLocationMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace locationProvider +} // namespace location +} // namespace message +} // namespace aasb + +#endif // LOCATIONPROVIDER_GETLOCATIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessageReply.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessageReply.h new file mode 100644 index 000000000..271517c48 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/GetLocationMessageReply.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCATIONPROVIDER_GETLOCATIONMESSAGEREPLY_H +#define LOCATIONPROVIDER_GETLOCATIONMESSAGEREPLY_H + +#include +#include + +#include +#include +#include "AASB/Message/Location/LocationProvider/Location.h" + +namespace aasb { +namespace message { +namespace location { +namespace locationProvider { + +//Class Definition +struct GetLocationMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "LocationProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetLocation"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using Location = ::aasb::message::location::Location; + + Location location; + }; + static const std::string& topic() { + static std::string topic = "LocationProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetLocation"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetLocationMessageReply::Payload& c) { + j = nlohmann::json{ + {"location", c.location}, + }; +} +inline void from_json(const nlohmann::json& j, GetLocationMessageReply::Payload& c) { + j.at("location").get_to(c.location); +} + +inline void to_json(nlohmann::json& j, const GetLocationMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetLocationMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetLocationMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetLocationMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetLocationMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetLocationMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetLocationMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace locationProvider +} // namespace location +} // namespace message +} // namespace aasb + +#endif // LOCATIONPROVIDER_GETLOCATIONMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/Location.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/Location.h new file mode 100644 index 000000000..aa940393b --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Location/LocationProvider/Location.h @@ -0,0 +1,67 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef LOCATIONPROVIDER_LOCATION_H +#define LOCATIONPROVIDER_LOCATION_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace location { + +//Class Definition +struct Location { + std::string toString() const; + float latitude; + float longitude; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const Location& c) { + j = nlohmann::json{ + {"latitude", c.latitude}, + {"longitude", c.longitude}, + }; +} +inline void from_json(const nlohmann::json& j, Location& c) { + j.at("latitude").get_to(c.latitude); + j.at("longitude").get_to(c.longitude); +} + +inline std::string Location::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace location +} // namespace message +} // namespace aasb + +#endif // LOCATIONPROVIDER_LOCATION_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessage.h new file mode 100644 index 000000000..2118beb31 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NETWORKINFOPROVIDER_GETNETWORKSTATUSMESSAGE_H +#define NETWORKINFOPROVIDER_GETNETWORKSTATUSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace network { +namespace networkInfoProvider { + +//Class Definition +struct GetNetworkStatusMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNetworkStatus"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNetworkStatus"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetNetworkStatusMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetNetworkStatusMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetNetworkStatusMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetNetworkStatusMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetNetworkStatusMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetNetworkStatusMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetNetworkStatusMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetNetworkStatusMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetNetworkStatusMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace networkInfoProvider +} // namespace network +} // namespace message +} // namespace aasb + +#endif // NETWORKINFOPROVIDER_GETNETWORKSTATUSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessageReply.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessageReply.h new file mode 100644 index 000000000..e1994dd1b --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetNetworkStatusMessageReply.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NETWORKINFOPROVIDER_GETNETWORKSTATUSMESSAGEREPLY_H +#define NETWORKINFOPROVIDER_GETNETWORKSTATUSMESSAGEREPLY_H + +#include +#include + +#include +#include +#include "AASB/Message/Network/NetworkInfoProvider/NetworkStatus.h" + +namespace aasb { +namespace message { +namespace network { +namespace networkInfoProvider { + +//Class Definition +struct GetNetworkStatusMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNetworkStatus"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using NetworkStatus = ::aasb::message::network::NetworkStatus; + + NetworkStatus status; + }; + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNetworkStatus"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetNetworkStatusMessageReply::Payload& c) { + j = nlohmann::json{ + {"status", c.status}, + }; +} +inline void from_json(const nlohmann::json& j, GetNetworkStatusMessageReply::Payload& c) { + j.at("status").get_to(c.status); +} + +inline void to_json(nlohmann::json& j, const GetNetworkStatusMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetNetworkStatusMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetNetworkStatusMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetNetworkStatusMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetNetworkStatusMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetNetworkStatusMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetNetworkStatusMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace networkInfoProvider +} // namespace network +} // namespace message +} // namespace aasb + +#endif // NETWORKINFOPROVIDER_GETNETWORKSTATUSMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessage.h new file mode 100644 index 000000000..36af54bd8 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NETWORKINFOPROVIDER_GETWIFISIGNALSTRENGTHMESSAGE_H +#define NETWORKINFOPROVIDER_GETWIFISIGNALSTRENGTHMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace network { +namespace networkInfoProvider { + +//Class Definition +struct GetWifiSignalStrengthMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetWifiSignalStrength"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetWifiSignalStrength"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetWifiSignalStrengthMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetWifiSignalStrengthMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetWifiSignalStrengthMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetWifiSignalStrengthMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetWifiSignalStrengthMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetWifiSignalStrengthMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetWifiSignalStrengthMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetWifiSignalStrengthMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetWifiSignalStrengthMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace networkInfoProvider +} // namespace network +} // namespace message +} // namespace aasb + +#endif // NETWORKINFOPROVIDER_GETWIFISIGNALSTRENGTHMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.h new file mode 100644 index 000000000..0b2ffc5f7 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/GetWifiSignalStrengthMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NETWORKINFOPROVIDER_GETWIFISIGNALSTRENGTHMESSAGEREPLY_H +#define NETWORKINFOPROVIDER_GETWIFISIGNALSTRENGTHMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace network { +namespace networkInfoProvider { + +//Class Definition +struct GetWifiSignalStrengthMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetWifiSignalStrength"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + int wifiSignalStrength; + }; + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "GetWifiSignalStrength"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetWifiSignalStrengthMessageReply::Payload& c) { + j = nlohmann::json{ + {"wifiSignalStrength", c.wifiSignalStrength}, + }; +} +inline void from_json(const nlohmann::json& j, GetWifiSignalStrengthMessageReply::Payload& c) { + j.at("wifiSignalStrength").get_to(c.wifiSignalStrength); +} + +inline void to_json(nlohmann::json& j, const GetWifiSignalStrengthMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetWifiSignalStrengthMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetWifiSignalStrengthMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetWifiSignalStrengthMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetWifiSignalStrengthMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetWifiSignalStrengthMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetWifiSignalStrengthMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace networkInfoProvider +} // namespace network +} // namespace message +} // namespace aasb + +#endif // NETWORKINFOPROVIDER_GETWIFISIGNALSTRENGTHMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatus.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatus.h new file mode 100644 index 000000000..28691f7b5 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatus.h @@ -0,0 +1,93 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NETWORKINFOPROVIDER_NETWORKSTATUS_H +#define NETWORKINFOPROVIDER_NETWORKSTATUS_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace network { + +//Enum Definition +enum class NetworkStatus { + UNKNOWN, + DISCONNECTED, + DISCONNECTING, + CONNECTED, + CONNECTING, +}; + +inline std::string toString(NetworkStatus enumValue) { + switch (enumValue) { + case (NetworkStatus::UNKNOWN): + return "UNKNOWN"; + case (NetworkStatus::DISCONNECTED): + return "DISCONNECTED"; + case (NetworkStatus::DISCONNECTING): + return "DISCONNECTING"; + case (NetworkStatus::CONNECTED): + return "CONNECTED"; + case (NetworkStatus::CONNECTING): + return "CONNECTING"; + } + throw std::runtime_error("invalidNetworkStatusType"); +} + +inline NetworkStatus toNetworkStatus(const std::string& stringValue) { + static std::unordered_map map = { + {"UNKNOWN", NetworkStatus::UNKNOWN}, + {"DISCONNECTED", NetworkStatus::DISCONNECTED}, + {"DISCONNECTING", NetworkStatus::DISCONNECTING}, + {"CONNECTED", NetworkStatus::CONNECTED}, + {"CONNECTING", NetworkStatus::CONNECTING}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidNetworkStatusType"); +} + +inline void to_json(nlohmann::json& j, const NetworkStatus& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, NetworkStatus& c) { + c = toNetworkStatus(j); +} + +} // namespace network +} // namespace message +} // namespace aasb + +#endif // NETWORKINFOPROVIDER_NETWORKSTATUS_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatusChangedMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatusChangedMessage.h new file mode 100644 index 000000000..135c91cc0 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/Network/NetworkInfoProvider/NetworkStatusChangedMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NETWORKINFOPROVIDER_NETWORKSTATUSCHANGEDMESSAGE_H +#define NETWORKINFOPROVIDER_NETWORKSTATUSCHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Network/NetworkInfoProvider/NetworkStatus.h" + +namespace aasb { +namespace message { +namespace network { +namespace networkInfoProvider { + +//Class Definition +struct NetworkStatusChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "NetworkStatusChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using NetworkStatus = ::aasb::message::network::NetworkStatus; + + NetworkStatus status; + int wifiSignalStrength; + }; + static const std::string& topic() { + static std::string topic = "NetworkInfoProvider"; + return topic; + } + static const std::string& action() { + static std::string action = "NetworkStatusChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const NetworkStatusChangedMessage::Payload& c) { + j = nlohmann::json{ + {"status", c.status}, + {"wifiSignalStrength", c.wifiSignalStrength}, + }; +} +inline void from_json(const nlohmann::json& j, NetworkStatusChangedMessage::Payload& c) { + j.at("status").get_to(c.status); + j.at("wifiSignalStrength").get_to(c.wifiSignalStrength); +} + +inline void to_json(nlohmann::json& j, const NetworkStatusChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, NetworkStatusChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const NetworkStatusChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, NetworkStatusChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const NetworkStatusChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, NetworkStatusChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string NetworkStatusChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace networkInfoProvider +} // namespace network +} // namespace message +} // namespace aasb + +#endif // NETWORKINFOPROVIDER_NETWORKSTATUSCHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessage.h new file mode 100644 index 000000000..36529a579 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PROPERTYMANAGER_GETPROPERTYMESSAGE_H +#define PROPERTYMANAGER_GETPROPERTYMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace propertyManager { +namespace propertyManager { + +//Class Definition +struct GetPropertyMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "GetProperty"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string name; + }; + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "GetProperty"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetPropertyMessage::Payload& c) { + j = nlohmann::json{ + {"name", c.name}, + }; +} +inline void from_json(const nlohmann::json& j, GetPropertyMessage::Payload& c) { + j.at("name").get_to(c.name); +} + +inline void to_json(nlohmann::json& j, const GetPropertyMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetPropertyMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetPropertyMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetPropertyMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetPropertyMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetPropertyMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetPropertyMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace propertyManager +} // namespace propertyManager +} // namespace message +} // namespace aasb + +#endif // PROPERTYMANAGER_GETPROPERTYMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessageReply.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessageReply.h new file mode 100644 index 000000000..0f46fbdca --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/GetPropertyMessageReply.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PROPERTYMANAGER_GETPROPERTYMESSAGEREPLY_H +#define PROPERTYMANAGER_GETPROPERTYMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace propertyManager { +namespace propertyManager { + +//Class Definition +struct GetPropertyMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "GetProperty"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string name; + std::string value; + }; + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "GetProperty"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetPropertyMessageReply::Payload& c) { + j = nlohmann::json{ + {"name", c.name}, + {"value", c.value}, + }; +} +inline void from_json(const nlohmann::json& j, GetPropertyMessageReply::Payload& c) { + j.at("name").get_to(c.name); + j.at("value").get_to(c.value); +} + +inline void to_json(nlohmann::json& j, const GetPropertyMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetPropertyMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetPropertyMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetPropertyMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetPropertyMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetPropertyMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetPropertyMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace propertyManager +} // namespace propertyManager +} // namespace message +} // namespace aasb + +#endif // PROPERTYMANAGER_GETPROPERTYMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyChangedMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyChangedMessage.h new file mode 100644 index 000000000..12d8a7043 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyChangedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PROPERTYMANAGER_PROPERTYCHANGEDMESSAGE_H +#define PROPERTYMANAGER_PROPERTYCHANGEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace propertyManager { +namespace propertyManager { + +//Class Definition +struct PropertyChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "PropertyChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string name; + std::string newValue; + }; + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "PropertyChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PropertyChangedMessage::Payload& c) { + j = nlohmann::json{ + {"name", c.name}, + {"newValue", c.newValue}, + }; +} +inline void from_json(const nlohmann::json& j, PropertyChangedMessage::Payload& c) { + j.at("name").get_to(c.name); + j.at("newValue").get_to(c.newValue); +} + +inline void to_json(nlohmann::json& j, const PropertyChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PropertyChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PropertyChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PropertyChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PropertyChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PropertyChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PropertyChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace propertyManager +} // namespace propertyManager +} // namespace message +} // namespace aasb + +#endif // PROPERTYMANAGER_PROPERTYCHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyState.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyState.h new file mode 100644 index 000000000..8dc7e6300 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyState.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PROPERTYMANAGER_PROPERTYSTATE_H +#define PROPERTYMANAGER_PROPERTYSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace propertyManager { + +//Enum Definition +enum class PropertyState { + SUCCEEDED, + FAILED, +}; + +inline std::string toString(PropertyState enumValue) { + switch (enumValue) { + case (PropertyState::SUCCEEDED): + return "SUCCEEDED"; + case (PropertyState::FAILED): + return "FAILED"; + } + throw std::runtime_error("invalidPropertyStateType"); +} + +inline PropertyState toPropertyState(const std::string& stringValue) { + static std::unordered_map map = { + {"SUCCEEDED", PropertyState::SUCCEEDED}, + {"FAILED", PropertyState::FAILED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidPropertyStateType"); +} + +inline void to_json(nlohmann::json& j, const PropertyState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, PropertyState& c) { + c = toPropertyState(j); +} + +} // namespace propertyManager +} // namespace message +} // namespace aasb + +#endif // PROPERTYMANAGER_PROPERTYSTATE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyStateChangedMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyStateChangedMessage.h new file mode 100644 index 000000000..b07a295bb --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/PropertyStateChangedMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PROPERTYMANAGER_PROPERTYSTATECHANGEDMESSAGE_H +#define PROPERTYMANAGER_PROPERTYSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/PropertyManager/PropertyManager/PropertyState.h" + +namespace aasb { +namespace message { +namespace propertyManager { +namespace propertyManager { + +//Class Definition +struct PropertyStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "PropertyStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using PropertyState = ::aasb::message::propertyManager::PropertyState; + + std::string name; + std::string value; + PropertyState state; + }; + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "PropertyStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const PropertyStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"name", c.name}, + {"value", c.value}, + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, PropertyStateChangedMessage::Payload& c) { + j.at("name").get_to(c.name); + j.at("value").get_to(c.value); + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const PropertyStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, PropertyStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const PropertyStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, PropertyStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const PropertyStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, PropertyStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string PropertyStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace propertyManager +} // namespace propertyManager +} // namespace message +} // namespace aasb + +#endif // PROPERTYMANAGER_PROPERTYSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/SetPropertyMessage.h b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/SetPropertyMessage.h new file mode 100644 index 000000000..68c46b7d5 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/include/AASB/Message/PropertyManager/PropertyManager/SetPropertyMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PROPERTYMANAGER_SETPROPERTYMESSAGE_H +#define PROPERTYMANAGER_SETPROPERTYMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace propertyManager { +namespace propertyManager { + +//Class Definition +struct SetPropertyMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "SetProperty"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string name; + std::string value; + }; + static const std::string& topic() { + static std::string topic = "PropertyManager"; + return topic; + } + static const std::string& action() { + static std::string action = "SetProperty"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SetPropertyMessage::Payload& c) { + j = nlohmann::json{ + {"name", c.name}, + {"value", c.value}, + }; +} +inline void from_json(const nlohmann::json& j, SetPropertyMessage::Payload& c) { + j.at("name").get_to(c.name); + j.at("value").get_to(c.value); +} + +inline void to_json(nlohmann::json& j, const SetPropertyMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SetPropertyMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SetPropertyMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SetPropertyMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SetPropertyMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SetPropertyMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SetPropertyMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace propertyManager +} // namespace propertyManager +} // namespace message +} // namespace aasb + +#endif // PROPERTYMANAGER_SETPROPERTYMESSAGE_H diff --git a/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioEngineService.cpp b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioEngineService.cpp new file mode 100644 index 000000000..97824ea8b --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioEngineService.cpp @@ -0,0 +1,73 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace audio { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.audio.AASBAudioEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBAudioEngineService); + +AASBAudioEngineService::AASBAudioEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService( + description, + minRequiredVersion, + {"AudioInputProvider", "AudioOutputProvider"}) { +} + +bool AASBAudioEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // AudioInputProvider + if (isInterfaceEnabled("AudioInputProvider")) { + auto inputProvider = AASBAudioInputProvider::create( + aasbServiceInterface->getMessageBroker(), aasbServiceInterface->getStreamManager()); + ThrowIfNull(inputProvider, "createAASBAudioInputProviderFailed"); + getContext()->registerPlatformInterface(inputProvider); + } + + // AudioOutputProvider + if (isInterfaceEnabled("AudioOutputProvider")) { + auto outputProvider = AASBAudioOutputProvider::create( + aasbServiceInterface->getMessageBroker(), aasbServiceInterface->getStreamManager()); + ThrowIfNull(outputProvider, "createAudioSocketOutputProviderFailed"); + getContext()->registerPlatformInterface(outputProvider); + } + + return true; + } catch (std::exception& ex) { + AACE_WARN(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace audio +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioInput.cpp b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioInput.cpp new file mode 100644 index 000000000..03206bb62 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioInput.cpp @@ -0,0 +1,162 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include + +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace audio { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.audio.AASBAudioInput"); + +AASBAudioInput::AASBAudioInput(const std::string& name, AudioInputType type) : m_name(name), m_type(type) { +} + +std::shared_ptr AASBAudioInput::create( + const std::string& name, + AudioInputType type, + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + ThrowIfNull(messageBroker, "invalidMessageBroker"); + ThrowIfNull(streamManager, "invalidstreamManager"); + + auto audioInput = std::shared_ptr(new AASBAudioInput(name, type)); + ThrowIfNot(audioInput->initialize(messageBroker, streamManager), "initializeAudioInputFailed"); + + return audioInput; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAudioInput::initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + m_messageBroker = messageBroker; + m_streamManager = streamManager; + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::audio::AudioInput +// + +bool AASBAudioInput::startAudioInput() { + try { + AACE_VERBOSE(LX(TAG)); + + ThrowIf(m_expectAudio, "alreadyExpectingAudio"); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + auto m_streamManager_lock = m_streamManager.lock(); + ThrowIfNull(m_streamManager_lock, "invalidstreamManagerReference"); + + // generate the stream uuid + auto streamId = aace::engine::utils::uuid::generateUUID(); + + // create the stream handler + auto handler = std::make_shared(shared_from_this()); + m_streamManager_lock->registerStreamHandler(streamId, handler); + + m_expectAudio = true; + m_currentStreamId = streamId; + + aasb::message::audio::audioInput::StartAudioInputMessage message; + message.payload.streamId = streamId; + message.payload.audioType = static_cast(m_type); + message.payload.name = m_name; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAudioInput::stopAudioInput() { + try { + AACE_VERBOSE(LX(TAG)); + + ThrowIfNot(m_expectAudio, "notExpectingAudio"); + ThrowIf(m_currentStreamId.empty(), "invalidStreamId"); + + auto streamId = m_currentStreamId; + + m_expectAudio = false; + m_currentStreamId.clear(); + + if (auto m_messageBroker_lock = m_messageBroker.lock()) { + aasb::message::audio::audioInput::StopAudioInputMessage message; + message.payload.streamId = streamId; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } else { + Throw("invalidMessageBrokerReference"); + } + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// AudioInputStreamHandler +// + +AASBAudioInput::AudioInputStreamHandler::AudioInputStreamHandler(std::shared_ptr audioInput) : + m_audioInput(audioInput) { +} + +ssize_t AASBAudioInput::AudioInputStreamHandler::read(char* data, const size_t size) { + AACE_ERROR(LX(TAG).d("reason", "invalidOperation")); + return -1; +} + +ssize_t AASBAudioInput::AudioInputStreamHandler::write(const char* data, const size_t size) { + return m_audioInput->write((int16_t*)data, size / 2) * 2; +} + +bool AASBAudioInput::AudioInputStreamHandler::isClosed() { + return m_audioInput->m_expectAudio == false; +} + +aace::aasb::AASBStream::Mode AASBAudioInput::AudioInputStreamHandler::getMode() { + return aace::aasb::AASBStream::Mode::WRITE; +} + +} // namespace audio +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioInputProvider.cpp b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioInputProvider.cpp new file mode 100644 index 000000000..b1ed2c3b8 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioInputProvider.cpp @@ -0,0 +1,82 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +namespace aasb { +namespace engine { +namespace audio { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.audio.AASBAudioInputProvider"); + +std::shared_ptr AASBAudioInputProvider::create( + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + ThrowIfNull(messageBroker, "invalidMessageBroker"); + ThrowIfNull(streamManager, "invalidstreamManager"); + + auto audioInputProvider = std::shared_ptr(new AASBAudioInputProvider()); + ThrowIfNot(audioInputProvider->initialize(messageBroker, streamManager), "initializeAudioInputProviderFailed"); + + return audioInputProvider; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAudioInputProvider::initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + m_messageBroker = messageBroker; + m_streamManager = streamManager; + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::audio::AudioInputProvider +// + +std::shared_ptr AASBAudioInputProvider::openChannel( + const std::string& name, + AudioInputType type) { + try { + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + auto m_streamManager_lock = m_streamManager.lock(); + ThrowIfNull(m_streamManager_lock, "invalidstreamManagerReference"); + + auto audioInput = AASBAudioInput::create(name, type, m_messageBroker_lock, m_streamManager_lock); + ThrowIfNull(audioInput, "createAudioInputFailed"); + + return audioInput; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +} // namespace audio +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioOutput.cpp b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioOutput.cpp new file mode 100644 index 000000000..b5d423712 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioOutput.cpp @@ -0,0 +1,458 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace audio { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.audio.AASBAudioOutput"); + +// aliases +using Message = aace::engine::aasb::Message; + +AASBAudioOutput::AASBAudioOutput( + const std::string& name, + const aace::audio::AudioOutputProvider::AudioOutputType& type) : + m_name(name), m_type(type) { +} + +std::shared_ptr AASBAudioOutput::create( + const std::string& name, + const aace::audio::AudioOutputProvider::AudioOutputType& type, + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + ThrowIfNull(messageBroker, "invalidMessageBroker"); + ThrowIfNull(streamManager, "invalidstreamManager"); + + auto audioOutput = std::shared_ptr(new AASBAudioOutput(name, type)); + ThrowIfNot(audioOutput->initialize(messageBroker, streamManager), "initializeAudioOutputFailed"); + + return audioOutput; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAudioOutput::initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + m_messageBroker = messageBroker; + m_streamManager = streamManager; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + // + // AudioOutput:MediaStateChanged + // + messageBroker->subscribe( + aasb::message::audio::audioOutput::MediaStateChangedMessage::topic(), + aasb::message::audio::audioOutput::MediaStateChangedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::audio::audioOutput::MediaStateChangedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + if (payload.channel == sp->m_name) { + sp->mediaStateChanged(static_cast(payload.state)); + } + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "MediaStateChangedMessage").d("reason", ex.what())); + } + }); + + // + // AudioOutput:MediaError + // + messageBroker->subscribe( + aasb::message::audio::audioOutput::MediaErrorMessage::topic(), + aasb::message::audio::audioOutput::MediaErrorMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::audio::audioOutput::MediaErrorMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + if (payload.token == sp->m_currentToken) { + sp->mediaError(static_cast(payload.error), payload.description); + } + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "MediaErrorMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::audio::AudioOutput +// + +bool AASBAudioOutput::prepare(std::shared_ptr stream, bool repeating) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + auto m_streamManager_lock = m_streamManager.lock(); + ThrowIfNull(m_streamManager_lock, "invalidstreamManagerReference"); + + // generate a unique stream id + auto streamId = aace::engine::utils::uuid::generateUUID(); + + // generate a unique token id + m_currentToken = aace::engine::utils::uuid::generateUUID(); + + // create the stream handler + m_handler = std::make_shared(stream); + ThrowIfNot(m_streamManager_lock->registerStreamHandler(streamId, m_handler), "registerStreamHandlerFailed"); + + aasb::message::audio::audioOutput::PrepareStreamMessage message; + message.payload.channel = m_name; + message.payload.audioType = static_cast(m_type); + message.payload.repeating = repeating; + message.payload.streamId = streamId; + message.payload.token = m_currentToken; + message.payload.encoding = static_cast(stream->getEncoding()); + message.payload.properties = {}; + + // add the properties to the map + for (auto& next : stream->getProperties()) { + message.payload.properties[next.getKey()] = next.getValue(); + } + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAudioOutput::prepare(const std::string& url, bool repeating) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + // generate a unique token id + m_currentToken = aace::engine::utils::uuid::generateUUID(); + + aasb::message::audio::audioOutput::PrepareURLMessage message; + message.payload.channel = m_name; + message.payload.audioType = static_cast(m_type); + message.payload.token = m_currentToken; + message.payload.url = url; + message.payload.repeating = repeating; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAudioOutput::play() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::PlayMessage message; + message.payload.channel = m_name; + message.payload.token = m_currentToken; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAudioOutput::stop() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::StopMessage message; + message.payload.channel = m_name; + message.payload.token = m_currentToken; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAudioOutput::pause() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::PauseMessage message; + message.payload.channel = m_name; + message.payload.token = m_currentToken; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAudioOutput::resume() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::ResumeMessage message; + message.payload.channel = m_name; + message.payload.token = m_currentToken; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +int64_t AASBAudioOutput::getPosition() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::GetPositionMessage message; + message.payload.channel = m_name; + message.payload.token = m_currentToken; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForMessageResponseFailed"); + + aasb::message::audio::audioOutput::GetPositionMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + return payload.position; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return TIME_UNKNOWN; + } +} + +bool AASBAudioOutput::setPosition(int64_t position) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::SetPositionMessage message; + message.payload.channel = m_name; + message.payload.token = m_currentToken; + message.payload.position = position; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +int64_t AASBAudioOutput::getDuration() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::GetDurationMessage message; + message.payload.channel = m_name; + message.payload.token = m_currentToken; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForMessageResponseFailed"); + + aasb::message::audio::audioOutput::GetDurationMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + return payload.duration; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return TIME_UNKNOWN; + } +} + +int64_t AASBAudioOutput::getNumBytesBuffered() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::GetNumBytesBufferedMessage message; + message.payload.channel = m_name; + message.payload.token = m_currentToken; + + auto result = m_messageBroker_lock->publish(message.toString()).timeout(std::chrono::milliseconds(500)).get(); + + ThrowIfNot(result.valid(), "waitForMessageResponseFailed"); + + aasb::message::audio::audioOutput::GetNumBytesBufferedMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + return payload.bufferedBytes; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return TIME_UNKNOWN; + } +} + +bool AASBAudioOutput::volumeChanged(float volume) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::VolumeChangedMessage message; + message.payload.channel = m_name; + message.payload.volume = volume; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBAudioOutput::mutedStateChanged(MutedState state) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::audio::audioOutput::MutedStateChangedMessage message; + message.payload.channel = m_name; + message.payload.state = static_cast(state); + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// AudioOutputStreamHandler +// + +AASBAudioOutput::AudioOutputStreamHandler::AudioOutputStreamHandler(std::shared_ptr stream) : + m_stream(stream) { +} + +// aace::aasb::AASBStream +ssize_t AASBAudioOutput::AudioOutputStreamHandler::read(char* data, const size_t size) { + return m_stream->read(data, size); +} + +ssize_t AASBAudioOutput::AudioOutputStreamHandler::write(const char* data, const size_t size) { + AACE_ERROR(LX(TAG).d("reason", "invalidOperation")); + return -1; +} + +bool AASBAudioOutput::AudioOutputStreamHandler::isClosed() { + return m_stream->isClosed(); +} + +aace::aasb::AASBStream::Mode AASBAudioOutput::AudioOutputStreamHandler::getMode() { + return aace::aasb::AASBStream::Mode::READ; +} + +} // namespace audio +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioOutputProvider.cpp b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioOutputProvider.cpp new file mode 100644 index 000000000..6755c6645 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Audio/AASBAudioOutputProvider.cpp @@ -0,0 +1,83 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +namespace aasb { +namespace engine { +namespace audio { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.audio.AASBAudioOutputProvider"); + +std::shared_ptr AASBAudioOutputProvider::create( + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + ThrowIfNull(messageBroker, "invalidMessageBroker"); + ThrowIfNull(streamManager, "invalidstreamManager"); + + auto audioOutputProvider = std::shared_ptr(new AASBAudioOutputProvider()); + ThrowIfNot( + audioOutputProvider->initialize(messageBroker, streamManager), "initializeAudioOutputProviderFailed"); + + return audioOutputProvider; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBAudioOutputProvider::initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + m_messageBroker = messageBroker; + m_streamManager = streamManager; + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::audio::AudioOutputProvider +// + +std::shared_ptr AASBAudioOutputProvider::openChannel( + const std::string& name, + AudioOutputType type) { + try { + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + auto m_streamManager_lock = m_streamManager.lock(); + ThrowIfNull(m_streamManager_lock, "invalidstreamManagerReference"); + + auto audioOutput = AASBAudioOutput::create(name, type, m_messageBroker_lock, m_streamManager_lock); + ThrowIfNull(audioOutput, "createAudioOutputFailed"); + + return audioOutput; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +} // namespace audio +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/Location/AASBLocationEngineService.cpp b/extensions/aasb/modules/aasb-core/engine/src/Location/AASBLocationEngineService.cpp new file mode 100644 index 000000000..44d4c16ee --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Location/AASBLocationEngineService.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace location { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.location.AASBLocationEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBLocationEngineService); + +AASBLocationEngineService::AASBLocationEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"LocationProvider"}) { +} + +bool AASBLocationEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // LocationProvider + if (isInterfaceEnabled("LocationProvider")) { + auto locationProvider = AASBLocationProvider::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(locationProvider, "invalidLocationProviderHandler"); + getContext()->registerPlatformInterface(locationProvider); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace location +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/Location/AASBLocationProvider.cpp b/extensions/aasb/modules/aasb-core/engine/src/Location/AASBLocationProvider.cpp new file mode 100644 index 000000000..388fc4945 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Location/AASBLocationProvider.cpp @@ -0,0 +1,117 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace location { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.location.AASBLocationProvider"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBLocationProvider::create( + std::shared_ptr messageBroker) { + try { + // create the location provider platform handler + auto locationProvider = std::shared_ptr(new AASBLocationProvider()); + + // initialize the platform handler + ThrowIfNot(locationProvider->initialize(messageBroker), "initializeFailed"); + + return locationProvider; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBLocationProvider::initialize(std::shared_ptr messageBroker) { + try { + // save the message broker reference + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + m_messageBroker = messageBroker; + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::location::LocationProvider +// + +aace::location::Location AASBLocationProvider::getLocation() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::location::locationProvider::GetLocationMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForGetLocationTimeout"); + + aasb::message::location::locationProvider::GetLocationMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + // parse the location from payload + m_location = aace::location::Location(payload.location.latitude, payload.location.longitude); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } + + return m_location; +} + +std::string AASBLocationProvider::getCountry() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::location::locationProvider::GetCountryMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForGetCountryTimeout"); + + aasb::message::location::locationProvider::GetCountryMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + return payload.country; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return ""; + } +} + +} // namespace location +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/Network/AASBNetworkEngineService.cpp b/extensions/aasb/modules/aasb-core/engine/src/Network/AASBNetworkEngineService.cpp new file mode 100644 index 000000000..90ce4991e --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Network/AASBNetworkEngineService.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace network { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.network.AASBNetworkEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBNetworkEngineService); + +AASBNetworkEngineService::AASBNetworkEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"NetworkInfoProvider"}) { +} + +bool AASBNetworkEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // Network + if (isInterfaceEnabled("NetworkInfoProvider")) { + auto networkInfoProvider = AASBNetworkInfoProvider::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(networkInfoProvider, "invalidNetworkInfoProviderHandler"); + getContext()->registerPlatformInterface(networkInfoProvider); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace network +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/Network/AASBNetworkInfoProvider.cpp b/extensions/aasb/modules/aasb-core/engine/src/Network/AASBNetworkInfoProvider.cpp new file mode 100644 index 000000000..a86d2ea02 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/Network/AASBNetworkInfoProvider.cpp @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace network { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.network.AASBNetworkInfoProvider"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBNetworkInfoProvider::create( + std::shared_ptr messageBroker) { + try { + // create the network info provder platform handler + auto networkInfoProvider = std::shared_ptr(new AASBNetworkInfoProvider()); + + // initialize the platform handler + ThrowIfNot(networkInfoProvider->initialize(messageBroker), "initializeFailed"); + + return networkInfoProvider; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBNetworkInfoProvider::initialize(std::shared_ptr messageBroker) { + try { + // save the message broker reference + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::network::networkInfoProvider::NetworkStatusChangedMessage::topic(), + aasb::message::network::networkInfoProvider::NetworkStatusChangedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + aasb::message::network::networkInfoProvider::NetworkStatusChangedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + // invoke the engine network status changed method + sp->networkStatusChanged(static_cast(payload.status), payload.wifiSignalStrength); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "NetworkStatusChangedMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::network::NetworkInfoProvider +// + +AASBNetworkInfoProvider::NetworkStatus AASBNetworkInfoProvider::getNetworkStatus() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::network::networkInfoProvider::GetNetworkStatusMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForGetNetworkStatusTimeout"); + + aasb::message::network::networkInfoProvider::GetNetworkStatusMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + return static_cast(payload.status); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return AASBNetworkInfoProvider::NetworkStatus::UNKNOWN; + } +} + +int AASBNetworkInfoProvider::getWifiSignalStrength() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::network::networkInfoProvider::GetWifiSignalStrengthMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).get(); + + ThrowIfNot(result.valid(), "waitForGetWifiSignalStrengthTimeout"); + + aasb::message::network::networkInfoProvider::GetWifiSignalStrengthMessageReply::Payload payload = + nlohmann::json::parse(result.payload()); + + return payload.wifiSignalStrength; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return -1; + } +} + +} // namespace network +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/PropertyManager/AASBPropertyManager.cpp b/extensions/aasb/modules/aasb-core/engine/src/PropertyManager/AASBPropertyManager.cpp new file mode 100644 index 000000000..32e5dae6a --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/PropertyManager/AASBPropertyManager.cpp @@ -0,0 +1,154 @@ +/* + * 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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace propertyManager { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.propertyManager.AASBPropertyManager"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBPropertyManager::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto handler = std::shared_ptr(new AASBPropertyManager()); + + // initialize the handler + ThrowIfNot(handler->initialize(messageBroker), "initializeAASBPropertyManagerFailed"); + + return handler; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBPropertyManager::initialize(std::shared_ptr messageBroker) { + try { + m_messageBroker = messageBroker; + + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::propertyManager::propertyManager::SetPropertyMessage::topic(), + aasb::message::propertyManager::propertyManager::SetPropertyMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::propertyManager::propertyManager::SetPropertyMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->setProperty(payload.name, payload.value); + + AACE_INFO(LX(TAG, "SetPropertyMessage").m("MessageRouted")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SetPropertyMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::propertyManager::propertyManager::GetPropertyMessage::topic(), + aasb::message::propertyManager::propertyManager::GetPropertyMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::propertyManager::propertyManager::GetPropertyMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + AACE_INFO(LX(TAG, "GetPropertyMessage").m("MessageRouted")); + + auto m_messageBroker_lock = sp->m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::propertyManager::propertyManager::GetPropertyMessageReply getPropertyMessageReply; + getPropertyMessageReply.header.messageDescription.replyToId = message.messageId(); + getPropertyMessageReply.payload.value = sp->getProperty(payload.name); + ; + getPropertyMessageReply.payload.name = payload.name; + m_messageBroker_lock->publish(getPropertyMessageReply.toString()).send(); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "GetPropertyMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::propertyManager::PropertyManager +// + +void AASBPropertyManager::propertyChanged(const std::string& name, const std::string& newValue) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::propertyManager::propertyManager::PropertyChangedMessage message; + message.payload.name = name; + message.payload.newValue = newValue; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBPropertyManager::propertyStateChanged( + const std::string& name, + const std::string& value, + const PropertyState state) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::propertyManager::propertyManager::PropertyStateChangedMessage message; + message.payload.name = name; + message.payload.value = value; + message.payload.state = static_cast(state); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace propertyManager +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-core/engine/src/PropertyManager/AASBPropertyManagerEngineService.cpp b/extensions/aasb/modules/aasb-core/engine/src/PropertyManager/AASBPropertyManagerEngineService.cpp new file mode 100644 index 000000000..1e3b21741 --- /dev/null +++ b/extensions/aasb/modules/aasb-core/engine/src/PropertyManager/AASBPropertyManagerEngineService.cpp @@ -0,0 +1,61 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace propertyManager { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.propertyManager.AASBPropertyManagerEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBPropertyManagerEngineService); + +AASBPropertyManagerEngineService::AASBPropertyManagerEngineService( + const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"PropertyManager"}) { +} + +bool AASBPropertyManagerEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // PropertyManager + if (isInterfaceEnabled("PropertyManager")) { + auto propertyManager = AASBPropertyManager::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(propertyManager, "invalidPropertyManagerHandler"); + getContext()->registerPlatformInterface(propertyManager); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace propertyManager +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-messaging/CMakeLists.txt b/extensions/aasb/modules/aasb-messaging/CMakeLists.txt new file mode 100644 index 000000000..3c29f63ca --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/CMakeLists.txt @@ -0,0 +1,46 @@ +# AASB Messaging + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASBMessaging LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AASBMessaging") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AASBMessaging.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +# AASBMessaging module depends on AACEAASB and AACEMessaging module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + include(${AAC_HOME}/share/cmake/AACEMessaging.cmake) + include(${AAC_HOME}/share/cmake/AACECore.cmake) + include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +endif() + +add_subdirectory(engine) + +install( + EXPORT AASBMessaging + DESTINATION share/cmake +) diff --git a/extensions/aasb/modules/aasb-messaging/aac-aasb-messaging.bb b/extensions/aasb/modules/aasb-messaging/aac-aasb-messaging.bb new file mode 100644 index 000000000..ee207bb6d --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/aac-aasb-messaging.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB Messaging" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/Messaging/AASBMessagingEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-messaging aac-module-aasb nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb-messaging/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-messaging/engine/CMakeLists.txt new file mode 100644 index 000000000..880e8325b --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/CMakeLists.txt @@ -0,0 +1,62 @@ +# AASB Messaging Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Messaging/AASBMessaging.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Messaging/AASBMessagingEngineService.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_MESSAGING_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/ConnectionState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/ConversationsReportMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/ErrorCode.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/PermissionState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/SendMessageFailedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/SendMessageMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/SendMessageSucceededMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusFailedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusSucceededMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/UpdateMessagingEndpointStateMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Messaging/Messaging/UploadConversationsMessage.h +) + +source_group("Messaging Message Headers" FILES ${AASB_MESSAGING_MESSAGES}) + +add_library(AASBMessagingEngine SHARED + ${HEADERS} + ${AASB_MESSAGING_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBMessaging.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBMessagingEngineService.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBMessagingEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBMessagingEngine + PUBLIC + AACEAASBEngine + AACEMessagingPlatform +) + +install( + TARGETS AASBMessagingEngine + DESTINATION lib + EXPORT AASBMessaging +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Engine/Messaging/AASBMessaging.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Engine/Messaging/AASBMessaging.h new file mode 100644 index 000000000..81e902804 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Engine/Messaging/AASBMessaging.h @@ -0,0 +1,59 @@ +/* + * 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 AASB_ENGINE_MESSAGING_AASB_MESSAGING_H +#define AASB_ENGINE_MESSAGING_AASB_MESSAGING_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace engine { +namespace messaging { + +/** + * Provides a AASB Messaging handler. + */ +class AASBMessaging + : public aace::messaging::Messaging + , public std::enable_shared_from_this { +private: + AASBMessaging() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::messaging::Messaging + void sendMessage(const std::string& token, const std::string& message, const std::string& recipients) override; + void uploadConversations(const std::string& token) override; + void updateMessagesStatus(const std::string& token, const std::string& conversationId, const std::string& status) + override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace messaging +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_MESSAGING_AASB_MESSAGING_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Engine/Messaging/AASBMessagingEngineService.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Engine/Messaging/AASBMessagingEngineService.h new file mode 100644 index 000000000..5ca4a852f --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Engine/Messaging/AASBMessagingEngineService.h @@ -0,0 +1,44 @@ +/* + * 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 AASB_ENGINE_MESSAGING_AASB_MESSAGING_ENGINE_SERVICE_H +#define AASB_ENGINE_MESSAGING_AASB_MESSAGING_ENGINE_SERVICE_H + +#include +#include + +namespace aasb { +namespace engine { +namespace messaging { + +class AASBMessagingEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.messaging", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBMessagingEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBMessagingEngineService() = default; +}; + +} // namespace messaging +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_MESSAGING_AASB_MESSAGING_ENGINE_SERVICE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConnectionState.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConnectionState.h new file mode 100644 index 000000000..a68d3734d --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConnectionState.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_CONNECTIONSTATE_H +#define MESSAGING_CONNECTIONSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace messaging { + +//Enum Definition +enum class ConnectionState { + DISCONNECTED, + ON, +}; + +inline std::string toString(ConnectionState enumValue) { + switch (enumValue) { + case (ConnectionState::DISCONNECTED): + return "DISCONNECTED"; + case (ConnectionState::ON): + return "ON"; + } + throw std::runtime_error("invalidConnectionStateType"); +} + +inline ConnectionState toConnectionState(const std::string& stringValue) { + static std::unordered_map map = { + {"DISCONNECTED", ConnectionState::DISCONNECTED}, + {"ON", ConnectionState::ON}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidConnectionStateType"); +} + +inline void to_json(nlohmann::json& j, const ConnectionState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ConnectionState& c) { + c = toConnectionState(j); +} + +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_CONNECTIONSTATE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConversationsReportMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConversationsReportMessage.h new file mode 100644 index 000000000..0f5955518 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ConversationsReportMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_CONVERSATIONSREPORTMESSAGE_H +#define MESSAGING_CONVERSATIONSREPORTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct ConversationsReportMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "ConversationsReport"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string token; + std::string conversations; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "ConversationsReport"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ConversationsReportMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + {"conversations", c.conversations}, + }; +} +inline void from_json(const nlohmann::json& j, ConversationsReportMessage::Payload& c) { + j.at("token").get_to(c.token); + j.at("conversations").get_to(c.conversations); +} + +inline void to_json(nlohmann::json& j, const ConversationsReportMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ConversationsReportMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ConversationsReportMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ConversationsReportMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ConversationsReportMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ConversationsReportMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ConversationsReportMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_CONVERSATIONSREPORTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ErrorCode.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ErrorCode.h new file mode 100644 index 000000000..262b58e84 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/ErrorCode.h @@ -0,0 +1,85 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_ERRORCODE_H +#define MESSAGING_ERRORCODE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace messaging { + +//Enum Definition +enum class ErrorCode { + GENERIC_FAILURE, + NO_CONNECTIVITY, + NO_PERMISSION, +}; + +inline std::string toString(ErrorCode enumValue) { + switch (enumValue) { + case (ErrorCode::GENERIC_FAILURE): + return "GENERIC_FAILURE"; + case (ErrorCode::NO_CONNECTIVITY): + return "NO_CONNECTIVITY"; + case (ErrorCode::NO_PERMISSION): + return "NO_PERMISSION"; + } + throw std::runtime_error("invalidErrorCodeType"); +} + +inline ErrorCode toErrorCode(const std::string& stringValue) { + static std::unordered_map map = { + {"GENERIC_FAILURE", ErrorCode::GENERIC_FAILURE}, + {"NO_CONNECTIVITY", ErrorCode::NO_CONNECTIVITY}, + {"NO_PERMISSION", ErrorCode::NO_PERMISSION}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidErrorCodeType"); +} + +inline void to_json(nlohmann::json& j, const ErrorCode& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ErrorCode& c) { + c = toErrorCode(j); +} + +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_ERRORCODE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/PermissionState.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/PermissionState.h new file mode 100644 index 000000000..06d7f39e0 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/PermissionState.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_PERMISSIONSTATE_H +#define MESSAGING_PERMISSIONSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace messaging { + +//Enum Definition +enum class PermissionState { + OFF, + ON, +}; + +inline std::string toString(PermissionState enumValue) { + switch (enumValue) { + case (PermissionState::OFF): + return "OFF"; + case (PermissionState::ON): + return "ON"; + } + throw std::runtime_error("invalidPermissionStateType"); +} + +inline PermissionState toPermissionState(const std::string& stringValue) { + static std::unordered_map map = { + {"OFF", PermissionState::OFF}, + {"ON", PermissionState::ON}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidPermissionStateType"); +} + +inline void to_json(nlohmann::json& j, const PermissionState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, PermissionState& c) { + c = toPermissionState(j); +} + +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_PERMISSIONSTATE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageFailedMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageFailedMessage.h new file mode 100644 index 000000000..bb87d8c49 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageFailedMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_SENDMESSAGEFAILEDMESSAGE_H +#define MESSAGING_SENDMESSAGEFAILEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Messaging/Messaging/ErrorCode.h" + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct SendMessageFailedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "SendMessageFailed"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ErrorCode = ::aasb::message::messaging::ErrorCode; + + std::string token; + ErrorCode code; + std::string message; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "SendMessageFailed"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SendMessageFailedMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + {"code", c.code}, + {"message", c.message}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageFailedMessage::Payload& c) { + j.at("token").get_to(c.token); + j.at("code").get_to(c.code); + j.at("message").get_to(c.message); +} + +inline void to_json(nlohmann::json& j, const SendMessageFailedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageFailedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SendMessageFailedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageFailedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SendMessageFailedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageFailedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SendMessageFailedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_SENDMESSAGEFAILEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageMessage.h new file mode 100644 index 000000000..a8523622c --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_SENDMESSAGEMESSAGE_H +#define MESSAGING_SENDMESSAGEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct SendMessageMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "SendMessage"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string token; + std::string message; + std::string recipients; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "SendMessage"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SendMessageMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + {"message", c.message}, + {"recipients", c.recipients}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageMessage::Payload& c) { + j.at("token").get_to(c.token); + j.at("message").get_to(c.message); + j.at("recipients").get_to(c.recipients); +} + +inline void to_json(nlohmann::json& j, const SendMessageMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SendMessageMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SendMessageMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SendMessageMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_SENDMESSAGEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageSucceededMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageSucceededMessage.h new file mode 100644 index 000000000..b842c8594 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/SendMessageSucceededMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_SENDMESSAGESUCCEEDEDMESSAGE_H +#define MESSAGING_SENDMESSAGESUCCEEDEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct SendMessageSucceededMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "SendMessageSucceeded"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string token; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "SendMessageSucceeded"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SendMessageSucceededMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageSucceededMessage::Payload& c) { + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const SendMessageSucceededMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageSucceededMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SendMessageSucceededMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageSucceededMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SendMessageSucceededMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendMessageSucceededMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SendMessageSucceededMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_SENDMESSAGESUCCEEDEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusFailedMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusFailedMessage.h new file mode 100644 index 000000000..02aa3ac43 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusFailedMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_UPDATEMESSAGESSTATUSFAILEDMESSAGE_H +#define MESSAGING_UPDATEMESSAGESSTATUSFAILEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Messaging/Messaging/ErrorCode.h" + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct UpdateMessagesStatusFailedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UpdateMessagesStatusFailed"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ErrorCode = ::aasb::message::messaging::ErrorCode; + + std::string token; + ErrorCode code; + std::string message; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UpdateMessagesStatusFailed"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusFailedMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + {"code", c.code}, + {"message", c.message}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusFailedMessage::Payload& c) { + j.at("token").get_to(c.token); + j.at("code").get_to(c.code); + j.at("message").get_to(c.message); +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusFailedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusFailedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusFailedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusFailedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusFailedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusFailedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string UpdateMessagesStatusFailedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_UPDATEMESSAGESSTATUSFAILEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusMessage.h new file mode 100644 index 000000000..9a5b0f88a --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusMessage.h @@ -0,0 +1,147 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_UPDATEMESSAGESSTATUSMESSAGE_H +#define MESSAGING_UPDATEMESSAGESSTATUSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct UpdateMessagesStatusMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UpdateMessagesStatus"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string token; + std::string conversationId; + std::string status; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UpdateMessagesStatus"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + {"conversationId", c.conversationId}, + {"status", c.status}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusMessage::Payload& c) { + j.at("token").get_to(c.token); + j.at("conversationId").get_to(c.conversationId); + j.at("status").get_to(c.status); +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string UpdateMessagesStatusMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_UPDATEMESSAGESSTATUSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusSucceededMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusSucceededMessage.h new file mode 100644 index 000000000..67ff71772 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagesStatusSucceededMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_UPDATEMESSAGESSTATUSSUCCEEDEDMESSAGE_H +#define MESSAGING_UPDATEMESSAGESSTATUSSUCCEEDEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct UpdateMessagesStatusSucceededMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UpdateMessagesStatusSucceeded"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string token; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UpdateMessagesStatusSucceeded"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusSucceededMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusSucceededMessage::Payload& c) { + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusSucceededMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusSucceededMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusSucceededMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusSucceededMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const UpdateMessagesStatusSucceededMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagesStatusSucceededMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string UpdateMessagesStatusSucceededMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_UPDATEMESSAGESSTATUSSUCCEEDEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagingEndpointStateMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagingEndpointStateMessage.h new file mode 100644 index 000000000..9244be88a --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UpdateMessagingEndpointStateMessage.h @@ -0,0 +1,152 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_UPDATEMESSAGINGENDPOINTSTATEMESSAGE_H +#define MESSAGING_UPDATEMESSAGINGENDPOINTSTATEMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Messaging/Messaging/ConnectionState.h" +#include "AASB/Message/Messaging/Messaging/PermissionState.h" + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct UpdateMessagingEndpointStateMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UpdateMessagingEndpointState"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ConnectionState = ::aasb::message::messaging::ConnectionState; + using PermissionState = ::aasb::message::messaging::PermissionState; + + ConnectionState connectionState; + PermissionState sendPermission; + PermissionState readPermission; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UpdateMessagingEndpointState"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const UpdateMessagingEndpointStateMessage::Payload& c) { + j = nlohmann::json{ + {"connectionState", c.connectionState}, + {"sendPermission", c.sendPermission}, + {"readPermission", c.readPermission}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagingEndpointStateMessage::Payload& c) { + j.at("connectionState").get_to(c.connectionState); + j.at("sendPermission").get_to(c.sendPermission); + j.at("readPermission").get_to(c.readPermission); +} + +inline void to_json(nlohmann::json& j, const UpdateMessagingEndpointStateMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagingEndpointStateMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const UpdateMessagingEndpointStateMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagingEndpointStateMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const UpdateMessagingEndpointStateMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, UpdateMessagingEndpointStateMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string UpdateMessagingEndpointStateMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_UPDATEMESSAGINGENDPOINTSTATEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UploadConversationsMessage.h b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UploadConversationsMessage.h new file mode 100644 index 000000000..67625896a --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/include/AASB/Message/Messaging/Messaging/UploadConversationsMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef MESSAGING_UPLOADCONVERSATIONSMESSAGE_H +#define MESSAGING_UPLOADCONVERSATIONSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace messaging { +namespace messaging { + +//Class Definition +struct UploadConversationsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UploadConversations"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string token; + }; + static const std::string& topic() { + static std::string topic = "Messaging"; + return topic; + } + static const std::string& action() { + static std::string action = "UploadConversations"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const UploadConversationsMessage::Payload& c) { + j = nlohmann::json{ + {"token", c.token}, + }; +} +inline void from_json(const nlohmann::json& j, UploadConversationsMessage::Payload& c) { + j.at("token").get_to(c.token); +} + +inline void to_json(nlohmann::json& j, const UploadConversationsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, UploadConversationsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const UploadConversationsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, UploadConversationsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const UploadConversationsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, UploadConversationsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string UploadConversationsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace messaging +} // namespace messaging +} // namespace message +} // namespace aasb + +#endif // MESSAGING_UPLOADCONVERSATIONSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-messaging/engine/src/AASBMessaging.cpp b/extensions/aasb/modules/aasb-messaging/engine/src/AASBMessaging.cpp new file mode 100644 index 000000000..645ab47be --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/src/AASBMessaging.cpp @@ -0,0 +1,233 @@ +/* + * 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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace aasb { +namespace engine { +namespace messaging { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.messaging.AASBMessaging"); + +// Aliases +using Message = aace::engine::aasb::Message; +using ConnectionState = aace::messaging::Messaging::ConnectionState; +using PermissionState = aace::messaging::Messaging::PermissionState; + +bool AASBMessaging::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + + // Create a weak pointer reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::messaging::messaging::ConversationsReportMessage::topic(), + aasb::message::messaging::messaging::ConversationsReportMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::messaging::messaging::ConversationsReportMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->conversationsReport(payload.token, payload.conversations); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::messaging::messaging::SendMessageFailedMessage::topic(), + aasb::message::messaging::messaging::SendMessageFailedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::messaging::messaging::SendMessageFailedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->sendMessageFailed(payload.token, static_cast(payload.code), payload.message); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::messaging::messaging::SendMessageSucceededMessage::topic(), + aasb::message::messaging::messaging::SendMessageSucceededMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::messaging::messaging::SendMessageSucceededMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->sendMessageSucceeded(payload.token); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::messaging::messaging::UpdateMessagesStatusFailedMessage::topic(), + aasb::message::messaging::messaging::UpdateMessagesStatusFailedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::messaging::messaging::UpdateMessagesStatusFailedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->updateMessagesStatusFailed( + payload.token, static_cast(payload.code), payload.message); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::messaging::messaging::UpdateMessagesStatusSucceededMessage::topic(), + aasb::message::messaging::messaging::UpdateMessagesStatusSucceededMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::messaging::messaging::UpdateMessagesStatusSucceededMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->updateMessagesStatusSucceeded(payload.token); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::messaging::messaging::UpdateMessagingEndpointStateMessage::topic(), + aasb::message::messaging::messaging::UpdateMessagingEndpointStateMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::messaging::messaging::UpdateMessagingEndpointStateMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->updateMessagingEndpointState( + static_cast(payload.connectionState), + static_cast(payload.sendPermission), + static_cast(payload.readPermission)); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "initialize").d("reason", ex.what())); + return false; + } +} + +std::shared_ptr AASBMessaging::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto handler = std::shared_ptr(new AASBMessaging()); + + // initialize the handler + ThrowIfNot(handler->initialize(messageBroker), "initializeAASBMessagingFailed"); + + return handler; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +void AASBMessaging::sendMessage(const std::string& token, const std::string& text, const std::string& recipients) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::messaging::messaging::SendMessageMessage message; + message.payload.token = token; + message.payload.message = text; + message.payload.recipients = recipients; + + m_messageBroker_lock->publish(message.toString()).send(); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBMessaging::updateMessagesStatus( + const std::string& token, + const std::string& conversationId, + const std::string& status) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::messaging::messaging::UpdateMessagesStatusMessage message; + message.payload.token = token; + message.payload.conversationId = conversationId; + message.payload.status = status; + + m_messageBroker_lock->publish(message.toString()).send(); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBMessaging::uploadConversations(const std::string& token) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::messaging::messaging::UploadConversationsMessage message; + message.payload.token = token; + + m_messageBroker_lock->publish(message.toString()).send(); + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace messaging +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-messaging/engine/src/AASBMessagingEngineService.cpp b/extensions/aasb/modules/aasb-messaging/engine/src/AASBMessagingEngineService.cpp new file mode 100644 index 000000000..e8b98c5b3 --- /dev/null +++ b/extensions/aasb/modules/aasb-messaging/engine/src/AASBMessagingEngineService.cpp @@ -0,0 +1,60 @@ +/* + * 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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace messaging { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.messaging.AASBMessagingEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBMessagingEngineService); + +AASBMessagingEngineService::AASBMessagingEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"Messaging"}) { +} + +bool AASBMessagingEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // Messaging + if (isInterfaceEnabled("Messaging")) { + auto messaging = AASBMessaging::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(messaging, "invalidMessagingHandler"); + getContext()->registerPlatformInterface(messaging); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace messaging +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-navigation/CMakeLists.txt b/extensions/aasb/modules/aasb-navigation/CMakeLists.txt new file mode 100644 index 000000000..6cae9e300 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/CMakeLists.txt @@ -0,0 +1,47 @@ +# AASB Navigation + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASBNavigation LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AASBNavigation") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AASBNavigation.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +# AASBNavigation module depends on AACEAASB and AACENavigation module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + include(${AAC_HOME}/share/cmake/AACENavigation.cmake) + include(${AAC_HOME}/share/cmake/AACECore.cmake) + include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +endif() + +#add_subdirectory(platform) +add_subdirectory(engine) + +install( + EXPORT AASBNavigation + DESTINATION share/cmake +) diff --git a/extensions/aasb/modules/aasb-navigation/aac-aasb-navigation.bb b/extensions/aasb/modules/aasb-navigation/aac-aasb-navigation.bb new file mode 100644 index 000000000..94daf7906 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/aac-aasb-navigation.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB Navigation" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/Navigation/AASBNavigationEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-navigation aac-module-aasb nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb-navigation/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-navigation/engine/CMakeLists.txt new file mode 100644 index 000000000..c8c0e1c5e --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/CMakeLists.txt @@ -0,0 +1,69 @@ +# AASB Navigation Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Navigation/AASBNavigationEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/Navigation/AASBNavigation.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_NAVIGATION_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/AlternateRouteType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/AnnounceManeuverMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/AnnounceRoadRegulationMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/CancelNavigationMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/ControlDisplay.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/ControlDisplayMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/ErrorCode.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/ErrorType.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/EventName.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/NavigateToPreviousWaypointMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/NavigationErrorMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/NavigationEventMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/RoadRegulation.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesSucceededMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/ShowPreviousWaypointsMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/Navigation/Navigation/StartNavigationMessage.h +) + +source_group("Navigation Message Headers" FILES ${AASB_NAVIGATION_MESSAGES}) + +add_library(AASBNavigationEngine SHARED + ${HEADERS} + ${AASB_NAVIGATION_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBNavigationEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBNavigation.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBNavigationEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBNavigationEngine + PUBLIC + AACEAASBEngine + AACENavigationPlatform +) + +install( + TARGETS AASBNavigationEngine + DESTINATION lib + EXPORT AASBNavigation +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Engine/Navigation/AASBNavigation.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Engine/Navigation/AASBNavigation.h new file mode 100644 index 000000000..486f561bc --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Engine/Navigation/AASBNavigation.h @@ -0,0 +1,62 @@ +/* + * Copyright 2018-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 AASB_ENGINE_NAVIGATION_AASB_NAVIGATION_H +#define AASB_ENGINE_NAVIGATION_AASB_NAVIGATION_H + +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace navigation { + +class AASBNavigation + : public aace::navigation::Navigation + , public std::enable_shared_from_this { +private: + AASBNavigation() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::navigation::Navigation + void showPreviousWaypoints() override; + void navigateToPreviousWaypoint() override; + void showAlternativeRoutes(AlternateRouteType alternateRouteType) override; + void controlDisplay(ControlDisplay controlDisplay) override; + bool cancelNavigation() override; + std::string getNavigationState() override; + void startNavigation(const std::string& payload) override; + void announceManeuver(const std::string& payload) override; + void announceRoadRegulation(RoadRegulation roadRegulation) override; + +private: + std::weak_ptr m_messageBroker; + + std::string m_cachedNavState = R"({"shapes":[],"state":"NOT_NAVIGATING","waypoints":[]})"; +}; + +} // namespace navigation +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_NAVIGATION_AASB_NAVIGATION_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Engine/Navigation/AASBNavigationEngineService.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Engine/Navigation/AASBNavigationEngineService.h new file mode 100644 index 000000000..0d15d1eec --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Engine/Navigation/AASBNavigationEngineService.h @@ -0,0 +1,47 @@ +/* + * Copyright 2017-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 AASB_ENGINE_NAVIGATION_AASB_NAVIGATION_ENGINE_SERVICE_H +#define AASB_ENGINE_NAVIGATION_AASB_NAVIGATION_ENGINE_SERVICE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace navigation { + +class AASBNavigationEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.navigation", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBNavigationEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBNavigationEngineService() = default; +}; + +} // namespace navigation +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AlternateRouteType.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AlternateRouteType.h new file mode 100644 index 000000000..6585eeb0a --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AlternateRouteType.h @@ -0,0 +1,87 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_ALTERNATEROUTETYPE_H +#define NAVIGATION_ALTERNATEROUTETYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Enum Definition +enum class AlternateRouteType { + DEFAULT, + SHORTER_TIME, + SHORTER_DISTANCE, +}; + +inline std::string toString(AlternateRouteType enumValue) { + switch (enumValue) { + case (AlternateRouteType::DEFAULT): + return "DEFAULT"; + case (AlternateRouteType::SHORTER_TIME): + return "SHORTER_TIME"; + case (AlternateRouteType::SHORTER_DISTANCE): + return "SHORTER_DISTANCE"; + } + throw std::runtime_error("invalidAlternateRouteTypeType"); +} + +inline AlternateRouteType toAlternateRouteType(const std::string& stringValue) { + static std::unordered_map map = { + {"DEFAULT", AlternateRouteType::DEFAULT}, + {"SHORTER_TIME", AlternateRouteType::SHORTER_TIME}, + {"SHORTER_DISTANCE", AlternateRouteType::SHORTER_DISTANCE}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidAlternateRouteTypeType"); +} + +inline void to_json(nlohmann::json& j, const AlternateRouteType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, AlternateRouteType& c) { + c = toAlternateRouteType(j); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_ALTERNATEROUTETYPE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceManeuverMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceManeuverMessage.h new file mode 100644 index 000000000..71c43e7bb --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceManeuverMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_ANNOUNCEMANEUVERMESSAGE_H +#define NAVIGATION_ANNOUNCEMANEUVERMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct AnnounceManeuverMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "AnnounceManeuver"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + nlohmann::json payload; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "AnnounceManeuver"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AnnounceManeuverMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AnnounceManeuverMessage::Payload& c) { + c.payload = j.at("payload"); +} + +inline void to_json(nlohmann::json& j, const AnnounceManeuverMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AnnounceManeuverMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AnnounceManeuverMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AnnounceManeuverMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AnnounceManeuverMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AnnounceManeuverMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AnnounceManeuverMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_ANNOUNCEMANEUVERMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceRoadRegulationMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceRoadRegulationMessage.h new file mode 100644 index 000000000..163dd393b --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/AnnounceRoadRegulationMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_ANNOUNCEROADREGULATIONMESSAGE_H +#define NAVIGATION_ANNOUNCEROADREGULATIONMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Navigation/Navigation/RoadRegulation.h" + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct AnnounceRoadRegulationMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "AnnounceRoadRegulation"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using RoadRegulation = ::aasb::message::navigation::navigation::RoadRegulation; + + RoadRegulation roadRegulation; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "AnnounceRoadRegulation"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AnnounceRoadRegulationMessage::Payload& c) { + j = nlohmann::json{ + {"roadRegulation", c.roadRegulation}, + }; +} +inline void from_json(const nlohmann::json& j, AnnounceRoadRegulationMessage::Payload& c) { + j.at("roadRegulation").get_to(c.roadRegulation); +} + +inline void to_json(nlohmann::json& j, const AnnounceRoadRegulationMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AnnounceRoadRegulationMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AnnounceRoadRegulationMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AnnounceRoadRegulationMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AnnounceRoadRegulationMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AnnounceRoadRegulationMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AnnounceRoadRegulationMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_ANNOUNCEROADREGULATIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/CancelNavigationMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/CancelNavigationMessage.h new file mode 100644 index 000000000..0c95890ae --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/CancelNavigationMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_CANCELNAVIGATIONMESSAGE_H +#define NAVIGATION_CANCELNAVIGATIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct CancelNavigationMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "CancelNavigation"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "CancelNavigation"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const CancelNavigationMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, CancelNavigationMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const CancelNavigationMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, CancelNavigationMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const CancelNavigationMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, CancelNavigationMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const CancelNavigationMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, CancelNavigationMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string CancelNavigationMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_CANCELNAVIGATIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplay.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplay.h new file mode 100644 index 000000000..022bb7e69 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplay.h @@ -0,0 +1,139 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_CONTROLDISPLAY_H +#define NAVIGATION_CONTROLDISPLAY_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Enum Definition +enum class ControlDisplay { + SHOW_ROUTE_OVERVIEW, + SHOW_DIRECTIONS_LIST, + ZOOM_IN, + ZOOM_OUT, + CENTER_MAP_ON_CURRENT_LOCATION, + ORIENT_NORTH, + SCROLL_NORTH, + SCROLL_UP, + SCROLL_EAST, + SCROLL_RIGHT, + SCROLL_SOUTH, + SCROLL_DOWN, + SCROLL_WEST, + SCROLL_LEFT, + MUTE_ROUTE_GUIDANCE, + UNMUTE_ROUTE_GUIDANCE, +}; + +inline std::string toString(ControlDisplay enumValue) { + switch (enumValue) { + case (ControlDisplay::SHOW_ROUTE_OVERVIEW): + return "SHOW_ROUTE_OVERVIEW"; + case (ControlDisplay::SHOW_DIRECTIONS_LIST): + return "SHOW_DIRECTIONS_LIST"; + case (ControlDisplay::ZOOM_IN): + return "ZOOM_IN"; + case (ControlDisplay::ZOOM_OUT): + return "ZOOM_OUT"; + case (ControlDisplay::CENTER_MAP_ON_CURRENT_LOCATION): + return "CENTER_MAP_ON_CURRENT_LOCATION"; + case (ControlDisplay::ORIENT_NORTH): + return "ORIENT_NORTH"; + case (ControlDisplay::SCROLL_NORTH): + return "SCROLL_NORTH"; + case (ControlDisplay::SCROLL_UP): + return "SCROLL_UP"; + case (ControlDisplay::SCROLL_EAST): + return "SCROLL_EAST"; + case (ControlDisplay::SCROLL_RIGHT): + return "SCROLL_RIGHT"; + case (ControlDisplay::SCROLL_SOUTH): + return "SCROLL_SOUTH"; + case (ControlDisplay::SCROLL_DOWN): + return "SCROLL_DOWN"; + case (ControlDisplay::SCROLL_WEST): + return "SCROLL_WEST"; + case (ControlDisplay::SCROLL_LEFT): + return "SCROLL_LEFT"; + case (ControlDisplay::MUTE_ROUTE_GUIDANCE): + return "MUTE_ROUTE_GUIDANCE"; + case (ControlDisplay::UNMUTE_ROUTE_GUIDANCE): + return "UNMUTE_ROUTE_GUIDANCE"; + } + throw std::runtime_error("invalidControlDisplayType"); +} + +inline ControlDisplay toControlDisplay(const std::string& stringValue) { + static std::unordered_map map = { + {"SHOW_ROUTE_OVERVIEW", ControlDisplay::SHOW_ROUTE_OVERVIEW}, + {"SHOW_DIRECTIONS_LIST", ControlDisplay::SHOW_DIRECTIONS_LIST}, + {"ZOOM_IN", ControlDisplay::ZOOM_IN}, + {"ZOOM_OUT", ControlDisplay::ZOOM_OUT}, + {"CENTER_MAP_ON_CURRENT_LOCATION", ControlDisplay::CENTER_MAP_ON_CURRENT_LOCATION}, + {"ORIENT_NORTH", ControlDisplay::ORIENT_NORTH}, + {"SCROLL_NORTH", ControlDisplay::SCROLL_NORTH}, + {"SCROLL_UP", ControlDisplay::SCROLL_UP}, + {"SCROLL_EAST", ControlDisplay::SCROLL_EAST}, + {"SCROLL_RIGHT", ControlDisplay::SCROLL_RIGHT}, + {"SCROLL_SOUTH", ControlDisplay::SCROLL_SOUTH}, + {"SCROLL_DOWN", ControlDisplay::SCROLL_DOWN}, + {"SCROLL_WEST", ControlDisplay::SCROLL_WEST}, + {"SCROLL_LEFT", ControlDisplay::SCROLL_LEFT}, + {"MUTE_ROUTE_GUIDANCE", ControlDisplay::MUTE_ROUTE_GUIDANCE}, + {"UNMUTE_ROUTE_GUIDANCE", ControlDisplay::UNMUTE_ROUTE_GUIDANCE}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidControlDisplayType"); +} + +inline void to_json(nlohmann::json& j, const ControlDisplay& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ControlDisplay& c) { + c = toControlDisplay(j); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_CONTROLDISPLAY_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplayMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplayMessage.h new file mode 100644 index 000000000..756a1146d --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ControlDisplayMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_CONTROLDISPLAYMESSAGE_H +#define NAVIGATION_CONTROLDISPLAYMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Navigation/Navigation/ControlDisplay.h" + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct ControlDisplayMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "ControlDisplay"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ControlDisplay = ::aasb::message::navigation::navigation::ControlDisplay; + + ControlDisplay controlDisplay; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "ControlDisplay"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ControlDisplayMessage::Payload& c) { + j = nlohmann::json{ + {"controlDisplay", c.controlDisplay}, + }; +} +inline void from_json(const nlohmann::json& j, ControlDisplayMessage::Payload& c) { + j.at("controlDisplay").get_to(c.controlDisplay); +} + +inline void to_json(nlohmann::json& j, const ControlDisplayMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ControlDisplayMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ControlDisplayMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ControlDisplayMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ControlDisplayMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ControlDisplayMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ControlDisplayMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_CONTROLDISPLAYMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorCode.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorCode.h new file mode 100644 index 000000000..5b2f670da --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorCode.h @@ -0,0 +1,95 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_ERRORCODE_H +#define NAVIGATION_ERRORCODE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Enum Definition +enum class ErrorCode { + INTERNAL_SERVICE_ERROR, + ROUTE_NOT_FOUND, + NO_PREVIOUS_WAYPOINTS, + NOT_SUPPORTED, + NOT_ALLOWED, +}; + +inline std::string toString(ErrorCode enumValue) { + switch (enumValue) { + case (ErrorCode::INTERNAL_SERVICE_ERROR): + return "INTERNAL_SERVICE_ERROR"; + case (ErrorCode::ROUTE_NOT_FOUND): + return "ROUTE_NOT_FOUND"; + case (ErrorCode::NO_PREVIOUS_WAYPOINTS): + return "NO_PREVIOUS_WAYPOINTS"; + case (ErrorCode::NOT_SUPPORTED): + return "NOT_SUPPORTED"; + case (ErrorCode::NOT_ALLOWED): + return "NOT_ALLOWED"; + } + throw std::runtime_error("invalidErrorCodeType"); +} + +inline ErrorCode toErrorCode(const std::string& stringValue) { + static std::unordered_map map = { + {"INTERNAL_SERVICE_ERROR", ErrorCode::INTERNAL_SERVICE_ERROR}, + {"ROUTE_NOT_FOUND", ErrorCode::ROUTE_NOT_FOUND}, + {"NO_PREVIOUS_WAYPOINTS", ErrorCode::NO_PREVIOUS_WAYPOINTS}, + {"NOT_SUPPORTED", ErrorCode::NOT_SUPPORTED}, + {"NOT_ALLOWED", ErrorCode::NOT_ALLOWED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidErrorCodeType"); +} + +inline void to_json(nlohmann::json& j, const ErrorCode& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ErrorCode& c) { + c = toErrorCode(j); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_ERRORCODE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorType.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorType.h new file mode 100644 index 000000000..356c61f8f --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ErrorType.h @@ -0,0 +1,191 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_ERRORTYPE_H +#define NAVIGATION_ERRORTYPE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Enum Definition +enum class ErrorType { + NAVIGATION_START_FAILED, + SHOW_PREVIOUS_WAYPOINTS_FAILED, + PREVIOUS_NAVIGATION_START_FAILED, + ROUTE_OVERVIEW_FAILED, + DIRECTIONS_LIST_FAILED, + ZOOM_IN_FAILED, + ZOOM_OUT_FAILED, + CENTER_FAILED, + ORIENT_NORTH_FAILED, + SCROLL_NORTH_FAILED, + SCROLL_UP_FAILED, + SCROLL_EAST_FAILED, + SCROLL_RIGHT_FAILED, + SCROLL_SOUTH_FAILED, + SCROLL_DOWN_FAILED, + SCROLL_WEST_FAILED, + SCROLL_LEFT_FAILED, + MUTED_ROUTE_GUIDANCE_FAILED, + UNMUTED_ROUTE_GUIDANCE_FAILED, + DEFAULT_ALTERNATE_ROUTES_FAILED, + SHORTER_TIME_ROUTES_FAILED, + SHORTER_DISTANCE_ROUTES_FAILED, + TURN_GUIDANCE_FAILED, + EXIT_GUIDANCE_FAILED, + ENTER_GUIDANCE_FAILED, + MERGE_GUIDANCE_FAILED, + LANE_GUIDANCE_FAILED, + SPEED_LIMIT_REGULATION_FAILED, + CARPOOL_RULES_REGULATION_FAILED, +}; + +inline std::string toString(ErrorType enumValue) { + switch (enumValue) { + case (ErrorType::NAVIGATION_START_FAILED): + return "NAVIGATION_START_FAILED"; + case (ErrorType::SHOW_PREVIOUS_WAYPOINTS_FAILED): + return "SHOW_PREVIOUS_WAYPOINTS_FAILED"; + case (ErrorType::PREVIOUS_NAVIGATION_START_FAILED): + return "PREVIOUS_NAVIGATION_START_FAILED"; + case (ErrorType::ROUTE_OVERVIEW_FAILED): + return "ROUTE_OVERVIEW_FAILED"; + case (ErrorType::DIRECTIONS_LIST_FAILED): + return "DIRECTIONS_LIST_FAILED"; + case (ErrorType::ZOOM_IN_FAILED): + return "ZOOM_IN_FAILED"; + case (ErrorType::ZOOM_OUT_FAILED): + return "ZOOM_OUT_FAILED"; + case (ErrorType::CENTER_FAILED): + return "CENTER_FAILED"; + case (ErrorType::ORIENT_NORTH_FAILED): + return "ORIENT_NORTH_FAILED"; + case (ErrorType::SCROLL_NORTH_FAILED): + return "SCROLL_NORTH_FAILED"; + case (ErrorType::SCROLL_UP_FAILED): + return "SCROLL_UP_FAILED"; + case (ErrorType::SCROLL_EAST_FAILED): + return "SCROLL_EAST_FAILED"; + case (ErrorType::SCROLL_RIGHT_FAILED): + return "SCROLL_RIGHT_FAILED"; + case (ErrorType::SCROLL_SOUTH_FAILED): + return "SCROLL_SOUTH_FAILED"; + case (ErrorType::SCROLL_DOWN_FAILED): + return "SCROLL_DOWN_FAILED"; + case (ErrorType::SCROLL_WEST_FAILED): + return "SCROLL_WEST_FAILED"; + case (ErrorType::SCROLL_LEFT_FAILED): + return "SCROLL_LEFT_FAILED"; + case (ErrorType::MUTED_ROUTE_GUIDANCE_FAILED): + return "MUTED_ROUTE_GUIDANCE_FAILED"; + case (ErrorType::UNMUTED_ROUTE_GUIDANCE_FAILED): + return "UNMUTED_ROUTE_GUIDANCE_FAILED"; + case (ErrorType::DEFAULT_ALTERNATE_ROUTES_FAILED): + return "DEFAULT_ALTERNATE_ROUTES_FAILED"; + case (ErrorType::SHORTER_TIME_ROUTES_FAILED): + return "SHORTER_TIME_ROUTES_FAILED"; + case (ErrorType::SHORTER_DISTANCE_ROUTES_FAILED): + return "SHORTER_DISTANCE_ROUTES_FAILED"; + case (ErrorType::TURN_GUIDANCE_FAILED): + return "TURN_GUIDANCE_FAILED"; + case (ErrorType::EXIT_GUIDANCE_FAILED): + return "EXIT_GUIDANCE_FAILED"; + case (ErrorType::ENTER_GUIDANCE_FAILED): + return "ENTER_GUIDANCE_FAILED"; + case (ErrorType::MERGE_GUIDANCE_FAILED): + return "MERGE_GUIDANCE_FAILED"; + case (ErrorType::LANE_GUIDANCE_FAILED): + return "LANE_GUIDANCE_FAILED"; + case (ErrorType::SPEED_LIMIT_REGULATION_FAILED): + return "SPEED_LIMIT_REGULATION_FAILED"; + case (ErrorType::CARPOOL_RULES_REGULATION_FAILED): + return "CARPOOL_RULES_REGULATION_FAILED"; + } + throw std::runtime_error("invalidErrorTypeType"); +} + +inline ErrorType toErrorType(const std::string& stringValue) { + static std::unordered_map map = { + {"NAVIGATION_START_FAILED", ErrorType::NAVIGATION_START_FAILED}, + {"SHOW_PREVIOUS_WAYPOINTS_FAILED", ErrorType::SHOW_PREVIOUS_WAYPOINTS_FAILED}, + {"PREVIOUS_NAVIGATION_START_FAILED", ErrorType::PREVIOUS_NAVIGATION_START_FAILED}, + {"ROUTE_OVERVIEW_FAILED", ErrorType::ROUTE_OVERVIEW_FAILED}, + {"DIRECTIONS_LIST_FAILED", ErrorType::DIRECTIONS_LIST_FAILED}, + {"ZOOM_IN_FAILED", ErrorType::ZOOM_IN_FAILED}, + {"ZOOM_OUT_FAILED", ErrorType::ZOOM_OUT_FAILED}, + {"CENTER_FAILED", ErrorType::CENTER_FAILED}, + {"ORIENT_NORTH_FAILED", ErrorType::ORIENT_NORTH_FAILED}, + {"SCROLL_NORTH_FAILED", ErrorType::SCROLL_NORTH_FAILED}, + {"SCROLL_UP_FAILED", ErrorType::SCROLL_UP_FAILED}, + {"SCROLL_EAST_FAILED", ErrorType::SCROLL_EAST_FAILED}, + {"SCROLL_RIGHT_FAILED", ErrorType::SCROLL_RIGHT_FAILED}, + {"SCROLL_SOUTH_FAILED", ErrorType::SCROLL_SOUTH_FAILED}, + {"SCROLL_DOWN_FAILED", ErrorType::SCROLL_DOWN_FAILED}, + {"SCROLL_WEST_FAILED", ErrorType::SCROLL_WEST_FAILED}, + {"SCROLL_LEFT_FAILED", ErrorType::SCROLL_LEFT_FAILED}, + {"MUTED_ROUTE_GUIDANCE_FAILED", ErrorType::MUTED_ROUTE_GUIDANCE_FAILED}, + {"UNMUTED_ROUTE_GUIDANCE_FAILED", ErrorType::UNMUTED_ROUTE_GUIDANCE_FAILED}, + {"DEFAULT_ALTERNATE_ROUTES_FAILED", ErrorType::DEFAULT_ALTERNATE_ROUTES_FAILED}, + {"SHORTER_TIME_ROUTES_FAILED", ErrorType::SHORTER_TIME_ROUTES_FAILED}, + {"SHORTER_DISTANCE_ROUTES_FAILED", ErrorType::SHORTER_DISTANCE_ROUTES_FAILED}, + {"TURN_GUIDANCE_FAILED", ErrorType::TURN_GUIDANCE_FAILED}, + {"EXIT_GUIDANCE_FAILED", ErrorType::EXIT_GUIDANCE_FAILED}, + {"ENTER_GUIDANCE_FAILED", ErrorType::ENTER_GUIDANCE_FAILED}, + {"MERGE_GUIDANCE_FAILED", ErrorType::MERGE_GUIDANCE_FAILED}, + {"LANE_GUIDANCE_FAILED", ErrorType::LANE_GUIDANCE_FAILED}, + {"SPEED_LIMIT_REGULATION_FAILED", ErrorType::SPEED_LIMIT_REGULATION_FAILED}, + {"CARPOOL_RULES_REGULATION_FAILED", ErrorType::CARPOOL_RULES_REGULATION_FAILED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidErrorTypeType"); +} + +inline void to_json(nlohmann::json& j, const ErrorType& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ErrorType& c) { + c = toErrorType(j); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_ERRORTYPE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/EventName.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/EventName.h new file mode 100644 index 000000000..7be428fd8 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/EventName.h @@ -0,0 +1,191 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_EVENTNAME_H +#define NAVIGATION_EVENTNAME_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Enum Definition +enum class EventName { + NAVIGATION_STARTED, + PREVIOUS_WAYPOINTS_SHOWN, + PREVIOUS_NAVIGATION_STARTED, + ROUTE_OVERVIEW_SHOWN, + DIRECTIONS_LIST_SHOWN, + ZOOMED_IN, + ZOOMED_OUT, + MAP_CENTERED, + ORIENTED_NORTH, + SCROLLED_NORTH, + SCROLLED_UP, + SCROLLED_EAST, + SCROLLED_RIGHT, + SCROLLED_SOUTH, + SCROLLED_DOWN, + SCROLLED_WEST, + SCROLLED_LEFT, + ROUTE_GUIDANCE_MUTED, + ROUTE_GUIDANCE_UNMUTED, + DEFAULT_ALTERNATE_ROUTES_SHOWN, + SHORTER_TIME_ROUTES_SHOWN, + SHORTER_DISTANCE_ROUTES_SHOWN, + TURN_GUIDANCE_ANNOUNCED, + EXIT_GUIDANCE_ANNOUNCED, + ENTER_GUIDANCE_ANNOUNCED, + MERGE_GUIDANCE_ANNOUNCED, + LANE_GUIDANCE_ANNOUNCED, + SPEED_LIMIT_REGULATION_ANNOUNCED, + CARPOOL_RULES_REGULATION_ANNOUNCED, +}; + +inline std::string toString(EventName enumValue) { + switch (enumValue) { + case (EventName::NAVIGATION_STARTED): + return "NAVIGATION_STARTED"; + case (EventName::PREVIOUS_WAYPOINTS_SHOWN): + return "PREVIOUS_WAYPOINTS_SHOWN"; + case (EventName::PREVIOUS_NAVIGATION_STARTED): + return "PREVIOUS_NAVIGATION_STARTED"; + case (EventName::ROUTE_OVERVIEW_SHOWN): + return "ROUTE_OVERVIEW_SHOWN"; + case (EventName::DIRECTIONS_LIST_SHOWN): + return "DIRECTIONS_LIST_SHOWN"; + case (EventName::ZOOMED_IN): + return "ZOOMED_IN"; + case (EventName::ZOOMED_OUT): + return "ZOOMED_OUT"; + case (EventName::MAP_CENTERED): + return "MAP_CENTERED"; + case (EventName::ORIENTED_NORTH): + return "ORIENTED_NORTH"; + case (EventName::SCROLLED_NORTH): + return "SCROLLED_NORTH"; + case (EventName::SCROLLED_UP): + return "SCROLLED_UP"; + case (EventName::SCROLLED_EAST): + return "SCROLLED_EAST"; + case (EventName::SCROLLED_RIGHT): + return "SCROLLED_RIGHT"; + case (EventName::SCROLLED_SOUTH): + return "SCROLLED_SOUTH"; + case (EventName::SCROLLED_DOWN): + return "SCROLLED_DOWN"; + case (EventName::SCROLLED_WEST): + return "SCROLLED_WEST"; + case (EventName::SCROLLED_LEFT): + return "SCROLLED_LEFT"; + case (EventName::ROUTE_GUIDANCE_MUTED): + return "ROUTE_GUIDANCE_MUTED"; + case (EventName::ROUTE_GUIDANCE_UNMUTED): + return "ROUTE_GUIDANCE_UNMUTED"; + case (EventName::DEFAULT_ALTERNATE_ROUTES_SHOWN): + return "DEFAULT_ALTERNATE_ROUTES_SHOWN"; + case (EventName::SHORTER_TIME_ROUTES_SHOWN): + return "SHORTER_TIME_ROUTES_SHOWN"; + case (EventName::SHORTER_DISTANCE_ROUTES_SHOWN): + return "SHORTER_DISTANCE_ROUTES_SHOWN"; + case (EventName::TURN_GUIDANCE_ANNOUNCED): + return "TURN_GUIDANCE_ANNOUNCED"; + case (EventName::EXIT_GUIDANCE_ANNOUNCED): + return "EXIT_GUIDANCE_ANNOUNCED"; + case (EventName::ENTER_GUIDANCE_ANNOUNCED): + return "ENTER_GUIDANCE_ANNOUNCED"; + case (EventName::MERGE_GUIDANCE_ANNOUNCED): + return "MERGE_GUIDANCE_ANNOUNCED"; + case (EventName::LANE_GUIDANCE_ANNOUNCED): + return "LANE_GUIDANCE_ANNOUNCED"; + case (EventName::SPEED_LIMIT_REGULATION_ANNOUNCED): + return "SPEED_LIMIT_REGULATION_ANNOUNCED"; + case (EventName::CARPOOL_RULES_REGULATION_ANNOUNCED): + return "CARPOOL_RULES_REGULATION_ANNOUNCED"; + } + throw std::runtime_error("invalidEventNameType"); +} + +inline EventName toEventName(const std::string& stringValue) { + static std::unordered_map map = { + {"NAVIGATION_STARTED", EventName::NAVIGATION_STARTED}, + {"PREVIOUS_WAYPOINTS_SHOWN", EventName::PREVIOUS_WAYPOINTS_SHOWN}, + {"PREVIOUS_NAVIGATION_STARTED", EventName::PREVIOUS_NAVIGATION_STARTED}, + {"ROUTE_OVERVIEW_SHOWN", EventName::ROUTE_OVERVIEW_SHOWN}, + {"DIRECTIONS_LIST_SHOWN", EventName::DIRECTIONS_LIST_SHOWN}, + {"ZOOMED_IN", EventName::ZOOMED_IN}, + {"ZOOMED_OUT", EventName::ZOOMED_OUT}, + {"MAP_CENTERED", EventName::MAP_CENTERED}, + {"ORIENTED_NORTH", EventName::ORIENTED_NORTH}, + {"SCROLLED_NORTH", EventName::SCROLLED_NORTH}, + {"SCROLLED_UP", EventName::SCROLLED_UP}, + {"SCROLLED_EAST", EventName::SCROLLED_EAST}, + {"SCROLLED_RIGHT", EventName::SCROLLED_RIGHT}, + {"SCROLLED_SOUTH", EventName::SCROLLED_SOUTH}, + {"SCROLLED_DOWN", EventName::SCROLLED_DOWN}, + {"SCROLLED_WEST", EventName::SCROLLED_WEST}, + {"SCROLLED_LEFT", EventName::SCROLLED_LEFT}, + {"ROUTE_GUIDANCE_MUTED", EventName::ROUTE_GUIDANCE_MUTED}, + {"ROUTE_GUIDANCE_UNMUTED", EventName::ROUTE_GUIDANCE_UNMUTED}, + {"DEFAULT_ALTERNATE_ROUTES_SHOWN", EventName::DEFAULT_ALTERNATE_ROUTES_SHOWN}, + {"SHORTER_TIME_ROUTES_SHOWN", EventName::SHORTER_TIME_ROUTES_SHOWN}, + {"SHORTER_DISTANCE_ROUTES_SHOWN", EventName::SHORTER_DISTANCE_ROUTES_SHOWN}, + {"TURN_GUIDANCE_ANNOUNCED", EventName::TURN_GUIDANCE_ANNOUNCED}, + {"EXIT_GUIDANCE_ANNOUNCED", EventName::EXIT_GUIDANCE_ANNOUNCED}, + {"ENTER_GUIDANCE_ANNOUNCED", EventName::ENTER_GUIDANCE_ANNOUNCED}, + {"MERGE_GUIDANCE_ANNOUNCED", EventName::MERGE_GUIDANCE_ANNOUNCED}, + {"LANE_GUIDANCE_ANNOUNCED", EventName::LANE_GUIDANCE_ANNOUNCED}, + {"SPEED_LIMIT_REGULATION_ANNOUNCED", EventName::SPEED_LIMIT_REGULATION_ANNOUNCED}, + {"CARPOOL_RULES_REGULATION_ANNOUNCED", EventName::CARPOOL_RULES_REGULATION_ANNOUNCED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidEventNameType"); +} + +inline void to_json(nlohmann::json& j, const EventName& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, EventName& c) { + c = toEventName(j); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_EVENTNAME_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessage.h new file mode 100644 index 000000000..e1e61b93b --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_GETNAVIGATIONSTATEMESSAGE_H +#define NAVIGATION_GETNAVIGATIONSTATEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct GetNavigationStateMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNavigationState"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNavigationState"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetNavigationStateMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, GetNavigationStateMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const GetNavigationStateMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, GetNavigationStateMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const GetNavigationStateMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetNavigationStateMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetNavigationStateMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetNavigationStateMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetNavigationStateMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_GETNAVIGATIONSTATEMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessageReply.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessageReply.h new file mode 100644 index 000000000..d49effd16 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/GetNavigationStateMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_GETNAVIGATIONSTATEMESSAGEREPLY_H +#define NAVIGATION_GETNAVIGATIONSTATEMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct GetNavigationStateMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNavigationState"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + nlohmann::json navigationState; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "GetNavigationState"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Reply"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const GetNavigationStateMessageReply::Payload& c) { + j = nlohmann::json{ + {"navigationState", c.navigationState}, + }; +} +inline void from_json(const nlohmann::json& j, GetNavigationStateMessageReply::Payload& c) { + c.navigationState = j.at("navigationState"); +} + +inline void to_json(nlohmann::json& j, const GetNavigationStateMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, GetNavigationStateMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const GetNavigationStateMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, GetNavigationStateMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const GetNavigationStateMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, GetNavigationStateMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string GetNavigationStateMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_GETNAVIGATIONSTATEMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigateToPreviousWaypointMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigateToPreviousWaypointMessage.h new file mode 100644 index 000000000..5b0497799 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigateToPreviousWaypointMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_NAVIGATETOPREVIOUSWAYPOINTMESSAGE_H +#define NAVIGATION_NAVIGATETOPREVIOUSWAYPOINTMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct NavigateToPreviousWaypointMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "NavigateToPreviousWaypoint"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "NavigateToPreviousWaypoint"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const NavigateToPreviousWaypointMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, NavigateToPreviousWaypointMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const NavigateToPreviousWaypointMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, NavigateToPreviousWaypointMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const NavigateToPreviousWaypointMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, NavigateToPreviousWaypointMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const NavigateToPreviousWaypointMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, NavigateToPreviousWaypointMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string NavigateToPreviousWaypointMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_NAVIGATETOPREVIOUSWAYPOINTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationErrorMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationErrorMessage.h new file mode 100644 index 000000000..c1daf511d --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationErrorMessage.h @@ -0,0 +1,152 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_NAVIGATIONERRORMESSAGE_H +#define NAVIGATION_NAVIGATIONERRORMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Navigation/Navigation/ErrorType.h" +#include "AASB/Message/Navigation/Navigation/ErrorCode.h" + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct NavigationErrorMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "NavigationError"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ErrorType = ::aasb::message::navigation::navigation::ErrorType; + using ErrorCode = ::aasb::message::navigation::navigation::ErrorCode; + + ErrorType type; + ErrorCode code; + std::string description; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "NavigationError"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const NavigationErrorMessage::Payload& c) { + j = nlohmann::json{ + {"type", c.type}, + {"code", c.code}, + {"description", c.description}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationErrorMessage::Payload& c) { + j.at("type").get_to(c.type); + j.at("code").get_to(c.code); + j.at("description").get_to(c.description); +} + +inline void to_json(nlohmann::json& j, const NavigationErrorMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationErrorMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const NavigationErrorMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationErrorMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const NavigationErrorMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationErrorMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string NavigationErrorMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_NAVIGATIONERRORMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationEventMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationEventMessage.h new file mode 100644 index 000000000..891c2304d --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/NavigationEventMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_NAVIGATIONEVENTMESSAGE_H +#define NAVIGATION_NAVIGATIONEVENTMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Navigation/Navigation/EventName.h" + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct NavigationEventMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "NavigationEvent"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using EventName = ::aasb::message::navigation::navigation::EventName; + + EventName event; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "NavigationEvent"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const NavigationEventMessage::Payload& c) { + j = nlohmann::json{ + {"event", c.event}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationEventMessage::Payload& c) { + j.at("event").get_to(c.event); +} + +inline void to_json(nlohmann::json& j, const NavigationEventMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationEventMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const NavigationEventMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationEventMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const NavigationEventMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, NavigationEventMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string NavigationEventMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_NAVIGATIONEVENTMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/RoadRegulation.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/RoadRegulation.h new file mode 100644 index 000000000..dd87bbba4 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/RoadRegulation.h @@ -0,0 +1,83 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_ROADREGULATION_H +#define NAVIGATION_ROADREGULATION_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Enum Definition +enum class RoadRegulation { + SPEED_LIMIT, + CARPOOL_RULES, +}; + +inline std::string toString(RoadRegulation enumValue) { + switch (enumValue) { + case (RoadRegulation::SPEED_LIMIT): + return "SPEED_LIMIT"; + case (RoadRegulation::CARPOOL_RULES): + return "CARPOOL_RULES"; + } + throw std::runtime_error("invalidRoadRegulationType"); +} + +inline RoadRegulation toRoadRegulation(const std::string& stringValue) { + static std::unordered_map map = { + {"SPEED_LIMIT", RoadRegulation::SPEED_LIMIT}, + {"CARPOOL_RULES", RoadRegulation::CARPOOL_RULES}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidRoadRegulationType"); +} + +inline void to_json(nlohmann::json& j, const RoadRegulation& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, RoadRegulation& c) { + c = toRoadRegulation(j); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_ROADREGULATION_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesMessage.h new file mode 100644 index 000000000..3f6e8c7d7 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_SHOWALTERNATIVEROUTESMESSAGE_H +#define NAVIGATION_SHOWALTERNATIVEROUTESMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/Navigation/Navigation/AlternateRouteType.h" + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct ShowAlternativeRoutesMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "ShowAlternativeRoutes"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using AlternateRouteType = ::aasb::message::navigation::navigation::AlternateRouteType; + + AlternateRouteType alternateRouteType; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "ShowAlternativeRoutes"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ShowAlternativeRoutesMessage::Payload& c) { + j = nlohmann::json{ + {"alternateRouteType", c.alternateRouteType}, + }; +} +inline void from_json(const nlohmann::json& j, ShowAlternativeRoutesMessage::Payload& c) { + j.at("alternateRouteType").get_to(c.alternateRouteType); +} + +inline void to_json(nlohmann::json& j, const ShowAlternativeRoutesMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ShowAlternativeRoutesMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ShowAlternativeRoutesMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ShowAlternativeRoutesMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ShowAlternativeRoutesMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ShowAlternativeRoutesMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ShowAlternativeRoutesMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_SHOWALTERNATIVEROUTESMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesSucceededMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesSucceededMessage.h new file mode 100644 index 000000000..429a7127f --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowAlternativeRoutesSucceededMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_SHOWALTERNATIVEROUTESSUCCEEDEDMESSAGE_H +#define NAVIGATION_SHOWALTERNATIVEROUTESSUCCEEDEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct ShowAlternativeRoutesSucceededMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "ShowAlternativeRoutesSucceeded"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + nlohmann::json payload; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "ShowAlternativeRoutesSucceeded"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ShowAlternativeRoutesSucceededMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ShowAlternativeRoutesSucceededMessage::Payload& c) { + c.payload = j.at("payload"); +} + +inline void to_json(nlohmann::json& j, const ShowAlternativeRoutesSucceededMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ShowAlternativeRoutesSucceededMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ShowAlternativeRoutesSucceededMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ShowAlternativeRoutesSucceededMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ShowAlternativeRoutesSucceededMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ShowAlternativeRoutesSucceededMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ShowAlternativeRoutesSucceededMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_SHOWALTERNATIVEROUTESSUCCEEDEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowPreviousWaypointsMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowPreviousWaypointsMessage.h new file mode 100644 index 000000000..f2aba00f6 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/ShowPreviousWaypointsMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_SHOWPREVIOUSWAYPOINTSMESSAGE_H +#define NAVIGATION_SHOWPREVIOUSWAYPOINTSMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct ShowPreviousWaypointsMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "ShowPreviousWaypoints"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "ShowPreviousWaypoints"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ShowPreviousWaypointsMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, ShowPreviousWaypointsMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const ShowPreviousWaypointsMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ShowPreviousWaypointsMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ShowPreviousWaypointsMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ShowPreviousWaypointsMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ShowPreviousWaypointsMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ShowPreviousWaypointsMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ShowPreviousWaypointsMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_SHOWPREVIOUSWAYPOINTSMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/StartNavigationMessage.h b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/StartNavigationMessage.h new file mode 100644 index 000000000..0b321e9a6 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/include/AASB/Message/Navigation/Navigation/StartNavigationMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef NAVIGATION_STARTNAVIGATIONMESSAGE_H +#define NAVIGATION_STARTNAVIGATIONMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace navigation { +namespace navigation { + +//Class Definition +struct StartNavigationMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "StartNavigation"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + nlohmann::json payload; + }; + static const std::string& topic() { + static std::string topic = "Navigation"; + return topic; + } + static const std::string& action() { + static std::string action = "StartNavigation"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StartNavigationMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StartNavigationMessage::Payload& c) { + c.payload = j.at("payload"); +} + +inline void to_json(nlohmann::json& j, const StartNavigationMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StartNavigationMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StartNavigationMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StartNavigationMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StartNavigationMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StartNavigationMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StartNavigationMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace navigation +} // namespace navigation +} // namespace message +} // namespace aasb + +#endif // NAVIGATION_STARTNAVIGATIONMESSAGE_H diff --git a/extensions/aasb/modules/aasb-navigation/engine/src/AASBNavigation.cpp b/extensions/aasb/modules/aasb-navigation/engine/src/AASBNavigation.cpp new file mode 100644 index 000000000..d7a510c21 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/src/AASBNavigation.cpp @@ -0,0 +1,302 @@ +/* + * Copyright 2018-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. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace navigation { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.navigation.AASBNavigation"); + +// aliases +using Message = aace::engine::aasb::Message; + +std::shared_ptr AASBNavigation::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto handler = std::shared_ptr(new AASBNavigation()); + + // initialize the handler + ThrowIfNot(handler->initialize(messageBroker), "initializeAASBNavigationFailed"); + + return handler; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBNavigation::initialize(std::shared_ptr messageBroker) { + try { + m_messageBroker = messageBroker; + + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::navigation::navigation::NavigationEventMessage::topic(), + aasb::message::navigation::navigation::NavigationEventMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::navigation::navigation::NavigationEventMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->navigationEvent(static_cast(payload.event)); + + AACE_INFO(LX(TAG, "NavigationEventMessage").m("MessageRouted")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "NavigationEventMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::navigation::navigation::NavigationErrorMessage::topic(), + aasb::message::navigation::navigation::NavigationErrorMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::navigation::navigation::NavigationErrorMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->navigationError( + static_cast(payload.type), + static_cast(payload.code), + payload.description); + + AACE_INFO(LX(TAG, "NavigationErrorMessage").m("MessageRouted")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "NavigationErrorMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::navigation::navigation::ShowAlternativeRoutesSucceededMessage::topic(), + aasb::message::navigation::navigation::ShowAlternativeRoutesSucceededMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::navigation::navigation::ShowAlternativeRoutesSucceededMessage::Payload payload = + nlohmann::json::parse(message.payload()); + sp->showAlternativeRoutesSucceeded(payload.payload); + + AACE_INFO(LX(TAG, "ShowAlternativeRoutesSucceededMessage").m("MessageRouted")); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ShowAlternativeRoutesSucceededMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::navigation::Navigation +// + +void AASBNavigation::showPreviousWaypoints() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::ShowPreviousWaypointsMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBNavigation::navigateToPreviousWaypoint() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::NavigateToPreviousWaypointMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBNavigation::showAlternativeRoutes(AlternateRouteType alternateRouteType) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::ShowAlternativeRoutesMessage message; + + message.payload.alternateRouteType = + static_cast(alternateRouteType); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBNavigation::controlDisplay(ControlDisplay controlDisplay) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::ControlDisplayMessage message; + + message.payload.controlDisplay = + static_cast(controlDisplay); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +bool AASBNavigation::cancelNavigation() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::CancelNavigationMessage message; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +std::string AASBNavigation::getNavigationState() { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::GetNavigationStateMessage message; + + auto result = m_messageBroker_lock->publish(message.toString()).timeout(std::chrono::milliseconds(500)).get(); + + if (result.valid()) { + std::string payload = result.payload(); + aasb::message::navigation::navigation::GetNavigationStateMessageReply::Payload replyPayload = + nlohmann::json::parse(payload); + m_cachedNavState = replyPayload.navigationState; + } + + AACE_INFO(LX(TAG, "GetNavigationStateMessage").m("ReplyReceived")); + + return m_cachedNavState; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return ""; + } +} + +void AASBNavigation::startNavigation(const std::string& payload) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::StartNavigationMessage message; + + message.payload.payload = payload; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBNavigation::announceManeuver(const std::string& payload) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::AnnounceManeuverMessage message; + + message.payload.payload = payload; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBNavigation::announceRoadRegulation(RoadRegulation roadRegulation) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::navigation::navigation::AnnounceRoadRegulationMessage message; + + message.payload.roadRegulation = + static_cast(roadRegulation); + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace navigation +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-navigation/engine/src/AASBNavigationEngineService.cpp b/extensions/aasb/modules/aasb-navigation/engine/src/AASBNavigationEngineService.cpp new file mode 100644 index 000000000..e77e413e0 --- /dev/null +++ b/extensions/aasb/modules/aasb-navigation/engine/src/AASBNavigationEngineService.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace navigation { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.navigation.AASBNavigationEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBNavigationEngineService); + +AASBNavigationEngineService::AASBNavigationEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"Navigation"}) { +} + +bool AASBNavigationEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // Navigation + if (isInterfaceEnabled("Navigation")) { + auto navigation = AASBNavigation::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(navigation, "invalidNavigationHandler"); + getContext()->registerPlatformInterface(navigation); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace navigation +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-phone-control/CMakeLists.txt b/extensions/aasb/modules/aasb-phone-control/CMakeLists.txt new file mode 100644 index 000000000..bb578ffcb --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/CMakeLists.txt @@ -0,0 +1,47 @@ +# AASB PhoneControl + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AASBPhoneControl LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AASBPhoneControl") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AASBPhoneControl.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +# AASBPhoneControl module depends on AACEAASB and AACEPhoneControl module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + include(${AAC_HOME}/share/cmake/AACEPhoneControl.cmake) + include(${AAC_HOME}/share/cmake/AACECore.cmake) + include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +endif() + +#add_subdirectory(platform) +add_subdirectory(engine) + +install( + EXPORT AASBPhoneControl + DESTINATION share/cmake +) diff --git a/extensions/aasb/modules/aasb-phone-control/aac-aasb-phone-control.bb b/extensions/aasb/modules/aasb-phone-control/aac-aasb-phone-control.bb new file mode 100644 index 000000000..c03406ad6 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/aac-aasb-phone-control.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB Phone Control" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallControllerEngineService.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-phone-control aac-module-aasb nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb-phone-control/engine/CMakeLists.txt b/extensions/aasb/modules/aasb-phone-control/engine/CMakeLists.txt new file mode 100644 index 000000000..18d5995e1 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/CMakeLists.txt @@ -0,0 +1,70 @@ +# AASB PhoneControl Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/PhoneCallController/AASBPhoneCallController.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Engine/PhoneCallController/AASBPhoneCallControllerEngineService.h +) + +source_group("Header Files" FILES ${HEADERS}) + +set(AASB_PHONECONTROL_MESSAGES + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/AnswerMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/CallerIdReceivedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/CallError.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/CallFailedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/CallingDeviceConfigurationProperty.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/CallState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/CallStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionState.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionStateChangedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessageReply.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/DeviceConfigurationUpdatedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/DialMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/DTMFError.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/RedialMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFFailedMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFSucceededMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB/Message/PhoneCallController/PhoneCallController/StopMessage.h + +) + +source_group("PhoneControl Message Headers" FILES ${AASB_PHONECONTROL_MESSAGES}) + +add_library(AASBPhoneControlEngine SHARED + ${HEADERS} + ${AASB_PHONECONTROL_MESSAGES} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBPhoneCallController.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBPhoneCallControllerEngineService.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AASBPhoneControlEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AASBPhoneControlEngine + PUBLIC + AACEAASBEngine + AACEPhoneControlPlatform +) + +install( + TARGETS AASBPhoneControlEngine + DESTINATION lib + EXPORT AASBPhoneControl +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AASB + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallController.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallController.h new file mode 100644 index 000000000..7c2950503 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallController.h @@ -0,0 +1,60 @@ +/* + * Copyright 2018-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 AASB_ENGINE_PHONECALLCONTROLLER_AASB_PHONECALLCONTROLLER_H +#define AASB_ENGINE_PHONECALLCONTROLLER_AASB_PHONECALLCONTROLLER_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace engine { +namespace phoneCallController { + +/** + * Provides a AASB Phone Call Controller handler. + */ +class AASBPhoneCallController + : public aace::phoneCallController::PhoneCallController + , public std::enable_shared_from_this { +private: + AASBPhoneCallController() = default; + + bool initialize(std::shared_ptr messageBroker); + +public: + static std::shared_ptr create( + std::shared_ptr messageBroker); + + // aace::phoneCallController::PhoneCallController + bool dial(const std::string& payload) override; + bool redial(const std::string& payload) override; + void answer(const std::string& payload) override; + void stop(const std::string& payload) override; + void sendDTMF(const std::string& payload) override; + +private: + std::weak_ptr m_messageBroker; +}; + +} // namespace phoneCallController +} // namespace engine +} // namespace aasb + +#endif // AASB_ENGINE_PHONECALLCONTROLLER_AASB_PHONECALLCONTROLLER_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallControllerEngineService.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallControllerEngineService.h new file mode 100644 index 000000000..a993a647f --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Engine/PhoneCallController/AASBPhoneCallControllerEngineService.h @@ -0,0 +1,44 @@ +/* + * Copyright 2017-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 AASB_ENGINE_PHONE_CALL_CONTROLLER_AASB_PHONE_CALL_CONTROLLER_ENGINE_SERVICE_H +#define AASB_ENGINE_PHONE_CALL_CONTROLLER_AASB_PHONE_CALL_CONTROLLER_ENGINE_SERVICE_H + +#include +#include + +namespace aasb { +namespace engine { +namespace phoneCallController { + +class AASBPhoneCallControllerEngineService : public aace::engine::aasb::AASBHandlerEngineService { +public: + DESCRIBE("aasb.phoneCallController", VERSION("1.0"), DEPENDS(aace::engine::aasb::AASBEngineService)) + +private: + AASBPhoneCallControllerEngineService(const aace::engine::core::ServiceDescription& description); + +protected: + bool postRegister() override; + +public: + virtual ~AASBPhoneCallControllerEngineService() = default; +}; + +} // namespace phoneCallController +} // namespace engine +} // namespace aasb + +#endif diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/AnswerMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/AnswerMessage.h new file mode 100644 index 000000000..6bc2d347b --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/AnswerMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_ANSWERMESSAGE_H +#define PHONECALLCONTROLLER_ANSWERMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct AnswerMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "Answer"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string payload; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "Answer"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const AnswerMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AnswerMessage::Payload& c) { + j.at("payload").get_to(c.payload); +} + +inline void to_json(nlohmann::json& j, const AnswerMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, AnswerMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const AnswerMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, AnswerMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const AnswerMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, AnswerMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string AnswerMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_ANSWERMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallError.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallError.h new file mode 100644 index 000000000..9670610c0 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallError.h @@ -0,0 +1,93 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CALLERROR_H +#define PHONECALLCONTROLLER_CALLERROR_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { + +//Enum Definition +enum class CallError { + NO_CARRIER, + BUSY, + NO_ANSWER, + NO_NUMBER_FOR_REDIAL, + OTHER, +}; + +inline std::string toString(CallError enumValue) { + switch (enumValue) { + case (CallError::NO_CARRIER): + return "NO_CARRIER"; + case (CallError::BUSY): + return "BUSY"; + case (CallError::NO_ANSWER): + return "NO_ANSWER"; + case (CallError::NO_NUMBER_FOR_REDIAL): + return "NO_NUMBER_FOR_REDIAL"; + case (CallError::OTHER): + return "OTHER"; + } + throw std::runtime_error("invalidCallErrorType"); +} + +inline CallError toCallError(const std::string& stringValue) { + static std::unordered_map map = { + {"NO_CARRIER", CallError::NO_CARRIER}, + {"BUSY", CallError::BUSY}, + {"NO_ANSWER", CallError::NO_ANSWER}, + {"NO_NUMBER_FOR_REDIAL", CallError::NO_NUMBER_FOR_REDIAL}, + {"OTHER", CallError::OTHER}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidCallErrorType"); +} + +inline void to_json(nlohmann::json& j, const CallError& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, CallError& c) { + c = toCallError(j); +} + +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CALLERROR_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallFailedMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallFailedMessage.h new file mode 100644 index 000000000..02c8f986c --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallFailedMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CALLFAILEDMESSAGE_H +#define PHONECALLCONTROLLER_CALLFAILEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/PhoneCallController/PhoneCallController/CallError.h" + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct CallFailedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CallFailed"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using CallError = ::aasb::message::phoneCallController::CallError; + + std::string callId; + CallError code; + std::string message; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CallFailed"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const CallFailedMessage::Payload& c) { + j = nlohmann::json{ + {"callId", c.callId}, + {"code", c.code}, + {"message", c.message}, + }; +} +inline void from_json(const nlohmann::json& j, CallFailedMessage::Payload& c) { + j.at("callId").get_to(c.callId); + j.at("code").get_to(c.code); + j.at("message").get_to(c.message); +} + +inline void to_json(nlohmann::json& j, const CallFailedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, CallFailedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const CallFailedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, CallFailedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const CallFailedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, CallFailedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string CallFailedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CALLFAILEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallState.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallState.h new file mode 100644 index 000000000..2c2848112 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallState.h @@ -0,0 +1,97 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CALLSTATE_H +#define PHONECALLCONTROLLER_CALLSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { + +//Enum Definition +enum class CallState { + IDLE, + DIALING, + OUTBOUND_RINGING, + ACTIVE, + CALL_RECEIVED, + INBOUND_RINGING, +}; + +inline std::string toString(CallState enumValue) { + switch (enumValue) { + case (CallState::IDLE): + return "IDLE"; + case (CallState::DIALING): + return "DIALING"; + case (CallState::OUTBOUND_RINGING): + return "OUTBOUND_RINGING"; + case (CallState::ACTIVE): + return "ACTIVE"; + case (CallState::CALL_RECEIVED): + return "CALL_RECEIVED"; + case (CallState::INBOUND_RINGING): + return "INBOUND_RINGING"; + } + throw std::runtime_error("invalidCallStateType"); +} + +inline CallState toCallState(const std::string& stringValue) { + static std::unordered_map map = { + {"IDLE", CallState::IDLE}, + {"DIALING", CallState::DIALING}, + {"OUTBOUND_RINGING", CallState::OUTBOUND_RINGING}, + {"ACTIVE", CallState::ACTIVE}, + {"CALL_RECEIVED", CallState::CALL_RECEIVED}, + {"INBOUND_RINGING", CallState::INBOUND_RINGING}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidCallStateType"); +} + +inline void to_json(nlohmann::json& j, const CallState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, CallState& c) { + c = toCallState(j); +} + +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CALLSTATE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallStateChangedMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallStateChangedMessage.h new file mode 100644 index 000000000..870811981 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallStateChangedMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CALLSTATECHANGEDMESSAGE_H +#define PHONECALLCONTROLLER_CALLSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/PhoneCallController/PhoneCallController/CallState.h" + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct CallStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CallStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using CallState = ::aasb::message::phoneCallController::CallState; + + CallState state; + std::string callId; + std::string callerId; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CallStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const CallStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + {"callId", c.callId}, + {"callerId", c.callerId}, + }; +} +inline void from_json(const nlohmann::json& j, CallStateChangedMessage::Payload& c) { + j.at("state").get_to(c.state); + j.at("callId").get_to(c.callId); + j.at("callerId").get_to(c.callerId); +} + +inline void to_json(nlohmann::json& j, const CallStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, CallStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const CallStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, CallStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const CallStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, CallStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string CallStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CALLSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallerIdReceivedMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallerIdReceivedMessage.h new file mode 100644 index 000000000..ea23751e6 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallerIdReceivedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CALLERIDRECEIVEDMESSAGE_H +#define PHONECALLCONTROLLER_CALLERIDRECEIVEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct CallerIdReceivedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CallerIdReceived"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string callId; + std::string callerId; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CallerIdReceived"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const CallerIdReceivedMessage::Payload& c) { + j = nlohmann::json{ + {"callId", c.callId}, + {"callerId", c.callerId}, + }; +} +inline void from_json(const nlohmann::json& j, CallerIdReceivedMessage::Payload& c) { + j.at("callId").get_to(c.callId); + j.at("callerId").get_to(c.callerId); +} + +inline void to_json(nlohmann::json& j, const CallerIdReceivedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, CallerIdReceivedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const CallerIdReceivedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, CallerIdReceivedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const CallerIdReceivedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, CallerIdReceivedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string CallerIdReceivedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CALLERIDRECEIVEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallingDeviceConfigurationProperty.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallingDeviceConfigurationProperty.h new file mode 100644 index 000000000..e1aaa7ec7 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CallingDeviceConfigurationProperty.h @@ -0,0 +1,77 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CALLINGDEVICECONFIGURATIONPROPERTY_H +#define PHONECALLCONTROLLER_CALLINGDEVICECONFIGURATIONPROPERTY_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { + +//Enum Definition +enum class CallingDeviceConfigurationProperty { + DTMF_SUPPORTED, +}; + +inline std::string toString(CallingDeviceConfigurationProperty enumValue) { + switch (enumValue) { + case (CallingDeviceConfigurationProperty::DTMF_SUPPORTED): + return "DTMF_SUPPORTED"; + } + throw std::runtime_error("invalidCallingDeviceConfigurationPropertyType"); +} + +inline CallingDeviceConfigurationProperty toCallingDeviceConfigurationProperty(const std::string& stringValue) { + static std::unordered_map map = { + {"DTMF_SUPPORTED", CallingDeviceConfigurationProperty::DTMF_SUPPORTED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidCallingDeviceConfigurationPropertyType"); +} + +inline void to_json(nlohmann::json& j, const CallingDeviceConfigurationProperty& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, CallingDeviceConfigurationProperty& c) { + c = toCallingDeviceConfigurationProperty(j); +} + +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CALLINGDEVICECONFIGURATIONPROPERTY_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionState.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionState.h new file mode 100644 index 000000000..3f7ca6e50 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionState.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CONNECTIONSTATE_H +#define PHONECALLCONTROLLER_CONNECTIONSTATE_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { + +//Enum Definition +enum class ConnectionState { + CONNECTED, + DISCONNECTED, +}; + +inline std::string toString(ConnectionState enumValue) { + switch (enumValue) { + case (ConnectionState::CONNECTED): + return "CONNECTED"; + case (ConnectionState::DISCONNECTED): + return "DISCONNECTED"; + } + throw std::runtime_error("invalidConnectionStateType"); +} + +inline ConnectionState toConnectionState(const std::string& stringValue) { + static std::unordered_map map = { + {"CONNECTED", ConnectionState::CONNECTED}, + {"DISCONNECTED", ConnectionState::DISCONNECTED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidConnectionStateType"); +} + +inline void to_json(nlohmann::json& j, const ConnectionState& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, ConnectionState& c) { + c = toConnectionState(j); +} + +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CONNECTIONSTATE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionStateChangedMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionStateChangedMessage.h new file mode 100644 index 000000000..f8ecea182 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/ConnectionStateChangedMessage.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CONNECTIONSTATECHANGEDMESSAGE_H +#define PHONECALLCONTROLLER_CONNECTIONSTATECHANGEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/PhoneCallController/PhoneCallController/ConnectionState.h" + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct ConnectionStateChangedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "ConnectionStateChanged"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using ConnectionState = ::aasb::message::phoneCallController::ConnectionState; + + ConnectionState state; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "ConnectionStateChanged"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const ConnectionStateChangedMessage::Payload& c) { + j = nlohmann::json{ + {"state", c.state}, + }; +} +inline void from_json(const nlohmann::json& j, ConnectionStateChangedMessage::Payload& c) { + j.at("state").get_to(c.state); +} + +inline void to_json(nlohmann::json& j, const ConnectionStateChangedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, ConnectionStateChangedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const ConnectionStateChangedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, ConnectionStateChangedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const ConnectionStateChangedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, ConnectionStateChangedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string ConnectionStateChangedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CONNECTIONSTATECHANGEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessage.h new file mode 100644 index 000000000..223d57741 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessage.h @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CREATECALLIDMESSAGE_H +#define PHONECALLCONTROLLER_CREATECALLIDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct CreateCallIdMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CreateCallId"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload {}; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CreateCallId"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const CreateCallIdMessage::Payload& c) { + j = nlohmann::json{}; +} +inline void from_json(const nlohmann::json& j, CreateCallIdMessage::Payload& c) { +} + +inline void to_json(nlohmann::json& j, const CreateCallIdMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, CreateCallIdMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const CreateCallIdMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, CreateCallIdMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const CreateCallIdMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, CreateCallIdMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string CreateCallIdMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CREATECALLIDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessageReply.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessageReply.h new file mode 100644 index 000000000..4f83240c9 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/CreateCallIdMessageReply.h @@ -0,0 +1,144 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_CREATECALLIDMESSAGEREPLY_H +#define PHONECALLCONTROLLER_CREATECALLIDMESSAGEREPLY_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct CreateCallIdMessageReply { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CreateCallId"; + return action; + } + std::string replyToId; + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string callId; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "CreateCallId"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const CreateCallIdMessageReply::Payload& c) { + j = nlohmann::json{ + {"callId", c.callId}, + }; +} +inline void from_json(const nlohmann::json& j, CreateCallIdMessageReply::Payload& c) { + j.at("callId").get_to(c.callId); +} + +inline void to_json(nlohmann::json& j, const CreateCallIdMessageReply::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + {"replyToId", c.replyToId}, + }; +} +inline void from_json(const nlohmann::json& j, CreateCallIdMessageReply::Header::MessageDescription& c) { + j.at("replyToId").get_to(c.replyToId); +} + +inline void to_json(nlohmann::json& j, const CreateCallIdMessageReply::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, CreateCallIdMessageReply::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const CreateCallIdMessageReply& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, CreateCallIdMessageReply& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string CreateCallIdMessageReply::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_CREATECALLIDMESSAGEREPLY_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DTMFError.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DTMFError.h new file mode 100644 index 000000000..c174074ae --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DTMFError.h @@ -0,0 +1,81 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_DTMFERROR_H +#define PHONECALLCONTROLLER_DTMFERROR_H + +#include +#include + +#include +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { + +//Enum Definition +enum class DTMFError { + CALL_NOT_IN_PROGRESS, + DTMF_FAILED, +}; + +inline std::string toString(DTMFError enumValue) { + switch (enumValue) { + case (DTMFError::CALL_NOT_IN_PROGRESS): + return "CALL_NOT_IN_PROGRESS"; + case (DTMFError::DTMF_FAILED): + return "DTMF_FAILED"; + } + throw std::runtime_error("invalidDTMFErrorType"); +} + +inline DTMFError toDTMFError(const std::string& stringValue) { + static std::unordered_map map = { + {"CALL_NOT_IN_PROGRESS", DTMFError::CALL_NOT_IN_PROGRESS}, + {"DTMF_FAILED", DTMFError::DTMF_FAILED}, + }; + + auto search = map.find(stringValue); + if (search != map.end()) { + return search->second; + } + throw std::runtime_error("invalidDTMFErrorType"); +} + +inline void to_json(nlohmann::json& j, const DTMFError& c) { + j = toString(c); +} + +inline void from_json(const nlohmann::json& j, DTMFError& c) { + c = toDTMFError(j); +} + +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_DTMFERROR_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DeviceConfigurationUpdatedMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DeviceConfigurationUpdatedMessage.h new file mode 100644 index 000000000..aa633ec4f --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DeviceConfigurationUpdatedMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_DEVICECONFIGURATIONUPDATEDMESSAGE_H +#define PHONECALLCONTROLLER_DEVICECONFIGURATIONUPDATEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct DeviceConfigurationUpdatedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "DeviceConfigurationUpdated"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string configurationMap; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "DeviceConfigurationUpdated"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const DeviceConfigurationUpdatedMessage::Payload& c) { + j = nlohmann::json{ + {"configurationMap", c.configurationMap}, + }; +} +inline void from_json(const nlohmann::json& j, DeviceConfigurationUpdatedMessage::Payload& c) { + j.at("configurationMap").get_to(c.configurationMap); +} + +inline void to_json(nlohmann::json& j, const DeviceConfigurationUpdatedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, DeviceConfigurationUpdatedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const DeviceConfigurationUpdatedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, DeviceConfigurationUpdatedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const DeviceConfigurationUpdatedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, DeviceConfigurationUpdatedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string DeviceConfigurationUpdatedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_DEVICECONFIGURATIONUPDATEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DialMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DialMessage.h new file mode 100644 index 000000000..edbd66fee --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/DialMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_DIALMESSAGE_H +#define PHONECALLCONTROLLER_DIALMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct DialMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "Dial"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string payload; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "Dial"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const DialMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, DialMessage::Payload& c) { + j.at("payload").get_to(c.payload); +} + +inline void to_json(nlohmann::json& j, const DialMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, DialMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const DialMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, DialMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const DialMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, DialMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string DialMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_DIALMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/RedialMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/RedialMessage.h new file mode 100644 index 000000000..4be0524df --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/RedialMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_REDIALMESSAGE_H +#define PHONECALLCONTROLLER_REDIALMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct RedialMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "Redial"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string payload; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "Redial"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const RedialMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RedialMessage::Payload& c) { + j.at("payload").get_to(c.payload); +} + +inline void to_json(nlohmann::json& j, const RedialMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, RedialMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const RedialMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, RedialMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const RedialMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, RedialMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string RedialMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_REDIALMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFFailedMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFFailedMessage.h new file mode 100644 index 000000000..4be71b970 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFFailedMessage.h @@ -0,0 +1,150 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_SENDDTMFFAILEDMESSAGE_H +#define PHONECALLCONTROLLER_SENDDTMFFAILEDMESSAGE_H + +#include +#include + +#include +#include +#include "AASB/Message/PhoneCallController/PhoneCallController/DTMFError.h" + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct SendDTMFFailedMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "SendDTMFFailed"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + using DTMFError = ::aasb::message::phoneCallController::DTMFError; + + std::string callId; + DTMFError code; + std::string message; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "SendDTMFFailed"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SendDTMFFailedMessage::Payload& c) { + j = nlohmann::json{ + {"callId", c.callId}, + {"code", c.code}, + {"message", c.message}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFFailedMessage::Payload& c) { + j.at("callId").get_to(c.callId); + j.at("code").get_to(c.code); + j.at("message").get_to(c.message); +} + +inline void to_json(nlohmann::json& j, const SendDTMFFailedMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFFailedMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SendDTMFFailedMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFFailedMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SendDTMFFailedMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFFailedMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SendDTMFFailedMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_SENDDTMFFAILEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFMessage.h new file mode 100644 index 000000000..80d267fd3 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_SENDDTMFMESSAGE_H +#define PHONECALLCONTROLLER_SENDDTMFMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct SendDTMFMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "SendDTMF"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string payload; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "SendDTMF"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SendDTMFMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFMessage::Payload& c) { + j.at("payload").get_to(c.payload); +} + +inline void to_json(nlohmann::json& j, const SendDTMFMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SendDTMFMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SendDTMFMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SendDTMFMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_SENDDTMFMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFSucceededMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFSucceededMessage.h new file mode 100644 index 000000000..e4061c50e --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/SendDTMFSucceededMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_SENDDTMFSUCCEEDEDMESSAGE_H +#define PHONECALLCONTROLLER_SENDDTMFSUCCEEDEDMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct SendDTMFSucceededMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "SendDTMFSucceeded"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string callId; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "SendDTMFSucceeded"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const SendDTMFSucceededMessage::Payload& c) { + j = nlohmann::json{ + {"callId", c.callId}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFSucceededMessage::Payload& c) { + j.at("callId").get_to(c.callId); +} + +inline void to_json(nlohmann::json& j, const SendDTMFSucceededMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFSucceededMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const SendDTMFSucceededMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFSucceededMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const SendDTMFSucceededMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, SendDTMFSucceededMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string SendDTMFSucceededMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_SENDDTMFSUCCEEDEDMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/StopMessage.h b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/StopMessage.h new file mode 100644 index 000000000..bbefdc34b --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/include/AASB/Message/PhoneCallController/PhoneCallController/StopMessage.h @@ -0,0 +1,141 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef PHONECALLCONTROLLER_STOPMESSAGE_H +#define PHONECALLCONTROLLER_STOPMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace phoneCallController { +namespace phoneCallController { + +//Class Definition +struct StopMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "Stop"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + struct Payload { + std::string payload; + }; + static const std::string& topic() { + static std::string topic = "PhoneCallController"; + return topic; + } + static const std::string& action() { + static std::string action = "Stop"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; + Payload payload; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StopMessage::Payload& c) { + j = nlohmann::json{ + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StopMessage::Payload& c) { + j.at("payload").get_to(c.payload); +} + +inline void to_json(nlohmann::json& j, const StopMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StopMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StopMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StopMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StopMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + {"payload", c.payload}, + }; +} +inline void from_json(const nlohmann::json& j, StopMessage& c) { + j.at("header").get_to(c.header); + j.at("payload").get_to(c.payload); +} + +inline std::string StopMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace phoneCallController +} // namespace phoneCallController +} // namespace message +} // namespace aasb + +#endif // PHONECALLCONTROLLER_STOPMESSAGE_H diff --git a/extensions/aasb/modules/aasb-phone-control/engine/src/AASBPhoneCallController.cpp b/extensions/aasb/modules/aasb-phone-control/engine/src/AASBPhoneCallController.cpp new file mode 100644 index 000000000..3c87a3136 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/src/AASBPhoneCallController.cpp @@ -0,0 +1,371 @@ +/* + * Copyright 2018-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. + */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace aasb { +namespace engine { +namespace phoneCallController { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.phoneCallController.AASBPhoneCallController"); + +// aliases +using Message = aace::engine::aasb::Message; + +// Topic @c TOPIC_PCC +static const std::string TOPIC_PCC = "PhoneCallController"; + +// Actions for @c TOPIC_PCC topic +static const std::string ACTION_PCC_DIAL = "dial"; +static const std::string ACTION_PCC_REDIAL = "redial"; +static const std::string ACTION_PCC_ANSWER = "answer"; +static const std::string ACTION_PCC_STOP = "stop"; +static const std::string ACTION_PCC_SEND_DTMF = "send_dtmf"; +static const std::string ACTION_PCC_CONNECTION_STATE_CHANGED = "connection_state_changed"; +static const std::string ACTION_PCC_CALL_STATE_CHANGED = "call_state_changed"; +static const std::string ACTION_PCC_CALL_FAILED = "call_failed"; +static const std::string ACTION_PCC_CALLER_ID_RECEIVED = "caller_id_received"; +static const std::string ACTION_PCC_SEND_DTMF_SUCCEEDED = "send_dtmf_succeeded"; +static const std::string ACTION_PCC_SEND_DTMF_FAILED = "send_dtmf_failed"; +static const std::string ACTION_PCC_DEVICE_CONFIGURATION_UPDATED = "configuration_updated"; +static const std::string ACTION_PCC_CREATE_CALL_ID = "create_call_id"; + +using ConnectionState = aace::phoneCallController::PhoneCallController::ConnectionState; +using CallState = aace::phoneCallController::PhoneCallController::CallState; +using CallError = aace::phoneCallController::PhoneCallController::CallError; +using DTMFError = aace::phoneCallController::PhoneCallController::DTMFError; +using CallingDeviceConfigurationProperty = + aace::phoneCallController::PhoneCallController::CallingDeviceConfigurationProperty; + +// Enum to string +static const std::unordered_map ConnectionStateEnumerator{ + {"CONNECTED", ConnectionState::CONNECTED}, + {"DISCONNECTED", ConnectionState::DISCONNECTED}}; + +static const std::unordered_map CallStateEnumerator{ + {"IDLE", CallState::IDLE}, + {"DIALING", CallState::DIALING}, + {"OUTBOUND_RINGING", CallState::OUTBOUND_RINGING}, + {"ACTIVE", CallState::ACTIVE}, + {"CALL_RECEIVED", CallState::CALL_RECEIVED}, + {"INBOUND_RINGING", CallState::INBOUND_RINGING}}; + +static const std::unordered_map CallErrorEnumerator{ + {"NO_CARRIER", CallError::NO_CARRIER}, + {"BUSY", CallError::BUSY}, + {"NO_ANSWER", CallError::NO_ANSWER}, + {"NO_NUMBER_FOR_REDIAL", CallError::NO_NUMBER_FOR_REDIAL}, + {"OTHER", CallError::OTHER}}; + +static const std::unordered_map DTMFErrorEnumerator{ + {"CALL_NOT_IN_PROGRESS", DTMFError::CALL_NOT_IN_PROGRESS}, + {"DTMF_FAILED", DTMFError::DTMF_FAILED}}; + +static const std::unordered_map ConfigPropertyEnumerator{ + {"DTMF_SUPPORTED", CallingDeviceConfigurationProperty::DTMF_SUPPORTED}}; + +bool AASBPhoneCallController::initialize(std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + m_messageBroker = messageBroker; + + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + messageBroker->subscribe( + aasb::message::phoneCallController::phoneCallController::ConnectionStateChangedMessage::topic(), + aasb::message::phoneCallController::phoneCallController::ConnectionStateChangedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::phoneCallController::phoneCallController::ConnectionStateChangedMessage::Payload + payload = nlohmann::json::parse(message.payload()); + sp->connectionStateChanged(static_cast(payload.state)); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "ConnectionStateChangedMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::phoneCallController::phoneCallController::CallStateChangedMessage::topic(), + aasb::message::phoneCallController::phoneCallController::CallStateChangedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::phoneCallController::phoneCallController::CallStateChangedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->callStateChanged(static_cast(payload.state), payload.callId, payload.callerId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "CallStateChangedMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::phoneCallController::phoneCallController::CallFailedMessage::topic(), + aasb::message::phoneCallController::phoneCallController::CallFailedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::phoneCallController::phoneCallController::CallFailedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->callFailed(payload.callId, static_cast(payload.code), payload.message); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "CallFailedMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::phoneCallController::phoneCallController::CallerIdReceivedMessage::topic(), + aasb::message::phoneCallController::phoneCallController::CallerIdReceivedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::phoneCallController::phoneCallController::CallerIdReceivedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->callerIdReceived(payload.callId, payload.callerId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "CallerIdReceivedMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::phoneCallController::phoneCallController::SendDTMFSucceededMessage::topic(), + aasb::message::phoneCallController::phoneCallController::SendDTMFSucceededMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::phoneCallController::phoneCallController::SendDTMFSucceededMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->sendDTMFSucceeded(payload.callId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SendDTMFSucceededMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::phoneCallController::phoneCallController::SendDTMFFailedMessage::topic(), + aasb::message::phoneCallController::phoneCallController::SendDTMFFailedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::phoneCallController::phoneCallController::SendDTMFFailedMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + sp->sendDTMFFailed(payload.callId, static_cast(payload.code), payload.message); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "SendDTMFFailedMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::phoneCallController::phoneCallController::DeviceConfigurationUpdatedMessage::topic(), + aasb::message::phoneCallController::phoneCallController::DeviceConfigurationUpdatedMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::phoneCallController::phoneCallController::DeviceConfigurationUpdatedMessage::Payload + payload = nlohmann::json::parse(message.payload()); + auto configurationMapString = nlohmann::json::parse(payload.configurationMap); + + std::unordered_map configurationMap; + + for (auto it = configurationMapString.begin(); it != configurationMapString.end(); ++it) { + configurationMap.insert( + {static_cast( + aasb::message::phoneCallController::toCallingDeviceConfigurationProperty(it.key())), + it.value()}); + } + + sp->deviceConfigurationUpdated(configurationMap); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "DeviceConfigurationUpdatedMessage").d("reason", ex.what())); + } + }); + + messageBroker->subscribe( + aasb::message::phoneCallController::phoneCallController::CreateCallIdMessage::topic(), + aasb::message::phoneCallController::phoneCallController::CreateCallIdMessage::action(), + [wp](const Message& message) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + aasb::message::phoneCallController::phoneCallController::CreateCallIdMessage::Payload payload = + nlohmann::json::parse(message.payload()); + + auto m_messageBroker_lock = sp->m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::phoneCallController::phoneCallController::CreateCallIdMessageReply + createCallIdMessageReply; + createCallIdMessageReply.header.messageDescription.replyToId = message.messageId(); + createCallIdMessageReply.payload.callId = sp->createCallId(); + m_messageBroker_lock->publish(createCallIdMessageReply.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "CreateCallIdMessage").d("reason", ex.what())); + } + }); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "initialize").d("reason", ex.what())); + return false; + } +} + +std::shared_ptr AASBPhoneCallController::create( + std::shared_ptr messageBroker) { + try { + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + + auto handler = std::shared_ptr(new AASBPhoneCallController()); + + // initialize the handler + ThrowIfNot(handler->initialize(messageBroker), "initializeAASBPhoneCallControllerFailed"); + + return handler; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "create").d("reason", ex.what())); + return nullptr; + } +} + +bool AASBPhoneCallController::dial(const std::string& payload) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::phoneCallController::phoneCallController::DialMessage message; + message.payload.payload = payload; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBPhoneCallController::redial(const std::string& payload) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::phoneCallController::phoneCallController::RedialMessage message; + message.payload.payload = payload; + + m_messageBroker_lock->publish(message.toString()).send(); + + return true; + + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +void AASBPhoneCallController::answer(const std::string& payload) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::phoneCallController::phoneCallController::AnswerMessage message; + message.payload.payload = payload; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBPhoneCallController::stop(const std::string& payload) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::phoneCallController::phoneCallController::StopMessage message; + message.payload.payload = payload; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void AASBPhoneCallController::sendDTMF(const std::string& payload) { + try { + AACE_VERBOSE(LX(TAG)); + + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + aasb::message::phoneCallController::phoneCallController::SendDTMFMessage message; + message.payload.payload = payload; + + m_messageBroker_lock->publish(message.toString()).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +} // namespace phoneCallController +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb-phone-control/engine/src/AASBPhoneCallControllerEngineService.cpp b/extensions/aasb/modules/aasb-phone-control/engine/src/AASBPhoneCallControllerEngineService.cpp new file mode 100644 index 000000000..cdf61e854 --- /dev/null +++ b/extensions/aasb/modules/aasb-phone-control/engine/src/AASBPhoneCallControllerEngineService.cpp @@ -0,0 +1,61 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aasb { +namespace engine { +namespace phoneCallController { + +// String to identify log entries originating from this file. +static const std::string TAG("aasb.phoneCallController.AASBPhoneCallControllerEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBPhoneCallControllerEngineService); + +AASBPhoneCallControllerEngineService::AASBPhoneCallControllerEngineService( + const aace::engine::core::ServiceDescription& description) : + aace::engine::aasb::AASBHandlerEngineService(description, minRequiredVersion, {"PhoneCallController"}) { +} + +bool AASBPhoneCallControllerEngineService::postRegister() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + // PhoneCallController + if (isInterfaceEnabled("PhoneCallController")) { + auto pcc = AASBPhoneCallController::create(aasbServiceInterface->getMessageBroker()); + ThrowIfNull(pcc, "invalidPhoneCallControllerHandler"); + getContext()->registerPlatformInterface(pcc); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +} // namespace phoneCallController +} // namespace engine +} // namespace aasb diff --git a/extensions/aasb/modules/aasb/CMakeLists.txt b/extensions/aasb/modules/aasb/CMakeLists.txt new file mode 100644 index 000000000..815bbe745 --- /dev/null +++ b/extensions/aasb/modules/aasb/CMakeLists.txt @@ -0,0 +1,33 @@ +# AACE AASB + +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) + +project(AACEAASB LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Set a default build type for single-configuration +# CMake generators if no build type is set. +if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug) + message("No build type specified, defaulting to DEBUG.") +endif() + +# Select flags. +set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -Wall -O2") +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -DAACE_DEBUG_LOG_ENABLED -Wall -g") + +# AASB module depends on Core module +if(AAC_HOME) + include(${AAC_HOME}/share/cmake/AACECore.cmake) +endif() + +add_subdirectory(platform) +add_subdirectory(engine) + +install( + EXPORT AACEAASB + DESTINATION share/cmake +) \ No newline at end of file diff --git a/extensions/aasb/modules/aasb/aac-module-aasb.bb b/extensions/aasb/modules/aasb/aac-module-aasb.bb new file mode 100644 index 000000000..7399b9617 --- /dev/null +++ b/extensions/aasb/modules/aasb/aac-module-aasb.bb @@ -0,0 +1,7 @@ +SUMMARY = "Alexa Automotive Core - AASB Module" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://platform/include/AACE/AASB/AASB.h;beginline=4;endline=13;md5=527e9938f0eaf4dbc8d3b17563870ae7" + +DEPENDS = "aac-module-core nlohmann" + +inherit pkgconfig aac-module devlibsonly \ No newline at end of file diff --git a/extensions/aasb/modules/aasb/engine/CMakeLists.txt b/extensions/aasb/modules/aasb/engine/CMakeLists.txt new file mode 100644 index 000000000..818048a96 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/CMakeLists.txt @@ -0,0 +1,58 @@ +# AACE AASB Engine + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/AASBEngineImpl.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/AASBEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/MessageBrokerInterface.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/MessageBroker.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/Message.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/PublishMessage.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/StreamManagerInterface.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/StreamManager.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/AASBHandlerEngineService.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/AASB/AASBServiceInterface.h +) + +source_group("Header Files" FILES ${HEADERS}) + +add_library(AACEAASBEngine SHARED + ${HEADERS} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBEngineImpl.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/MessageBroker.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Message.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/PublishMessage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/StreamManager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBHandlerEngineService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBServiceInterface.cpp +) + +find_path(NLOHMANN_INCLUDE_DIR nlohmann/json.hpp + CMAKE_FIND_ROOT_PATH_BOTH +) + +target_include_directories(AACEAASBEngine + PUBLIC + $ + $ + PRIVATE + ${NLOHMANN_INCLUDE_DIR} +) + +target_link_libraries(AACEAASBEngine + PUBLIC + AACEAASBPlatform + AACECoreEngine +) + +install( + TARGETS AACEAASBEngine + DESTINATION lib + EXPORT AACEAASB +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineImpl.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineImpl.h new file mode 100644 index 000000000..84c248416 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineImpl.h @@ -0,0 +1,66 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_AASB_ENGINE_IMPL_H +#define AACE_ENGINE_AASB_AASB_ENGINE_IMPL_H + +#include +#include +#include + +#include +#include + +#include "MessageBrokerInterface.h" +#include "StreamManagerInterface.h" + +namespace aace { +namespace engine { +namespace aasb { + +class AASBEngineImpl + : public aace::aasb::AASBEngineInterface + , public std::enable_shared_from_this { +private: + AASBEngineImpl(std::shared_ptr aasbPlatformInterface); + + bool initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + +public: + virtual ~AASBEngineImpl() = default; + + static std::shared_ptr create( + std::shared_ptr aasbPlatformInterface, + std::shared_ptr messageBroker, + std::shared_ptr streamManager); + + // aace::aasb::AASBEngineInterface + void onPublish(const std::string& message) override; + std::shared_ptr onOpenStream(const std::string& streamId, aace::aasb::AASBStream::Mode mode) + override; + +private: + std::shared_ptr m_aasbPlatformInterface; + std::weak_ptr m_messageBroker; + std::weak_ptr m_streamManager; +}; + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineService.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineService.h new file mode 100644 index 000000000..f71979ad3 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBEngineService.h @@ -0,0 +1,89 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_AASB_ENGINE_SERVICE_H +#define AACE_ENGINE_AASB_AASB_ENGINE_SERVICE_H + +#include +#include + +#include "AASBEngineImpl.h" +#include "AASBServiceInterface.h" +#include "MessageBroker.h" +#include "StreamManager.h" + +namespace aace { +namespace engine { +namespace aasb { + +class AASBEngineService + : public aace::engine::core::EngineService + , public AASBServiceInterface + , public std::enable_shared_from_this { +public: + DESCRIBE("aace.aasb", VERSION("1.0")) + +private: + AASBEngineService(const aace::engine::core::ServiceDescription& description); + +public: + virtual ~AASBEngineService() = default; + + // aace::egnine::aasb::AASBServiceInterface + std::shared_ptr getMessageBroker() override; + std::shared_ptr getStreamManager() override; + aace::engine::core::Version getConfiguredVersion() override; + aace::engine::core::Version getCurrentVersion() override; + bool getAutoEnableInterfaces() override; + uint16_t getDefaultMessageTimeout() override; + +protected: + bool initialize() override; + bool shutdown() override; + bool configure(std::shared_ptr configuration) override; + bool setup() override; + bool start() override; + bool stop() override; + + bool registerPlatformInterface(std::shared_ptr platformInterface) override; + +private: + // platform interface registration + template + bool registerPlatformInterfaceType(std::shared_ptr platformInterface) { + std::shared_ptr typedPlatformInterface = std::dynamic_pointer_cast(platformInterface); + return typedPlatformInterface != nullptr ? registerPlatformInterfaceType(typedPlatformInterface) : false; + } + + bool registerPlatformInterfaceType(std::shared_ptr aasb); + +private: + std::shared_ptr m_messageBroker; + std::shared_ptr m_streamManager; + std::shared_ptr m_aasbEngineImpl; + + // AASB version from engine config file + aace::engine::core::Version m_configuredVersion; + + // config + bool m_autoEnableInterfaces; + uint16_t m_defaultMessageTimeout; +}; + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBHandlerEngineService.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBHandlerEngineService.h new file mode 100644 index 000000000..a16152751 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBHandlerEngineService.h @@ -0,0 +1,75 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_AASB_HANDLER_ENGINE_SERVICE_H +#define AACE_ENGINE_AASB_AASB_HANDLER_ENGINE_SERVICE_H + +#include +#include +#include + +#include + +namespace aace { +namespace engine { +namespace aasb { + +class AASBHandlerEngineService : public aace::engine::core::EngineService { +public: + enum class Enablement { DEFAULT, ENABLED, DISABLED }; + +protected: + AASBHandlerEngineService( + const aace::engine::core::ServiceDescription& description, + const aace::engine::core::Version minRequiredVersion, + std::initializer_list interfaceList); + + bool isInterfaceEnabled(const std::string& name); + + // aace::core::EngineService + bool configure(std::shared_ptr configuration) override; + bool configure() override; + + // configure the aasb interface + virtual bool configureAASBInterface(const std::string& name, bool enabled, std::istream& configuration); + +public: + virtual ~AASBHandlerEngineService() = default; + +private: + std::unordered_map m_interfaceMap; + aace::engine::core::Version m_minRequiredVersion; +}; + +inline std::ostream& operator<<(std::ostream& stream, const AASBHandlerEngineService::Enablement& enablement) { + switch (enablement) { + case AASBHandlerEngineService::Enablement::DEFAULT: + stream << "DEFAULT"; + break; + case AASBHandlerEngineService::Enablement::ENABLED: + stream << "ENABLED"; + break; + case AASBHandlerEngineService::Enablement::DISABLED: + stream << "DISABLED"; + break; + } + return stream; +} + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBServiceInterface.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBServiceInterface.h new file mode 100644 index 000000000..4e2436772 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/AASBServiceInterface.h @@ -0,0 +1,46 @@ +/* + * Copyright 2017-2019 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 AACE_ENGINE_AASB_AASB_SERVICE_INTERFACE_H +#define AACE_ENGINE_AASB_AASB_SERVICE_INTERFACE_H + +#include +#include + +#include "MessageBrokerInterface.h" +#include "StreamManagerInterface.h" + +namespace aace { +namespace engine { +namespace aasb { + +class AASBServiceInterface { +public: + virtual ~AASBServiceInterface(); + +public: + virtual std::shared_ptr getMessageBroker() = 0; + virtual std::shared_ptr getStreamManager() = 0; + virtual aace::engine::core::Version getConfiguredVersion() = 0; + virtual aace::engine::core::Version getCurrentVersion() = 0; + virtual bool getAutoEnableInterfaces() = 0; + virtual uint16_t getDefaultMessageTimeout() = 0; +}; + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif // AACE_ENGINE_AASB_AASB_SERVICE_INTERFACE_H diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/Message.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/Message.h new file mode 100644 index 000000000..4981edb90 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/Message.h @@ -0,0 +1,100 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_MESSAGE_H +#define AACE_ENGINE_AASB_MESSAGE_H + +#include +#include + +#include + +namespace aace { +namespace engine { +namespace aasb { + +class Message { +private: + Message(); + +public: + enum class Direction { INCOMING, OUTGOING }; + + enum class MessageType { PUBLISH, REPLY }; + + Message(const std::string& msg, Direction direction); + + const bool valid() const; + + const Direction& direction() const; + + // header + const std::string& messageId() const; + const MessageType& messageType() const; + + // message description + const std::string& topic() const; + const std::string& action() const; + const std::string& replyTo() const; + + // payload + const std::string payload() const; + + // serialize + const std::string str() const; + + // symbolic constants + static const Message INVALID; + +private: + nlohmann::json m_message; + Direction m_direction; + MessageType m_messageType; + std::string m_messageId; + std::string m_topic; + std::string m_action; + std::string m_replyTo; + std::string m_payload; +}; + +inline std::ostream& operator<<(std::ostream& stream, const Message::Direction& direction) { + switch (direction) { + case Message::Direction::INCOMING: + stream << "INCOMING"; + break; + case Message::Direction::OUTGOING: + stream << "OUTGOING"; + break; + } + return stream; +} + +inline std::ostream& operator<<(std::ostream& stream, const Message::MessageType& messageType) { + switch (messageType) { + case Message::MessageType::PUBLISH: + stream << "PUBLISH"; + break; + case Message::MessageType::REPLY: + stream << "REPLY"; + break; + } + return stream; +} + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBroker.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBroker.h new file mode 100644 index 000000000..5ded7751b --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBroker.h @@ -0,0 +1,94 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_MESSAGE_BROKER_H +#define AACE_ENGINE_AASB_MESSAGE_BROKER_H + +#include "MessageBrokerInterface.h" + +#include +#include +#include + +#include + +#include "PublishMessage.h" + +namespace aace { +namespace engine { +namespace aasb { + +class MessageBroker + : public MessageBrokerInterface + , public std::enable_shared_from_this { +private: + using SyncPromiseType = std::promise; + + MessageBroker() = default; + + std::string getMessageType( + Message::Direction direction, + const std::string& topic = "*", + const std::string& action = "*"); + + void publishAsync(const PublishMessage& pm, aace::engine::utils::threading::Executor& executor); + Message publishSync(const PublishMessage& pm, aace::engine::utils::threading::Executor& executor); + void reply(const PublishMessage& pm); + + void notifySubscribers(const std::string& type, const Message& message); + + void addSyncMessagePromise(const std::string& messageId, std::shared_ptr promise); + void removeSyncMessagePromise(const std::string& messageId); + std::shared_ptr getSyncMessagePromise(const std::string& messageId); + +public: + static std::shared_ptr create(); + + virtual ~MessageBroker() = default; + + void shutdown(); + + // MessageBrokerInterface + void subscribe( + const std::string& topic, + MessageHandler handler, + Message::Direction direction = Message::Direction::INCOMING) override; + void subscribe( + const std::string& topic, + const std::string& action, + MessageHandler handler, + Message::Direction direction = Message::Direction::INCOMING) override; + PublishMessage publish(const std::string& message, Message::Direction direction = Message::Direction::OUTGOING) + override; + +private: + // executor for deferred asynchronous message sending + aace::engine::utils::threading::Executor m_incomingMessageExecutor; + aace::engine::utils::threading::Executor m_outgoingMessageExecutor; + + // map of subscribers + std::unordered_map> m_subscriberMap; + + // mutex and map for handling synchronous messages + std::mutex m_pub_sub_mutex; + std::mutex m_promise_map_access_mutex; + std::unordered_map> m_syncMessagePromiseMap; +}; + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBrokerInterface.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBrokerInterface.h new file mode 100644 index 000000000..2bffbb4f3 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/MessageBrokerInterface.h @@ -0,0 +1,53 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_MESSAGE_BROKER_INTERFACE_H +#define AACE_ENGINE_AASB_MESSAGE_BROKER_INTERFACE_H + +#include +#include +#include +#include +#include + +#include "PublishMessage.h" + +namespace aace { +namespace engine { +namespace aasb { + +class MessageBrokerInterface { +public: + using MessageHandler = std::function; + + virtual void subscribe( + const std::string& topic, + MessageHandler handler, + Message::Direction direction = Message::Direction::INCOMING) = 0; + virtual void subscribe( + const std::string& topic, + const std::string& action, + MessageHandler handler, + Message::Direction direction = Message::Direction::INCOMING) = 0; + virtual PublishMessage publish( + const std::string& message, + Message::Direction direction = Message::Direction::OUTGOING) = 0; +}; + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/PublishMessage.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/PublishMessage.h new file mode 100644 index 000000000..7f9672cfb --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/PublishMessage.h @@ -0,0 +1,73 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_PUBLISH_MESSAGE_H +#define AACE_ENGINE_AASB_PUBLISH_MESSAGE_H + +#include +#include +#include +#include +#include + +#include "Message.h" + +namespace aace { +namespace engine { +namespace aasb { + +class PublishMessage { +public: + using SuccessHandler = std::function; + using ErrorHandler = std::function; + using InvokeHandler = std::function; + + PublishMessage(Message::Direction direction, const std::string& message, InvokeHandler invokeHandler); + PublishMessage(const PublishMessage& pm); + + PublishMessage& timeout(const std::chrono::milliseconds& duration); + PublishMessage& success(SuccessHandler handler); + PublishMessage& error(ErrorHandler handler); + + void send(); + Message get(); + + // accessor methods + const Message::Direction direction() const; + const std::string msg() const; + const std::chrono::milliseconds timeout() const; + const SuccessHandler successHandler() const; + const ErrorHandler errorHandler() const; + + const Message message() const; + const bool valid() const; + +protected: + Message::Direction m_direction; + std::string m_message; + InvokeHandler m_invokeHandler; + std::chrono::milliseconds m_timeout; + SuccessHandler m_successHandler; + ErrorHandler m_errorHandler; + + // keep track of whether or not the message was sent + bool m_messageSent = false; +}; + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManager.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManager.h new file mode 100644 index 000000000..972be6525 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManager.h @@ -0,0 +1,58 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_STREAM_MANAGER_H +#define AACE_ENGINE_AASB_STREAM_MANAGER_H + +#include +#include + +#include + +#include "StreamManagerInterface.h" + +namespace aace { +namespace engine { +namespace aasb { + +class StreamManager + : public StreamManagerInterface + , public std::enable_shared_from_this { +private: + StreamManager() = default; + +public: + static std::shared_ptr create(); + + virtual ~StreamManager() = default; + + void shutdown(); + + // aace::engine::aasb::StreamManagerInterface + bool registerStreamHandler(const std::string& streamId, std::shared_ptr stream) override; + std::shared_ptr requestStreamHandler( + const std::string& streamId, + aace::aasb::AASBStream::Mode mode) override; + +private: + std::unordered_map> m_streamMap; + std::mutex m_mutex; +}; + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManagerInterface.h b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManagerInterface.h new file mode 100644 index 000000000..179fac560 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AACE/Engine/AASB/StreamManagerInterface.h @@ -0,0 +1,41 @@ +/* + * Copyright 2017-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 AACE_ENGINE_AASB_STREAM_MANAGER_INTERFACE_H +#define AACE_ENGINE_AASB_STREAM_MANAGER_INTERFACE_H + +#include +#include + +#include + +namespace aace { +namespace engine { +namespace aasb { + +class StreamManagerInterface { +public: + virtual bool registerStreamHandler(const std::string& streamId, std::shared_ptr stream) = 0; + + virtual std::shared_ptr requestStreamHandler( + const std::string& streamId, + aace::aasb::AASBStream::Mode mode) = 0; +}; + +} // namespace aasb +} // namespace engine +} // namespace aace + +#endif diff --git a/extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StartServiceMessage.h b/extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StartServiceMessage.h new file mode 100644 index 000000000..b18236814 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StartServiceMessage.h @@ -0,0 +1,126 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AASB_STARTSERVICEMESSAGE_H +#define AASB_STARTSERVICEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace aasb { +namespace service { + +//Class Definition +struct StartServiceMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AASB"; + return topic; + } + static const std::string& action() { + static std::string action = "StartService"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + static const std::string& topic() { + static std::string topic = "AASB"; + return topic; + } + static const std::string& action() { + static std::string action = "StartService"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StartServiceMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StartServiceMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StartServiceMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StartServiceMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StartServiceMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + }; +} +inline void from_json(const nlohmann::json& j, StartServiceMessage& c) { + j.at("header").get_to(c.header); +} + +inline std::string StartServiceMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace service +} // namespace aasb +} // namespace message +} // namespace aasb + +#endif // AASB_STARTSERVICEMESSAGE_H diff --git a/extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StopServiceMessage.h b/extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StopServiceMessage.h new file mode 100644 index 000000000..f1ec0bde1 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/include/AASB/Message/AASB/StopServiceMessage.h @@ -0,0 +1,126 @@ +/* + * Copyright 2017-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. + */ + +/********************************************************* +********************************************************** +********************************************************** + +THIS FILE IS AUTOGENERATED. DO NOT EDIT + +********************************************************** +********************************************************** +*********************************************************/ + +#ifndef AASB_STOPSERVICEMESSAGE_H +#define AASB_STOPSERVICEMESSAGE_H + +#include +#include + +#include +#include + +namespace aasb { +namespace message { +namespace aasb { +namespace service { + +//Class Definition +struct StopServiceMessage { + struct Header { + struct MessageDescription { + static const std::string& topic() { + static std::string topic = "AASB"; + return topic; + } + static const std::string& action() { + static std::string action = "StopService"; + return action; + } + }; + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string id = aace::engine::utils::uuid::generateUUID(); + MessageDescription messageDescription; + }; + static const std::string& topic() { + static std::string topic = "AASB"; + return topic; + } + static const std::string& action() { + static std::string action = "StopService"; + return action; + } + static const std::string& version() { + static std::string version = "3.0"; + return version; + } + static const std::string& messageType() { + static std::string messageType = "Publish"; + return messageType; + } + std::string toString() const; + Header header; +}; + +//JSON Serialization +inline void to_json(nlohmann::json& j, const StopServiceMessage::Header::MessageDescription& c) { + j = nlohmann::json{ + {"topic", c.topic()}, + {"action", c.action()}, + }; +} +inline void from_json(const nlohmann::json& j, StopServiceMessage::Header::MessageDescription& c) { +} + +inline void to_json(nlohmann::json& j, const StopServiceMessage::Header& c) { + j = nlohmann::json{ + {"version", c.version()}, + {"messageType", c.messageType()}, + {"id", c.id}, + {"messageDescription", c.messageDescription}, + }; +} +inline void from_json(const nlohmann::json& j, StopServiceMessage::Header& c) { + j.at("id").get_to(c.id); + j.at("messageDescription").get_to(c.messageDescription); +} + +inline void to_json(nlohmann::json& j, const StopServiceMessage& c) { + j = nlohmann::json{ + {"header", c.header}, + }; +} +inline void from_json(const nlohmann::json& j, StopServiceMessage& c) { + j.at("header").get_to(c.header); +} + +inline std::string StopServiceMessage::toString() const { + nlohmann::json j = *this; + return j.dump(3); +} + +} // namespace service +} // namespace aasb +} // namespace message +} // namespace aasb + +#endif // AASB_STOPSERVICEMESSAGE_H diff --git a/extensions/aasb/modules/aasb/engine/src/AASBEngineImpl.cpp b/extensions/aasb/modules/aasb/engine/src/AASBEngineImpl.cpp new file mode 100644 index 000000000..8319beb39 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/src/AASBEngineImpl.cpp @@ -0,0 +1,116 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +namespace aace { +namespace engine { +namespace aasb { + +// String to identify log entries originating from this file. +static const std::string TAG("aace.aasb.AASBEngineImpl"); + +AASBEngineImpl::AASBEngineImpl(std::shared_ptr aasbPlatformInterface) : + m_aasbPlatformInterface(aasbPlatformInterface) { +} + +std::shared_ptr AASBEngineImpl::create( + std::shared_ptr aasbPlatformInterface, + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + std::shared_ptr aasbEngineImpl = nullptr; + + try { + ThrowIfNull(aasbPlatformInterface, "invalidPlatformInterface"); + aasbEngineImpl = std::shared_ptr(new AASBEngineImpl(aasbPlatformInterface)); + + ThrowIfNull(messageBroker, "invalidMessageBrokerInterface"); + ThrowIfNull(streamManager, "invalidStreamManagerInterface"); + + ThrowIfNot(aasbEngineImpl->initialize(messageBroker, streamManager), "initializeFailed"); + + // set the engine interface + aasbPlatformInterface->setEngineInterface(aasbEngineImpl); + + return aasbEngineImpl; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +bool AASBEngineImpl::initialize( + std::shared_ptr messageBroker, + std::shared_ptr streamManager) { + try { + m_messageBroker = messageBroker; + m_streamManager = streamManager; + + // subscribe to all outgoing messages from the message broker, and route them + // through the AASB platform interface... + std::weak_ptr wp = shared_from_this(); + messageBroker->subscribe( + "*", + [wp](const Message& message) { + if (auto sp = wp.lock()) { + if (sp->m_aasbPlatformInterface != nullptr) { + sp->m_aasbPlatformInterface->messageReceived(message.str()); + } + } else { + AACE_ERROR(LX(TAG, "initialize").d("reason", "invalidWeakPtrReference")); + } + }, + Message::Direction::OUTGOING); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +// +// aace::aasb::AASBEngineInterface +// + +void AASBEngineImpl::onPublish(const std::string& message) { + try { + auto m_messageBroker_lock = m_messageBroker.lock(); + ThrowIfNull(m_messageBroker_lock, "invalidMessageBrokerReference"); + + m_messageBroker_lock->publish(message, Message::Direction::INCOMING).send(); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +std::shared_ptr AASBEngineImpl::onOpenStream( + const std::string& streamId, + aace::aasb::AASBStream::Mode mode) { + try { + auto m_streamManager_lock = m_streamManager.lock(); + ThrowIfNull(m_streamManager_lock, "invalidStreamManagerReference"); + + return m_streamManager_lock->requestStreamHandler(streamId, mode); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +} // namespace aasb +} // namespace engine +} // namespace aace diff --git a/extensions/aasb/modules/aasb/engine/src/AASBEngineService.cpp b/extensions/aasb/modules/aasb/engine/src/AASBEngineService.cpp new file mode 100644 index 000000000..126ea7eaa --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/src/AASBEngineService.cpp @@ -0,0 +1,198 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include + +#include + +#include +#include + +#include +#include + +namespace aace { +namespace engine { +namespace aasb { + +// String to identify log entries originating from this file. +static const std::string TAG("aace.aasb.AASBEngineService"); + +// Minimum version this module supports +static const aace::engine::core::Version m_minRequiredVersion = VERSION("3.0"); + +// register the service +REGISTER_SERVICE(AASBEngineService); + +AASBEngineService::AASBEngineService(const aace::engine::core::ServiceDescription& description) : + aace::engine::core::EngineService(description) { +} + +bool AASBEngineService::initialize() { + try { + // register the aasb message broker + m_messageBroker = MessageBroker::create(); + ThrowIfNull(m_messageBroker, "invalidMessageBroker"); + + // register the aasb stream manager + m_streamManager = StreamManager::create(); + ThrowIfNull(m_streamManager, "invalidStreamManager"); + + ThrowIfNot( + registerServiceInterface(shared_from_this()), "registerAASBServiceInterfaceFailed"); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBEngineService::shutdown() { + try { + m_messageBroker->shutdown(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBEngineService::configure(std::shared_ptr configuration) { + try { + auto root = nlohmann::json::parse(*configuration); + auto autoEnableInterfaces = root["/autoEnableInterfaces"_json_pointer]; + + // default values + m_autoEnableInterfaces = false; + m_defaultMessageTimeout = 500; + + m_autoEnableInterfaces = + autoEnableInterfaces == nullptr || (autoEnableInterfaces.is_boolean() && autoEnableInterfaces.get()); + + auto defaultMessageTimeout = root["/defaultMessageTimeout"_json_pointer]; + + if (defaultMessageTimeout != nullptr) { + ThrowIfNot( + defaultMessageTimeout.is_number_integer() && defaultMessageTimeout.is_number_unsigned(), + "invalidConfiguration"); + m_defaultMessageTimeout = defaultMessageTimeout.get(); + } + + auto version = root["/version"_json_pointer]; + if (version.is_string()) { + m_configuredVersion = VERSION(version.get()); + aace::engine::core::Version minRequiredVersion = m_minRequiredVersion; + ThrowIfNot( + (minRequiredVersion < m_configuredVersion || minRequiredVersion == m_configuredVersion) && + (m_configuredVersion < getCurrentVersion() || m_configuredVersion == getCurrentVersion()), + "invalidConfiguredVersion"); + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBEngineService::setup() { + try { + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBEngineService::start() { + try { + ::aasb::message::aasb::service::StartServiceMessage message; + m_messageBroker->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBEngineService::stop() { + try { + ::aasb::message::aasb::service::StopServiceMessage message; + m_messageBroker->publish(message.toString()).send(); + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBEngineService::registerPlatformInterface(std::shared_ptr platformInterface) { + try { + ReturnIf(registerPlatformInterfaceType(platformInterface), true); + return false; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBEngineService::registerPlatformInterfaceType(std::shared_ptr aasb) { + try { + ThrowIfNotNull(m_aasbEngineImpl, "platformInterfaceAlreadyRegistered"); + + m_aasbEngineImpl = AASBEngineImpl::create(aasb, m_messageBroker, m_streamManager); + ThrowIfNull(m_aasbEngineImpl, "createAASBEngineImplFailed"); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "registerPlatformInterfaceType").d("reason", ex.what())); + return false; + } +} + +// +// aace::egnine::aasb::AASBServiceInterface +// + +std::shared_ptr AASBEngineService::getMessageBroker() { + return m_messageBroker; +} + +std::shared_ptr AASBEngineService::getStreamManager() { + return m_streamManager; +} + +aace::engine::core::Version AASBEngineService::getConfiguredVersion() { + return m_configuredVersion; +} + +aace::engine::core::Version AASBEngineService::getCurrentVersion() { + return VERSION("3.0"); +} + +bool AASBEngineService::getAutoEnableInterfaces() { + return m_autoEnableInterfaces; +} + +uint16_t AASBEngineService::getDefaultMessageTimeout() { + return m_defaultMessageTimeout; +} + +} // namespace aasb +} // namespace engine +} // namespace aace diff --git a/extensions/aasb/modules/aasb/engine/src/AASBHandlerEngineService.cpp b/extensions/aasb/modules/aasb/engine/src/AASBHandlerEngineService.cpp new file mode 100644 index 000000000..d57658e22 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/src/AASBHandlerEngineService.cpp @@ -0,0 +1,132 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include +#include +#include +#include + +namespace aace { +namespace engine { +namespace aasb { + +// String to identify log entries originating from this file. +static const std::string TAG("aace.aasb.AASBHandlerEngineService"); + +AASBHandlerEngineService::AASBHandlerEngineService( + const aace::engine::core::ServiceDescription& description, + const aace::engine::core::Version minRequiredVersion, + std::initializer_list interfaceList) : + aace::engine::core::EngineService(description) { + for (auto& next : interfaceList) { + m_interfaceMap[next] = Enablement::DEFAULT; + } + + m_minRequiredVersion = minRequiredVersion; +} + +bool AASBHandlerEngineService::isInterfaceEnabled(const std::string& name) { + try { + auto it = m_interfaceMap.find(name); + ThrowIf(it == m_interfaceMap.end(), "invalidInterfaceName"); + + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + AACE_DEBUG(LX(TAG) + .d("interface", name) + .d("enablement", it->second) + .d("autoEnabled", aasbServiceInterface->getAutoEnableInterfaces())); + + return it->second == Enablement::DEFAULT ? aasbServiceInterface->getAutoEnableInterfaces() + : it->second == Enablement::ENABLED; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBHandlerEngineService::configure() { + try { + auto aasbServiceInterface = + getContext()->getServiceInterface("aace.aasb"); + ThrowIfNull(aasbServiceInterface, "invalidAASBServiceInterface"); + + aace::engine::core::Version configuredVersion = aasbServiceInterface->getConfiguredVersion(); + ThrowIfNot( + (m_minRequiredVersion < configuredVersion || m_minRequiredVersion == configuredVersion) && + (configuredVersion < aasbServiceInterface->getCurrentVersion() || + configuredVersion == aasbServiceInterface->getCurrentVersion()), + "invalidConfiguredVersion"); + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBHandlerEngineService::configure(std::shared_ptr configuration) { + try { + // version check + ThrowIfNot(configure(), "configureFailed"); + + // process the service configuration + auto root = nlohmann::json::parse(*configuration); + + for (auto& next : m_interfaceMap) { + auto interfaceRoot = root[nlohmann::json::json_pointer("/" + next.first)]; + + if (interfaceRoot != nullptr) { + auto enabledNode = interfaceRoot["/enabled"_json_pointer]; + + // set the configured enabled state, or use default if not explicitly configured + if (enabledNode != nullptr && enabledNode.is_boolean()) { + next.second = enabledNode.get() ? Enablement::ENABLED : Enablement::DISABLED; + } + + // configure the interface + std::stringstream interfaceConfigStream; + + // generate the config stream for the interface + interfaceConfigStream << interfaceRoot.dump(); + + // call service configure interface method + configureAASBInterface(next.first, isInterfaceEnabled(next.first), interfaceConfigStream); + } + } + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +bool AASBHandlerEngineService::configureAASBInterface( + const std::string& name, + bool enabled, + std::istream& configuration) { + AACE_DEBUG(LX(TAG).d("name", name).d("enabled", enabled)); + return true; +} + +} // namespace aasb +} // namespace engine +} // namespace aace diff --git a/platforms/agl/alexa-voiceagent-service/src/alexa-voiceagent-binding.h b/extensions/aasb/modules/aasb/engine/src/AASBServiceInterface.cpp similarity index 65% rename from platforms/agl/alexa-voiceagent-service/src/alexa-voiceagent-binding.h rename to extensions/aasb/modules/aasb/engine/src/AASBServiceInterface.cpp index 62eaefe0f..c4270c200 100644 --- a/platforms/agl/alexa-voiceagent-service/src/alexa-voiceagent-binding.h +++ b/extensions/aasb/modules/aasb/engine/src/AASBServiceInterface.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * Copyright 2017-2019 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. @@ -12,15 +12,16 @@ * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ -#ifndef _CTL_BINDING_INCLUDE_ -#define _CTL_BINDING_INCLUDE_ -#define AFB_BINDING_VERSION 3 -#include -#include +#include "AACE/Engine/AASB/AASBServiceInterface.h" -#ifndef ERROR -#define ERROR -1 -#endif +namespace aace { +namespace engine { +namespace aasb { -#endif /* _CTL_BINDING_INCLUDE_ */ \ No newline at end of file +AASBServiceInterface::~AASBServiceInterface() { +} + +} // namespace aasb +} // namespace engine +} // namespace aace diff --git a/extensions/aasb/modules/aasb/engine/src/Message.cpp b/extensions/aasb/modules/aasb/engine/src/Message.cpp new file mode 100644 index 000000000..1bc773ef4 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/src/Message.cpp @@ -0,0 +1,131 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include +#include + +namespace aace { +namespace engine { +namespace aasb { + +// String to identify log entries originating from this file. +static const std::string TAG("aace.aasb.Message"); + +// symbolic constants +const Message Message::INVALID = Message(); + +Message::Message() : m_direction(Direction::OUTGOING) { +} + +Message::Message(const std::string& msg, Direction direction) { + try { + m_message = nlohmann::json::parse(msg); + ThrowIf(m_message.is_null(), "invalidMessage"); + + auto messageType = m_message["/header/messageType"_json_pointer]; + ThrowIfNull(messageType, "missingMessageType"); + + auto messageId = m_message["/header/id"_json_pointer]; + ThrowIfNull(messageId, "missingMessageId"); + + m_messageId = messageId; + + if (aace::engine::utils::string::equal(messageType.get(), "publish", false)) { + m_messageType = MessageType::PUBLISH; + + auto topic = m_message["/header/messageDescription/topic"_json_pointer]; + ThrowIfNull(topic, "missingMessageTopic"); + + auto action = m_message["/header/messageDescription/action"_json_pointer]; + ThrowIfNull(action, "missingMessageAction"); + + m_topic = topic; + m_action = action; + } else if (aace::engine::utils::string::equal(messageType.get(), "reply", false)) { + m_messageType = MessageType::REPLY; + + auto replyTo = m_message["/header/messageDescription/replyToId"_json_pointer]; + ThrowIfNull(replyTo, "missingReplyTo"); + + auto topic = m_message["/header/messageDescription/topic"_json_pointer]; + ThrowIfNull(topic, "missingMessageTopic"); + + auto action = m_message["/header/messageDescription/action"_json_pointer]; + ThrowIfNull(action, "missingMessageAction"); + + m_replyTo = replyTo; + m_topic = topic; + m_action = action; + } else { + Throw("invalidMessgeType"); + } + + m_direction = direction; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what()).d("msg", msg)); + m_message = nullptr; + } +} + +const bool Message::valid() const { + return m_message.is_null() ? false : true; +} + +const std::string& Message::messageId() const { + return m_messageId; +} + +const Message::MessageType& Message::messageType() const { + return m_messageType; +} + +const std::string& Message::topic() const { + return m_topic; +} + +const std::string& Message::action() const { + return m_action; +} + +const std::string& Message::replyTo() const { + return m_replyTo; +} + +const std::string Message::payload() const { + try { + auto payloadIt = m_message.find("payload"); + ThrowIf(payloadIt == m_message.end(), "missingPayloadInMessage"); + ThrowIfNot(payloadIt->is_object(), "invalidPayloadType"); + + return payloadIt->get().dump(3); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return std::string(); + } +} + +const Message::Direction& Message::direction() const { + return m_direction; +} + +const std::string Message::str() const { + return m_message.dump(3); +} + +} // namespace aasb +} // namespace engine +} // namespace aace diff --git a/extensions/aasb/modules/aasb/engine/src/MessageBroker.cpp b/extensions/aasb/modules/aasb/engine/src/MessageBroker.cpp new file mode 100644 index 000000000..83d5edbd2 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/src/MessageBroker.cpp @@ -0,0 +1,298 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include + +namespace aace { +namespace engine { +namespace aasb { + +// String to identify log entries originating from this file. +static const std::string TAG("aace.aasb.MessageBroker"); + +class MessageImpl; + +std::shared_ptr MessageBroker::create() { + return std::shared_ptr(new MessageBroker()); +} + +void MessageBroker::shutdown() { + m_outgoingMessageExecutor.waitForSubmittedTasks(); + m_incomingMessageExecutor.waitForSubmittedTasks(); + + m_outgoingMessageExecutor.shutdown(); + m_incomingMessageExecutor.shutdown(); +} + +std::string MessageBroker::getMessageType( + Message::Direction direction, + const std::string& topic, + const std::string& action) { + std::stringstream str; + + str << direction << ":" << (topic.empty() ? "*" : topic) << ":" << (action.empty() ? "*" : action); + + return str.str(); +} + +void MessageBroker::subscribe(const std::string& topic, MessageHandler handler, Message::Direction direction) { + subscribe(topic, "*", handler, direction); +} + +void MessageBroker::subscribe( + const std::string& topic, + const std::string& action, + MessageHandler handler, + Message::Direction direction) { + try { + AACE_DEBUG(LX(TAG).d("direction", direction).d("topic", topic).d("action", action)); + + std::lock_guard lock(m_pub_sub_mutex); + std::string type = getMessageType(direction, topic, action); + + auto it = m_subscriberMap.find(type); + if (it != m_subscriberMap.end()) { + it->second.push_back(handler); + } else { + m_subscriberMap[type] = {handler}; + } + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +PublishMessage MessageBroker::publish(const std::string& message, Message::Direction direction) { + // create a wp reference + std::weak_ptr wp = shared_from_this(); + + return PublishMessage(direction, message, [wp](const PublishMessage& pm, bool sync) { + try { + auto sp = wp.lock(); + ThrowIfNull(sp, "invalidWeakPtrReference"); + + // get an instance of the Message defined by the PublishMessage object + auto msg = pm.message(); + + // handle publish message type + if (msg.messageType() == Message::MessageType::PUBLISH) { + if (sync) { + return sp->publishSync( + pm, + pm.direction() == Message::Direction::INCOMING ? sp->m_incomingMessageExecutor + : sp->m_outgoingMessageExecutor); + } else { + sp->publishAsync( + pm, + pm.direction() == Message::Direction::INCOMING ? sp->m_incomingMessageExecutor + : sp->m_outgoingMessageExecutor); + return Message::INVALID; + } + } + + // handle reply message type + else if (msg.messageType() == Message::MessageType::REPLY) { + sp->reply(pm); + return Message::INVALID; + } else { + Throw("invalidMessageType"); + } + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return Message::INVALID; + } + }); +} + +void MessageBroker::publishAsync(const PublishMessage& pm, aace::engine::utils::threading::Executor& executor) { + AACE_DEBUG(LX(TAG).sensitive("message", pm.msg())); + + // capture the message + auto message = pm.message(); + + // capture weak ptr reference in callback + std::weak_ptr wp = shared_from_this(); + + // We publish asynchronous messages on the executor thread so that all messages + // are sequenced in the order which they are published... This has the effect of + // blocking asynchronous messages if there is a synchronous message that is + // currently blocking the message queue. + // + // This is intentional behavior, but we may want to support a different, or + // additional asynchronous message behavior. + executor.submit([wp, message]() { + if (auto sp = wp.lock()) { + // publish message to listeners interested in this specific message first (topic:action) + sp->notifySubscribers(sp->getMessageType(message.direction(), message.topic(), message.action()), message); + + // publish message to listeners interested in all actions for this topic (topic:*) + sp->notifySubscribers(sp->getMessageType(message.direction(), message.topic()), message); + + // publish message to listeners interested in all topics and actions (*:*) + sp->notifySubscribers(sp->getMessageType(message.direction()), message); + } else { + AACE_ERROR(LX(TAG).d("reason", "invalidWeakPtrReference")); + } + }); +} + +Message MessageBroker::publishSync(const PublishMessage& pm, aace::engine::utils::threading::Executor& executor) { + try { + AACE_DEBUG(LX(TAG).sensitive("message", pm.msg())); + + // capture the message and timeout + auto message = pm.message(); + auto timeout = pm.timeout(); + + // create the promise for the reply message to fulfill + std::shared_ptr promise = std::make_shared(); + + // create a future to receive the promised reply message when it is received + std::shared_future future(promise->get_future()); + + // capture weak ptr reference in callback + std::weak_ptr wp = shared_from_this(); + + auto task = executor.submit([wp, message, timeout, promise, future]() { + auto sp = wp.lock(); + + try { + ThrowIfNull(sp, "invalidWeakPtrReference"); + + // add the promise to the message sync map + sp->addSyncMessagePromise(message.messageId(), promise); + + // notify the subscribers that are interested in this specific message (topic:action) + sp->notifySubscribers( + sp->getMessageType(message.direction(), message.topic(), message.action()), message); + + // notify the subscribers that are interested in all actions for this topic (topic:*) + sp->notifySubscribers(sp->getMessageType(message.direction(), message.topic()), message); + + // notify the subscribers that are interested in all topics and actions (*:*) + sp->notifySubscribers(sp->getMessageType(message.direction()), message); + + // wait for the future + ThrowIfNot(future.wait_for(timeout) == std::future_status::ready, "syncMessageTimeout" + message.str()); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + promise->set_exception(std::current_exception()); + } + + // if we have a valid message broker then remove the sync message + if (sp != nullptr) { + sp->removeSyncMessagePromise(message.messageId()); + } + }); + + // wait for the task to complete + task.wait(); + + // make sure the response was valid + ThrowIfNot(future.valid(), "invalidMessageResponse"); + + // return the response message + return Message( + future.get(), + message.direction() == Message::Direction::INCOMING ? Message::Direction::OUTGOING + : Message::Direction::INCOMING); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return Message::INVALID; + } +} + +void MessageBroker::reply(const PublishMessage& pm) { + try { + auto message = pm.message(); + AACE_VERBOSE(LX(TAG).sensitive("message", message)); + + auto promise = getSyncMessagePromise(message.replyTo()); + + if (promise == nullptr) { + AACE_VERBOSE( + LX(TAG).m("Publishing reply message because no promise is registered").sensitive("message", message)); + publishAsync( + pm, + pm.direction() == Message::Direction::INCOMING ? m_incomingMessageExecutor : m_outgoingMessageExecutor); + } else { + promise->set_value(message.str()); + } + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void MessageBroker::notifySubscribers(const std::string& type, const Message& message) { + AACE_DEBUG(LX(TAG).d("type", type).sensitive("message", message)); + + //std::lock_guard pub_sub_lock( m_pub_sub_mutex ); + auto it = m_subscriberMap.find(type); + if (it != m_subscriberMap.end()) { + for (auto& next : it->second) { + next(message); + } + } +} + +void MessageBroker::addSyncMessagePromise(const std::string& messageId, std::shared_ptr promise) { + try { + std::lock_guard lock(m_promise_map_access_mutex); + + ThrowIf(m_syncMessagePromiseMap.find(messageId) != m_syncMessagePromiseMap.end(), "messageIdAlreadyExists"); + + // add the promise to the promise map + m_syncMessagePromiseMap[messageId] = promise; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +void MessageBroker::removeSyncMessagePromise(const std::string& messageId) { + try { + std::lock_guard lock(m_promise_map_access_mutex); + + auto it = m_syncMessagePromiseMap.find(messageId); + ThrowIf(it == m_syncMessagePromiseMap.end(), "messageIdDoesNotExist"); + + // remove the promise from the promise map + m_syncMessagePromiseMap.erase(messageId); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + } +} + +std::shared_ptr MessageBroker::getSyncMessagePromise(const std::string& messageId) { + try { + std::lock_guard lock(m_promise_map_access_mutex); + + auto it = m_syncMessagePromiseMap.find(messageId); + ThrowIf(it == m_syncMessagePromiseMap.end(), "messageIdDoesNotExist"); + + return it->second; + } catch (std::exception& ex) { + for (auto& next : m_syncMessagePromiseMap) { + AACE_ERROR(LX(TAG).d("id", next.first)); + } + + return nullptr; + } +} + +} // namespace aasb +} // namespace engine +} // namespace aace diff --git a/extensions/aasb/modules/aasb/engine/src/PublishMessage.cpp b/extensions/aasb/modules/aasb/engine/src/PublishMessage.cpp new file mode 100644 index 000000000..fb431dc11 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/src/PublishMessage.cpp @@ -0,0 +1,111 @@ +/* + * Copyright 2017-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. + */ + +#include +#include +#include + +namespace aace { +namespace engine { +namespace aasb { + +// String to identify log entries originating from this file. +static const std::string TAG("aace.aasb.PublishMessage"); + +PublishMessage::PublishMessage(Message::Direction direction, const std::string& message, InvokeHandler invokeHandler) : + m_direction(direction), m_message(message), m_invokeHandler(invokeHandler) { + m_timeout = std::chrono::milliseconds(500); +} + +PublishMessage::PublishMessage(const PublishMessage& pm) { + m_direction = pm.m_direction; + m_message = pm.m_message; + m_timeout = pm.m_timeout; + m_successHandler = pm.m_successHandler; + m_errorHandler = pm.m_errorHandler; + m_invokeHandler = pm.m_invokeHandler; +} + +PublishMessage& PublishMessage::timeout(const std::chrono::milliseconds& value) { + m_timeout = value; + return *this; +} + +PublishMessage& PublishMessage::success(SuccessHandler handler) { + m_successHandler = handler; + return *this; +} + +PublishMessage& PublishMessage::error(ErrorHandler handler) { + m_errorHandler = handler; + return *this; +} + +void PublishMessage::send() { + try { + m_messageSent = true; + + ThrowIfNull(m_invokeHandler, "invalidPublishMessageInvokeHandler"); + + m_invokeHandler(*this, false); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "send").d("reason", ex.what())); + } +} + +Message PublishMessage::get() { + try { + m_messageSent = true; + + ThrowIfNull(m_invokeHandler, "invalidPublishMessageInvokeHandler"); + + return m_invokeHandler(*this, true); + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG, "get").d("reason", ex.what())); + return Message::INVALID; + } +} + +const std::string PublishMessage::msg() const { + return m_message; +} + +const Message::Direction PublishMessage::direction() const { + return m_direction; +} + +const std::chrono::milliseconds PublishMessage::timeout() const { + return m_timeout; +} + +const PublishMessage::SuccessHandler PublishMessage::successHandler() const { + return m_successHandler; +} + +const PublishMessage::ErrorHandler PublishMessage::errorHandler() const { + return m_errorHandler; +} + +const Message PublishMessage::message() const { + return Message(m_message, m_direction); +} + +const bool PublishMessage::valid() const { + return m_invokeHandler != nullptr && m_message.empty() == false; +} + +} // namespace aasb +} // namespace engine +} // namespace aace diff --git a/extensions/aasb/modules/aasb/engine/src/StreamManager.cpp b/extensions/aasb/modules/aasb/engine/src/StreamManager.cpp new file mode 100644 index 000000000..81b10db77 --- /dev/null +++ b/extensions/aasb/modules/aasb/engine/src/StreamManager.cpp @@ -0,0 +1,82 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +#include + +namespace aace { +namespace engine { +namespace aasb { + +// String to identify log entries originating from this file. +static const std::string TAG("aace.aasb.StreamManager"); + +std::shared_ptr StreamManager::create() { + return std::shared_ptr(new StreamManager()); +} + +void StreamManager::shutdown() { +} + +// +// aace::engine::aasb::StreamManagerInterface +// + +bool StreamManager::registerStreamHandler(const std::string& streamId, std::shared_ptr stream) { + try { + std::lock_guard lock(m_mutex); + + ThrowIf(m_streamMap.find(streamId) != m_streamMap.end(), "streamAlreadyRegistered"); + + m_streamMap[streamId] = stream; + + return true; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return false; + } +} + +std::shared_ptr StreamManager::requestStreamHandler( + const std::string& streamId, + aace::aasb::AASBStream::Mode mode) { + try { + std::lock_guard lock(m_mutex); + + auto it = m_streamMap.find(streamId); + ThrowIf(it == m_streamMap.end(), "invalidStream"); + + auto stream = it->second; + + // check that the stream mode is valid + ThrowIfNot( + stream->getMode() == aace::aasb::AASBStream::Mode::READ_WRITE || stream->getMode() == mode, + "invalidStreamMode"); + + // remove the stream from the map + m_streamMap.erase(it); + + return stream; + } catch (std::exception& ex) { + AACE_ERROR(LX(TAG).d("reason", ex.what())); + return nullptr; + } +} + +} // namespace aasb +} // namespace engine +} // namespace aace diff --git a/extensions/aasb/modules/aasb/platform/CMakeLists.txt b/extensions/aasb/modules/aasb/platform/CMakeLists.txt new file mode 100644 index 000000000..f53921837 --- /dev/null +++ b/extensions/aasb/modules/aasb/platform/CMakeLists.txt @@ -0,0 +1,48 @@ +# AACE AASB Platform + +set(HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/AASB/AASB.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/AASB/AASBStream.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/AASB/AASBEngineInterfaces.h +) + +source_group("Header Files" FILES ${HEADERS}) + +add_library(AACEAASBPlatform SHARED + ${HEADERS} + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASB.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/AASBStream.cpp +) + +target_include_directories(AACEAASBPlatform + PUBLIC + $ + $ +) + +target_link_libraries(AACEAASBPlatform + AACECorePlatform +) + +if(AAC_ENABLE_ADDRESS_SANITIZER) + message(STATUS "Enabling Address Sanitizer for AACEAASB") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") +endif() + +if(AAC_ENABLE_COVERAGE) + message(STATUS "Enabling coverage for AACEAASB.") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) +endif() + +install( + TARGETS AACEAASBPlatform + DESTINATION lib + EXPORT AACEAASB +) + +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE + DESTINATION include + FILES_MATCHING PATTERN "*.h" +) diff --git a/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASB.h b/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASB.h new file mode 100644 index 000000000..f2d4bc274 --- /dev/null +++ b/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASB.h @@ -0,0 +1,78 @@ +/* + * Copyright 2017-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 AACE_AASB_AASB_H +#define AACE_AASB_AASB_H + +#include +#include "AASBEngineInterfaces.h" + +#include + +namespace aace { +namespace aasb { + +/** + * AASB should be extended to handle sending and receiving AASB messages + * to and from the Engine. + */ +class AASB : public aace::core::PlatformInterface { +protected: + AASB() = default; + +public: + virtual ~AASB(); + + /** + * Notifies the platform implementation that an AASB message has been received from the Engine. + * + * @param [in] topic The AASB message topic. + * @param [in] topic The AASB message action. + * @param [in] messageId The unique id for this AASB message. + * @param [in] payload The AASB message payload. + */ + virtual void messageReceived(const std::string& message) = 0; + + /** + * Publishes an AASB message to the Engine. + * + * @param [in] message The AASB message. + */ + void publish(const std::string& message); + + /** + * Opens an AASB stream that has been registered by the Engine. + * + * @param [in] streamId The @c id of the stream being opened. + * @param [in] mode The stream operation @ mode being requested. + */ + std::shared_ptr openStream(const std::string& streamId, AASBStream::Mode mode); + + /** + * @internal + * Sets the Engine interface delagate + * + * Should *never* be called by the platform implementation + */ + void setEngineInterface(std::shared_ptr aasbEngineInterface); + +private: + std::shared_ptr m_aasbEngineInterface; +}; + +} // namespace aasb +} // namespace aace + +#endif diff --git a/platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/public/include/aasb/AASBControllerFactory.h b/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBEngineInterfaces.h similarity index 56% rename from platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/public/include/aasb/AASBControllerFactory.h rename to extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBEngineInterfaces.h index 98cba1042..9df530323 100644 --- a/platforms/agl/alexa-voiceagent-service/src/plugins/aac-services/aasb/bridge/public/include/aasb/AASBControllerFactory.h +++ b/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBEngineInterfaces.h @@ -1,5 +1,5 @@ /* - * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * Copyright 2017-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. @@ -12,23 +12,24 @@ * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ -#ifndef AASB_IREQUESTHANDLERFACTORY_H -#define AASB_IREQUESTHANDLERFACTORY_H -#include "interfaces/IAASBController.h" +#ifndef AACE_AASB_AASB_ENGINE_INTERFACE_H +#define AACE_AASB_AASB_ENGINE_INTERFACE_H +#include + +#include "AASBStream.h" + +namespace aace { namespace aasb { -namespace bridge { -class AASBControllerFactory { +class AASBEngineInterface { public: - /** - * Factory method to create a new instance of @c RequestHandler - */ - static std::shared_ptr createAASBController(); + virtual void onPublish(const std::string& message) = 0; + virtual std::shared_ptr onOpenStream(const std::string& streamId, AASBStream::Mode mode) = 0; }; -} // namespace bridge } // namespace aasb +} // namespace aace -#endif // AASB_IREQUESTHANDLERFACTORY_H \ No newline at end of file +#endif diff --git a/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBStream.h b/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBStream.h new file mode 100644 index 000000000..2166db960 --- /dev/null +++ b/extensions/aasb/modules/aasb/platform/include/AACE/AASB/AASBStream.h @@ -0,0 +1,87 @@ +/* + * Copyright 2017-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 AACE_AASB_AASB_STREAM_H +#define AACE_AASB_AASB_STREAM_H + +#include + +/** @file */ + +namespace aace { +namespace aasb { + +class AASBStream { +public: + enum class Mode { READ, WRITE, READ_WRITE }; + + virtual ~AASBStream(); + + /** + * Reads data from the strean when available. Data will be + * available while @c isClosed() returns false. + * + * @param [out] data The buffer where data should be copied + * @param [in] size The size of the buffer + * @return The number of bytes read, 0 if the end of stream is reached or data is not currently available, + * or -1 if an error occurred + */ + virtual ssize_t read(char* data, const size_t size) = 0; + + /** + * Writes data to the stream. + * + * @param [in] data The data to be written to the stream + * @param [in] size The number of bytes to be written + * @return The number of bytes successfully written to the stream or a negative error code + * if data could not be written + */ + virtual ssize_t write(const char* data, const size_t size) = 0; + + /** + * Checks if the stream has been closed. + * + * @return @c true if the stream is closed, @c false if more data + * will be available + */ + virtual bool isClosed() = 0; + + /** + * Gets the stream mode. + * + * @return @c AASBStream::Mode of the stream. + */ + virtual AASBStream::Mode getMode() = 0; +}; + +inline std::ostream& operator<<(std::ostream& stream, const AASBStream::Mode& mode) { + switch (mode) { + case AASBStream::Mode::READ: + stream << "READ"; + break; + case AASBStream::Mode::WRITE: + stream << "WRITE"; + break; + case AASBStream::Mode::READ_WRITE: + stream << "READ_WRITE"; + break; + } + return stream; +} + +} // namespace aasb +} // namespace aace + +#endif // AACE_AASB_AASB_STREAM_H diff --git a/extensions/aasb/modules/aasb/platform/src/AASB.cpp b/extensions/aasb/modules/aasb/platform/src/AASB.cpp new file mode 100644 index 000000000..b16bb79b0 --- /dev/null +++ b/extensions/aasb/modules/aasb/platform/src/AASB.cpp @@ -0,0 +1,42 @@ +/* + * Copyright 2017-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. + */ + +#include + +namespace aace { +namespace aasb { + +AASB::~AASB() = default; + +void AASB::setEngineInterface(std::shared_ptr aasbEngineInterface) { + m_aasbEngineInterface = aasbEngineInterface; +} + +// +// AASBEngineInterface +// + +void AASB::publish(const std::string& message) { + if (m_aasbEngineInterface != nullptr) { + m_aasbEngineInterface->onPublish(message); + } +} + +std::shared_ptr AASB::openStream(const std::string& streamId, AASBStream::Mode mode) { + return m_aasbEngineInterface != nullptr ? m_aasbEngineInterface->onOpenStream(streamId, mode) : nullptr; +} + +} // namespace aasb +} // namespace aace diff --git a/platforms/agl/alexa-voiceagent-service/src/plugins/TestMain.cpp b/extensions/aasb/modules/aasb/platform/src/AASBStream.cpp similarity index 71% rename from platforms/agl/alexa-voiceagent-service/src/plugins/TestMain.cpp rename to extensions/aasb/modules/aasb/platform/src/AASBStream.cpp index 11b12f2da..e3a6de5a8 100644 --- a/platforms/agl/alexa-voiceagent-service/src/plugins/TestMain.cpp +++ b/extensions/aasb/modules/aasb/platform/src/AASBStream.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * Copyright 2017-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. @@ -12,9 +12,13 @@ * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ -#include "gtest/gtest.h" -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} \ No newline at end of file +#include + +namespace aace { +namespace aasb { + +AASBStream::~AASBStream() = default; + +} // namespace aasb +} // namespace aace diff --git a/extensions/aasb/platforms/android/.gitignore b/extensions/aasb/platforms/android/.gitignore new file mode 100644 index 000000000..5063eaee8 --- /dev/null +++ b/extensions/aasb/platforms/android/.gitignore @@ -0,0 +1,78 @@ +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea +.project +.settings + +# Keystore files +# Uncomment the following line if you do not want to check your keystore files in. +#*.jks + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild/ + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Local Gradle +gradlew +gradlew.bat +gradle/ + +# macOS +.DS_Store + + +native-dependencies/ + +# CMake artifacts +CMakeCache.txt +CMakeFiles/ +Makefile +cmake_install.cmake \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-address-book/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-address-book/CMakeLists.txt new file mode 100644 index 000000000..6872eb2ed --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-address-book/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBAddressBookAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB ADDRESSBOOK MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) +include(${AAC_HOME}/share/cmake/AACEAddressBook.cmake) +include(${AAC_HOME}/share/cmake/AASBAddressBook.cmake) + +set(AASB_ADDRESS_BOOK_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_ADDRESS_BOOK_SOURCE + ${AASB_ADDRESS_BOOK_CPP_DIR}/dummy.cpp + ) + +set(AASB_ADDRESS_BOOK_DEPENDENCIES + AASBAddressBookEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so + ) + +add_library(AASBAddressBookAndroid SHARED + ${AASB_ADDRESS_BOOK_SOURCE} + ) + +target_include_directories(AASBAddressBookAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include + ) + +target_link_libraries(AASBAddressBookAndroid + ${AASB_ADDRESS_BOOK_DEPENDENCIES} + android + log + ) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBAddressBookAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-address-book/build.gradle b/extensions/aasb/platforms/android/modules/aasb-address-book/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-address-book/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/platforms/android/modules/contactuploader/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-address-book/src/main/AndroidManifest.xml similarity index 75% rename from platforms/android/modules/contactuploader/src/main/AndroidManifest.xml rename to extensions/aasb/platforms/android/modules/aasb-address-book/src/main/AndroidManifest.xml index 221abc3d1..b2dbaa565 100644 --- a/platforms/android/modules/contactuploader/src/main/AndroidManifest.xml +++ b/extensions/aasb/platforms/android/modules/aasb-address-book/src/main/AndroidManifest.xml @@ -1,4 +1,4 @@ - + diff --git a/extensions/aasb/platforms/android/modules/aasb-address-book/src/main/assets/meta-aac/aasb-address-book.json b/extensions/aasb/platforms/android/modules/aasb-address-book/src/main/assets/meta-aac/aasb-address-book.json new file mode 100644 index 000000000..2093e0e0c --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-address-book/src/main/assets/meta-aac/aasb-address-book.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBAddressBookAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-address-book/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-address-book/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..c15144adb --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-address-book/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_ADDRESS_BOOK_MODULE = "aasb.addressBook"; diff --git a/extensions/aasb/platforms/android/modules/aasb-alexa/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-alexa/CMakeLists.txt new file mode 100644 index 000000000..b59e3c1ab --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-alexa/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBAlexaAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB ALEXA MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) +include(${AAC_HOME}/share/cmake/AASBAlexa.cmake) + +set(AASB_ALEXA_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_ALEXA_SOURCE + ${AASB_ALEXA_CPP_DIR}/dummy.cpp +) + +set(AASB_ALEXA_DEPENDENCIES + AASBAlexaEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AASBAlexaAndroid SHARED + ${AASB_ALEXA_SOURCE} +) + +target_include_directories(AASBAlexaAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AASBAlexaAndroid + ${AASB_ALEXA_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBAlexaAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-alexa/build.gradle b/extensions/aasb/platforms/android/modules/aasb-alexa/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-alexa/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/AndroidManifest.xml new file mode 100644 index 000000000..a0f25ce84 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/assets/meta-aac/aasb-alexa.json b/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/assets/meta-aac/aasb-alexa.json new file mode 100644 index 000000000..a5e55d203 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/assets/meta-aac/aasb-alexa.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBAlexaAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..1bfdb275f --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-alexa/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_ALEXA_MODULE = "aasb.alexa"; \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-apl/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-apl/CMakeLists.txt new file mode 100644 index 000000000..d9d70de7a --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-apl/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBAPLAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB APL MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAPL.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) +include(${AAC_HOME}/share/cmake/AASBAPL.cmake) + +set(AASB_APL_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_APL_SOURCE + ${AASB_APL_CPP_DIR}/dummy.cpp +) + +set(AASB_APL_DEPENDENCIES + AASBAPLEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AASBAPLAndroid SHARED + ${AASB_APL_SOURCE} +) + +target_include_directories(AASBAPLAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AASBAPLAndroid + ${AASB_APL_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBAPLAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-apl/build.gradle b/extensions/aasb/platforms/android/modules/aasb-apl/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-apl/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/extensions/aasb/platforms/android/modules/aasb-apl/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-apl/src/main/AndroidManifest.xml new file mode 100644 index 000000000..616a0731f --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-apl/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb-apl/src/main/assets/meta-aac/aasb-apl.json b/extensions/aasb/platforms/android/modules/aasb-apl/src/main/assets/meta-aac/aasb-apl.json new file mode 100644 index 000000000..f62d13bb4 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-apl/src/main/assets/meta-aac/aasb-apl.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBAPLAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-apl/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-apl/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..8a69635bb --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-apl/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_APL_MODULE = "aasb.apl"; \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-car-control/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-car-control/CMakeLists.txt new file mode 100644 index 000000000..96a6d0b5a --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-car-control/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBCarControlAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB CARCONTROL MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) +include(${AAC_HOME}/share/cmake/AACECarControl.cmake) +include(${AAC_HOME}/share/cmake/AASBCarControl.cmake) + +set(AASB_CAR_CONTROL_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_CAR_CONTROL_SOURCE + ${AASB_CAR_CONTROL_CPP_DIR}/dummy.cpp + ) + +set(AASB_CAR_CONTROL_DEPENDENCIES + AASBCarControlEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so + ) + +add_library(AASBCarControlAndroid SHARED + ${AASB_CAR_CONTROL_SOURCE} + ) + +target_include_directories(AASBCarControlAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include + ) + +target_link_libraries(AASBCarControlAndroid + ${AASB_CAR_CONTROL_DEPENDENCIES} + android + log + ) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBCarControlAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-car-control/build.gradle b/extensions/aasb/platforms/android/modules/aasb-car-control/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-car-control/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/AndroidManifest.xml new file mode 100644 index 000000000..45a3843b7 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/assets/meta-aac/aasb-car-control.json b/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/assets/meta-aac/aasb-car-control.json new file mode 100644 index 000000000..ea67454cf --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/assets/meta-aac/aasb-car-control.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBCarControlAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..a99994a1d --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-car-control/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_CAR_CONTROL_MODULE = "aasb.carControl"; diff --git a/extensions/aasb/platforms/android/modules/aasb-cbl/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-cbl/CMakeLists.txt new file mode 100644 index 000000000..5ec83ac7a --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-cbl/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBCBLAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB CBL MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACECBL.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) +include(${AAC_HOME}/share/cmake/AASBCBL.cmake) + +set(AASB_CBL_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_CBL_SOURCE + ${AASB_CBL_CPP_DIR}/dummy.cpp +) + +set(AASB_CBL_DEPENDENCIES + AASBCBLEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AASBCBLAndroid SHARED + ${AASB_CBL_SOURCE} +) + +target_include_directories(AASBCBLAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AASBCBLAndroid + ${AASB_CBL_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBCBLAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-cbl/build.gradle b/extensions/aasb/platforms/android/modules/aasb-cbl/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-cbl/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/AndroidManifest.xml new file mode 100644 index 000000000..276a7d2b7 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/assets/meta-aac/aasb-cbl.json b/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/assets/meta-aac/aasb-cbl.json new file mode 100644 index 000000000..073412c7c --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/assets/meta-aac/aasb-cbl.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBCBLAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..96a28f19c --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-cbl/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_CBL_MODULE = "aasb.cbl"; \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-core/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-core/CMakeLists.txt new file mode 100644 index 000000000..72b3d6788 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-core/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBCoreAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB CORE MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) + +set(AASB_CORE_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_CORE_SOURCE + ${AASB_CORE_CPP_DIR}/dummy.cpp +) + +set(AASB_CORE_DEPENDENCIES + AASBCoreEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AASBCoreAndroid SHARED + ${AASB_CORE_SOURCE} +) + +target_include_directories(AASBCoreAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AASBCoreAndroid + ${AASB_CORE_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBCoreAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-core/build.gradle b/extensions/aasb/platforms/android/modules/aasb-core/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-core/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/extensions/aasb/platforms/android/modules/aasb-core/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-core/src/main/AndroidManifest.xml new file mode 100644 index 000000000..f13b756b3 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-core/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb-core/src/main/assets/meta-aac/aasb-core.json b/extensions/aasb/platforms/android/modules/aasb-core/src/main/assets/meta-aac/aasb-core.json new file mode 100644 index 000000000..a5e55d203 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-core/src/main/assets/meta-aac/aasb-core.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBAlexaAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-core/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-core/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..27c434434 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-core/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_CORE_MODULE = "aasb.core"; \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-messaging/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-messaging/CMakeLists.txt new file mode 100644 index 000000000..076109f8d --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-messaging/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBMessagingAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB MESSAGING MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) +include(${AAC_HOME}/share/cmake/AACEMessaging.cmake) +include(${AAC_HOME}/share/cmake/AASBMessaging.cmake) + +set(AASB_MESSAGING_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_MESSAGING_SOURCE + ${AASB_MESSAGING_CPP_DIR}/dummy.cpp +) + +set(AASB_MESSAGING_DEPENDENCIES + AASBMessagingEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AASBMessagingAndroid SHARED + ${AASB_MESSAGING_SOURCE} +) + +target_include_directories(AASBMessagingAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AASBMessagingAndroid + ${AASB_MESSAGING_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBMessagingAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-messaging/build.gradle b/extensions/aasb/platforms/android/modules/aasb-messaging/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-messaging/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/AndroidManifest.xml new file mode 100644 index 000000000..a02751617 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/assets/meta-aac/aasb-messaging.json b/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/assets/meta-aac/aasb-messaging.json new file mode 100644 index 000000000..78cbd8268 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/assets/meta-aac/aasb-messaging.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBMessagingAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..0cd673f3c --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-messaging/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_MESSAGING_MODULE = "aasb.messaging"; \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-navigation/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-navigation/CMakeLists.txt new file mode 100644 index 000000000..d59dbeb14 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-navigation/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBNavigationAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB NAVIGATION MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) +include(${AAC_HOME}/share/cmake/AACENavigation.cmake) +include(${AAC_HOME}/share/cmake/AASBNavigation.cmake) + +set(AASB_NAVIGATION_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_NAVIGATION_SOURCE + ${AASB_NAVIGATION_CPP_DIR}/dummy.cpp +) + +set(AASB_NAVIGATION_DEPENDENCIES + AASBNavigationEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AASBNavigationAndroid SHARED + ${AASB_NAVIGATION_SOURCE} +) + +target_include_directories(AASBNavigationAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AASBNavigationAndroid + ${AASB_NAVIGATION_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBNavigationAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-navigation/build.gradle b/extensions/aasb/platforms/android/modules/aasb-navigation/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-navigation/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/AndroidManifest.xml new file mode 100644 index 000000000..6be3dbfbe --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/assets/meta-aac/aasb-navigation.json b/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/assets/meta-aac/aasb-navigation.json new file mode 100644 index 000000000..69b0d7c90 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/assets/meta-aac/aasb-navigation.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBNavigationAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..7c2d8d4fc --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-navigation/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_NAVIGATION_MODULE = "aasb.navigation"; \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-phone-control/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb-phone-control/CMakeLists.txt new file mode 100644 index 000000000..21c7e37bb --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-phone-control/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AASBPhoneControlAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB PHONE_CONTROL MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) +include(${AAC_HOME}/share/cmake/AASBCore.cmake) +include(${AAC_HOME}/share/cmake/AACEPhoneControl.cmake) +include(${AAC_HOME}/share/cmake/AASBPhoneControl.cmake) + +set(AASB_PHONE_CONTROL_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_PHONE_CONTROL_SOURCE + ${AASB_PHONE_CONTROL_CPP_DIR}/dummy.cpp +) + +set(AASB_PHONE_CONTROL_DEPENDENCIES + AASBPhoneControlEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AASBPhoneControlAndroid SHARED + ${AASB_PHONE_CONTROL_SOURCE} +) + +target_include_directories(AASBPhoneControlAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AASBPhoneControlAndroid + ${AASB_PHONE_CONTROL_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AASBPhoneControlAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/aasb/platforms/android/modules/aasb-phone-control/build.gradle b/extensions/aasb/platforms/android/modules/aasb-phone-control/build.gradle new file mode 100644 index 000000000..09214bf18 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-phone-control/build.gradle @@ -0,0 +1,67 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + api project(":aasb") + } +} diff --git a/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/AndroidManifest.xml new file mode 100644 index 000000000..87aab60ee --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/assets/meta-aac/aasb-phone-control.json b/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/assets/meta-aac/aasb-phone-control.json new file mode 100644 index 000000000..aaef54c86 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/assets/meta-aac/aasb-phone-control.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AASBPhoneControlAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/cpp/dummy.cpp b/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/cpp/dummy.cpp new file mode 100644 index 000000000..0f2b2b3d5 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb-phone-control/src/main/cpp/dummy.cpp @@ -0,0 +1 @@ +static const char* AASB_PHONE_CONTROL_MODULE = "aasb.phoneControl"; \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb/CMakeLists.txt b/extensions/aasb/platforms/android/modules/aasb/CMakeLists.txt new file mode 100644 index 000000000..32d5862eb --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AACEAASBAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### AASB MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAASB.cmake) + +set(AASB_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(AASB_SOURCE + ${AASB_CPP_DIR}/src/AASBBinder.cpp + ${AASB_CPP_DIR}/src/AASBStreamBinder.cpp +) + +set(AASB_DEPENDENCIES + AACEAASBPlatform + AACEAASBEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AACEAASBAndroid SHARED + ${AASB_SOURCE} +) + +target_include_directories(AACEAASBAndroid PUBLIC + ${AASB_CPP_DIR}/include + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AACEAASBAndroid + ${AASB_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AACEAASBAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ + $ +) diff --git a/platforms/android/modules/contactuploader/build.gradle b/extensions/aasb/platforms/android/modules/aasb/build.gradle similarity index 97% rename from platforms/android/modules/contactuploader/build.gradle rename to extensions/aasb/platforms/android/modules/aasb/build.gradle index ce01a84cf..cfbf355b3 100644 --- a/platforms/android/modules/contactuploader/build.gradle +++ b/extensions/aasb/platforms/android/modules/aasb/build.gradle @@ -8,7 +8,6 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:3.6.2' - // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -29,7 +28,7 @@ android { minSdkVersion 22 targetSdkVersion 23 versionCode 1 - versionName '2.3' + versionName '1.4' ndk { abiFilters = generateAbiFiltersDeploy() } @@ -63,5 +62,5 @@ android { } dependencies { api project(":core") - } + } } diff --git a/extensions/aasb/platforms/android/modules/aasb/src/main/AndroidManifest.xml b/extensions/aasb/platforms/android/modules/aasb/src/main/AndroidManifest.xml new file mode 100644 index 000000000..dcc13ef74 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/aasb/platforms/android/modules/aasb/src/main/assets/meta-aac/aace-aasb.json b/extensions/aasb/platforms/android/modules/aasb/src/main/assets/meta-aac/aace-aasb.json new file mode 100644 index 000000000..87be6e011 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/src/main/assets/meta-aac/aace-aasb.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AACEAASBAndroid" + }] +} \ No newline at end of file diff --git a/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/include/AACE/JNI/AASB/AASBBinder.h b/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/include/AACE/JNI/AASB/AASBBinder.h new file mode 100644 index 000000000..42b0cb69d --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/include/AACE/JNI/AASB/AASBBinder.h @@ -0,0 +1,57 @@ +/* + * Copyright 2017-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 AACE_JNI_AASB_AASB_BINDER_H +#define AACE_JNI_AASB_AASB_BINDER_H + +#include +#include + +namespace aace { +namespace jni { +namespace aasb { + +class AASBHandler : public aace::aasb::AASB { +public: + AASBHandler(jobject obj); + + // aace::aasb::AASB + void messageReceived(const std::string& message) override; + +private: + JObject m_obj; +}; + +class AASBBinder : public aace::jni::core::PlatformInterfaceBinder { +public: + AASBBinder(jobject obj); + + std::shared_ptr getPlatformInterface() override { + return m_aasbHandler; + } + + std::shared_ptr getAASB() { + return m_aasbHandler; + } + +private: + std::shared_ptr m_aasbHandler; +}; + +} // namespace aasb +} // namespace jni +} // namespace aace + +#endif //AACE_JNI_AASB_AASB_BINDER_H diff --git a/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/include/AACE/JNI/AASB/AASBStreamBinder.h b/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/include/AACE/JNI/AASB/AASBStreamBinder.h new file mode 100644 index 000000000..3d8af44bc --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/include/AACE/JNI/AASB/AASBStreamBinder.h @@ -0,0 +1,67 @@ +/* + * 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 AACE_JNI_AASB_AASB_STREAM_BINDER_H +#define AACE_JNI_AASB_AASB_STREAM_BINDER_H + +#include + +#include +#include + +namespace aace { +namespace jni { +namespace aasb { + +// +// AASBStreamBinder +// + +class AASBStreamBinder { +public: + AASBStreamBinder(std::shared_ptr stream); + + std::shared_ptr getAASBStream() { + return m_stream; + } + +private: + std::shared_ptr m_stream; +}; + +// +// JMode +// + +class JModeConfig : public EnumConfiguration { +public: + using T = aace::aasb::AASBStream::Mode; + + const char* getClassName() override { + return "com/amazon/aace/aasb/AASBStream$Mode"; + } + + std::vector> getConfiguration() override { + return {{T::READ, "READ"}, {T::WRITE, "WRITE"}, {T::READ_WRITE, "READ_WRITE"}}; + } +}; + +using JMode = JEnum; + +} // namespace aasb +} // namespace jni +} // namespace aace + +#endif // AACE_JNI_AASB_AASB_STREAM_BINDER_H diff --git a/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/src/AASBBinder.cpp b/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/src/AASBBinder.cpp new file mode 100644 index 000000000..d33103ae6 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/src/AASBBinder.cpp @@ -0,0 +1,111 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +// String to identify log entries originating from this file +static const char TAG[] = "aace.jni.aasb.AASBBinder"; + +namespace aace { +namespace jni { +namespace aasb { + +AASBBinder::AASBBinder(jobject obj) { + m_aasbHandler = std::make_shared(obj); +} + +AASBHandler::AASBHandler(jobject obj) : m_obj(obj, "com/amazon/aace/aasb/AASB") { +} + +void AASBHandler::messageReceived(const std::string& message) { + try_with_context { + ThrowIfNot( + m_obj.invoke("messageReceived", "(Ljava/lang/String;)V", nullptr, JString(message).get()), + "invokeFailed"); + } + catch_with_ex { + AACE_JNI_ERROR(TAG, "messageReceived", ex.what()); + } +} + +} // namespace aasb +} // namespace jni +} // namespace aace + +#define AASB_BINDER(ref) reinterpret_cast(ref) + +extern "C" { +JNIEXPORT jlong JNICALL Java_com_amazon_aace_aasb_AASB_createBinder(JNIEnv* env, jobject obj) { + try { + return reinterpret_cast(new aace::jni::aasb::AASBBinder(obj)); + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASB_createBinder", ex.what()); + return 0; + } +} + +JNIEXPORT void JNICALL Java_com_amazon_aace_aasb_AASB_disposeBinder(JNIEnv* env, jobject /* this */, jlong ref) { + try { + auto aasbBinder = AASB_BINDER(ref); + ThrowIfNull(aasbBinder, "invalidAASBBinder"); + delete aasbBinder; + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASB_disposeBinder", ex.what()); + } +} + +JNIEXPORT void JNICALL +Java_com_amazon_aace_aasb_AASB_publish(JNIEnv* env, jobject /* this */, jlong ref, jstring message) { + try { + auto aasbBinder = AASB_BINDER(ref); + ThrowIfNull(aasbBinder, "invalidAASBBinder"); + + aasbBinder->getAASB()->publish(JString(message).toStdStr()); + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASB_publish", ex.what()); + } +} + +JNIEXPORT jobject JNICALL +Java_com_amazon_aace_aasb_AASB_openStream(JNIEnv* env, jobject /* this */, jlong ref, jstring streamId, jobject mode) { + try { + auto aasbBinder = AASB_BINDER(ref); + ThrowIfNull(aasbBinder, "invalidAASBBinder"); + + JObject javaAASBStream("com/amazon/aace/aasb/AASBStream"); + ThrowIfJavaEx(env, "createAASBStreamFailed"); + + aace::aasb::AASBStream::Mode modeType; + ThrowIfNot(aace::jni::aasb::JMode::checkType(mode, &modeType), "invalidModeType"); + + auto stream = aasbBinder->getAASB()->openStream(JString(streamId).toStdStr(), modeType); + ThrowIfNull(stream, "openStreamFailed"); + + // create the aasb stream binder + long aasbStreamBinder = reinterpret_cast(new aace::jni::aasb::AASBStreamBinder(stream)); + + // set the java aasb stream object native ref to the aasb stream binder + javaAASBStream.invoke("setNativeRef", "(J)V", nullptr, aasbStreamBinder); + + return env->NewLocalRef(javaAASBStream.get()); + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASB_openStream", ex.what()); + return nullptr; + } +} +} + +// END OF FILE diff --git a/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/src/AASBStreamBinder.cpp b/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/src/AASBStreamBinder.cpp new file mode 100644 index 000000000..1c381a6af --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/src/main/cpp/src/AASBStreamBinder.cpp @@ -0,0 +1,115 @@ +/* + * Copyright 2017-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. + */ + +#include +#include + +// String to identify log entries originating from this file. +static const char TAG[] = "aace.jni.aasb.AASBStreamBinder"; + +namespace aace { +namespace jni { +namespace aasb { + +// +// AASBStreamBinder +// + +AASBStreamBinder::AASBStreamBinder(std::shared_ptr stream) : m_stream(stream) { +} + +} // namespace aasb +} // namespace jni +} // namespace aace + +#define AASB_STREAM_BINDER(ref) reinterpret_cast(ref) + +extern "C" { +JNIEXPORT void JNICALL Java_com_amazon_aace_aasb_AASBStream_disposeBinder(JNIEnv* env, jobject /* this */, jlong ref) { + try { + auto aasbStreamBinder = AASB_STREAM_BINDER(ref); + ThrowIfNull(aasbStreamBinder, "invalidAASBStreamBinder"); + delete aasbStreamBinder; + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASBStream_disposeBinder", ex.what()); + } +} + +JNIEXPORT jboolean JNICALL Java_com_amazon_aace_aasb_AASBStream_isClosed(JNIEnv* env, jobject /* this */, jlong ref) { + try { + auto aasbStreamBinder = AASB_STREAM_BINDER(ref); + ThrowIfNull(aasbStreamBinder, "invalidAASBStreamBinder"); + + return aasbStreamBinder->getAASBStream()->isClosed(); + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASBStream_isClosed", ex.what()); + return true; + } +} + +JNIEXPORT jint JNICALL Java_com_amazon_aace_aasb_AASBStream_read( + JNIEnv* env, + jobject /* this */, + jlong ref, + jbyteArray data, + jlong offset, + jlong size) { + try { + auto aasbStreamBinder = AASB_STREAM_BINDER(ref); + ThrowIfNull(aasbStreamBinder, "invalidAASBStreamBinder"); + + return static_cast( + aasbStreamBinder->getAASBStream()->read(((char*)JByteArray(data).ptr()) + offset, size - offset)); + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASBStream_read", ex.what()); + return 0; + } +} + +JNIEXPORT jint JNICALL Java_com_amazon_aace_aasb_AASBStream_write( + JNIEnv* env, + jobject /* this */, + jlong ref, + jbyteArray data, + jlong offset, + jlong size) { + try { + auto aasbStreamBinder = AASB_STREAM_BINDER(ref); + ThrowIfNull(aasbStreamBinder, "invalidAASBStreamBinder"); + + return static_cast( + aasbStreamBinder->getAASBStream()->write(((char*)JByteArray(data).ptr()) + offset, size)); + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASBStream_write", ex.what()); + return 0; + } +} + +JNIEXPORT jobject JNICALL Java_com_amazon_aace_aasb_AASBStream_getMode(JNIEnv* env, jobject /* this */, jlong ref) { + try { + auto aasbStreamBinder = AASB_STREAM_BINDER(ref); + ThrowIfNull(aasbStreamBinder, "invalidAASBStreamBinder"); + + jobject modeObj; + ThrowIfNot( + aace::jni::aasb::JMode::checkType(aasbStreamBinder->getAASBStream()->getMode(), &modeObj), "invalidMode"); + + return modeObj; + } catch (const std::exception& ex) { + AACE_JNI_ERROR(TAG, "Java_com_amazon_aace_aasb_AASBStream_getMode", ex.what()); + return nullptr; + } +} +} diff --git a/extensions/aasb/platforms/android/modules/aasb/src/main/java/com/amazon/aace/aasb/AASB.java b/extensions/aasb/platforms/android/modules/aasb/src/main/java/com/amazon/aace/aasb/AASB.java new file mode 100644 index 000000000..9b6a06270 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/src/main/java/com/amazon/aace/aasb/AASB.java @@ -0,0 +1,50 @@ +/* + * Copyright 2017-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. + */ + +package com.amazon.aace.aasb; + +import com.amazon.aace.core.PlatformInterface; + +/** + * The @c AASB class should be extended by to provide an implementation of the AASB interface. + */ +abstract public class AASB extends PlatformInterface { + public void messageReceived(String message) {} + + public final void publish(String message) { + publish(getNativeRef(), message); + } + + public final AASBStream openStream(String streamId, AASBStream.Mode mode) { + return openStream(getNativeRef(), streamId, mode); + } + + // NativeRef implementation + final protected long createNativeRef() { + return createBinder(); + } + + final protected void disposeNativeRef(long nativeRef) { + disposeBinder(nativeRef); + } + + // Native Engine JNI methods + private native long createBinder(); + private native void disposeBinder(long nativeRef); + private native void publish(long nativeRef, String message); + private native AASBStream openStream(long nativeRef, String streamId, AASBStream.Mode mode); +} + +// END OF FILE diff --git a/extensions/aasb/platforms/android/modules/aasb/src/main/java/com/amazon/aace/aasb/AASBStream.java b/extensions/aasb/platforms/android/modules/aasb/src/main/java/com/amazon/aace/aasb/AASBStream.java new file mode 100644 index 000000000..3fbb11734 --- /dev/null +++ b/extensions/aasb/platforms/android/modules/aasb/src/main/java/com/amazon/aace/aasb/AASBStream.java @@ -0,0 +1,136 @@ +/* + * Copyright 2017-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. + */ + +package com.amazon.aace.aasb; + +import com.amazon.aace.core.NativeRef; + +public class AASBStream extends NativeRef { + /// An enumeration representing the stream operation mode. + public enum Mode { + /** + * @hideinitializer + */ + READ("READ"), + /** + * @hideinitializer + */ + WRITE("WRITE"), + /** + * @hideinitializer + */ + READ_WRITE("READ_WRITE"); + + /** + * @internal + */ + private String m_name; + + /** + * @internal + */ + private Mode(String name) { + m_name = name; + } + + /** + * @internal + */ + public String toString() { + return m_name; + } + } + ; + + /** + * Reads audio data from the @c AASBStream. Audio data will be available while @c isClosed() returns false. + * + * @param data The buffer where audio data should be copied + * @return The number of bytes read, 0 if the end of stream is reached or data is not currently available, + * or -1 if an error occurred + */ + final public int read(byte[] data) { + return read(getNativeRef(), data, 0, data.length); + } + + /** + * Reads audio data from the @c AASBStream. Audio data will be available while @c isClosed() returns false. + * + * @param data The buffer where audio data should be copied + * @param offset The offset in the buffer where audio data should be copied + * @param size The size of the buffer + * @return The number of bytes read, 0 if the end of stream is reached or data is not currently available, + * or -1 if an error occurred + */ + final public int read(byte[] data, int offset, int size) { + return read(getNativeRef(), data, offset, size); + } + + /** + * Writes data to the @c AASBStream. + * + * @param data The data to be written to the stream + * @return The number of bytes successfully written to the stream or a negative error code + * if data could not be written + */ + final public int write(byte[] data) { + return write(getNativeRef(), data, 0, data.length); + } + + /** + * Writes data to the @c AASBStream. + * + * @param data The data to be written to the stream + * @param offset The offset of the data to be written to the stream + * @param size The number of bytes to be written + * @return The number of bytes successfully written to the stream or a negative error code + * if data could not be written + */ + final public int write(byte[] data, int offset, int size) { + return write(getNativeRef(), data, offset, size); + } + + /** + * @return @c true if the @c AASBStream is closed and no more data is available to read. + */ + final public boolean isClosed() { + return isClosed(getNativeRef()); + } + + /** + * @return permitted stream operation mode. + */ + final public Mode getMode() { + return getMode(getNativeRef()); + } + + // NativeRef implementation + protected long createNativeRef() { + return 0; + } + + protected void disposeNativeRef(long nativeRef) { + disposeBinder(nativeRef); + } + + // Native Engine JNI methods + private native void disposeBinder(long nativeRef); + private native int read(long nativeObject, byte[] data, long offset, long size); + private native int write(long nativeObject, byte[] data, long offset, long size); + private native boolean isClosed(long nativeObject); + private native Mode getMode(long nativeObject); +} + +// END OF FILE diff --git a/extensions/experimental/system-audio/README.md b/extensions/experimental/system-audio/README.md index 7923f7f0b..4de4acb4b 100644 --- a/extensions/experimental/system-audio/README.md +++ b/extensions/experimental/system-audio/README.md @@ -183,3 +183,7 @@ The above example shows how you could provide "Speaker reference" into the engin ## Playlist URL Support The System Audio extension supports playback of playlist URL from media streaming services (such as TuneIn) based on `PlaylistParser` provided by AVS Device SDK. The current supported formats include M3U and PLS. Note that only the first playable entry will be played in the current implementation. Choosing a variant based on stream information or continuing playback of the second or later entry is not supported right now. + +## Debugging System Audio Extension + +If you would like to set breakpoints in AAL, it will be good to extend the state timeout by modifying `SYSTEM_AUDIO_EXTEND_STATE_TIMEOUT` to 1 in `modules/audio/engine/CMakeLists.txt`. Extending the timeout duration (to 300 seconds) allows setting breakpoints in AAL without causing state timeout. \ No newline at end of file diff --git a/extensions/experimental/system-audio/modules/audio/engine/CMakeLists.txt b/extensions/experimental/system-audio/modules/audio/engine/CMakeLists.txt index effbcea00..b70adc59c 100644 --- a/extensions/experimental/system-audio/modules/audio/engine/CMakeLists.txt +++ b/extensions/experimental/system-audio/modules/audio/engine/CMakeLists.txt @@ -13,6 +13,9 @@ find_path(RAPIDJSON_INCLUDE_DIR rapidjson/rapidjson.h CMAKE_FIND_ROOT_PATH_BOTH ) +# For debugging purpose since setting breakpoints in AAL can easily cause state timeout +target_compile_definitions(AACESystemAudioEngine PRIVATE SYSTEM_AUDIO_EXTEND_STATE_TIMEOUT=0) + target_include_directories(AACESystemAudioEngine PUBLIC $ diff --git a/extensions/experimental/system-audio/modules/audio/engine/include/AACE/Engine/SystemAudio/AudioOutputImpl.h b/extensions/experimental/system-audio/modules/audio/engine/include/AACE/Engine/SystemAudio/AudioOutputImpl.h index cd451f6d6..912def12b 100644 --- a/extensions/experimental/system-audio/modules/audio/engine/include/AACE/Engine/SystemAudio/AudioOutputImpl.h +++ b/extensions/experimental/system-audio/modules/audio/engine/include/AACE/Engine/SystemAudio/AudioOutputImpl.h @@ -33,7 +33,7 @@ namespace systemAudio { class AudioOutputImpl : public aace::audio::AudioOutput { public: - ~AudioOutputImpl(); + ~AudioOutputImpl() override; // Factory static std::unique_ptr create( @@ -62,7 +62,7 @@ class AudioOutputImpl : public aace::audio::AudioOutput { bool mutedStateChanged(MutedState state) override; private: - AudioOutputImpl(int moduleId, const std::string& deviceName, const std::string& name); + AudioOutputImpl(int moduleId, std::string deviceName, std::string name); bool initialize(); bool writeStreamToFile(aace::audio::AudioStream* stream, const std::string& path); bool writeStreamToPipeline(); @@ -73,10 +73,10 @@ class AudioOutputImpl : public aace::audio::AudioOutput { void executeStartStreaming(); void executeStopStreaming(); - bool executePrepare(std::shared_ptr stream, bool repeating); + bool executePrepare(const std::shared_ptr& stream, bool repeating); bool executePrepare(const std::string& url, bool repeating); - bool prepareLocked(const std::string& url, std::shared_ptr stream, bool repeating); - void preparePlayer(const std::string& url, std::shared_ptr stream); + bool prepareLocked(const std::string& url, const std::shared_ptr& stream, bool repeating); + void preparePlayer(const std::string& url, const std::shared_ptr& stream); bool executePlay(); bool executeStop(); bool executePause(); @@ -90,6 +90,8 @@ class AudioOutputImpl : public aace::audio::AudioOutput { std::vector parsePlaylistUrl(const std::string& url); + // States ending with 'ing' are intermediate states that are not allowed outside an execute* method. + // That means an execute* method should end with an *ed state by calling waitForState. enum class State { Created, Initialized, @@ -107,7 +109,10 @@ class AudioOutputImpl : public aace::audio::AudioOutput { friend std::ostream& operator<<(std::ostream& stream, State state); bool checkState(std::initializer_list validStates); + bool checkState(State state); void setState(State state); + void setStateLocked(State state); + bool waitForState(State state); int m_moduleId; std::string m_name; @@ -116,7 +121,7 @@ class AudioOutputImpl : public aace::audio::AudioOutput { std::string m_mediaUrl; std::deque m_mediaQueue; bool m_repeating = false; - int64_t m_currentPosition = 0; + std::atomic m_currentPosition{0}; float m_currentVolume = 0.5; MutedState m_currentMutedState = MutedState::UNMUTED; std::string m_tmpFile; @@ -125,7 +130,14 @@ class AudioOutputImpl : public aace::audio::AudioOutput { std::string m_deviceName; State m_state; + std::mutex m_stateMutex; + std::condition_variable m_cvStateChange; + + // Executor to serialize AudioOutput operations alexaClientSDK::avsCommon::utils::threading::Executor m_executor; + + // Executor to serialize gstreamer callbacks + alexaClientSDK::avsCommon::utils::threading::Executor m_executorCallback; }; } // namespace systemAudio diff --git a/extensions/experimental/system-audio/modules/audio/engine/src/AudioOutputImpl.cpp b/extensions/experimental/system-audio/modules/audio/engine/src/AudioOutputImpl.cpp index f76a29904..69c6f3163 100644 --- a/extensions/experimental/system-audio/modules/audio/engine/src/AudioOutputImpl.cpp +++ b/extensions/experimental/system-audio/modules/audio/engine/src/AudioOutputImpl.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include "curl/curl.h" namespace aace { @@ -30,7 +30,7 @@ namespace systemAudio { #define LXT LX(TAG).d("name", m_name) // String to identify log entries originating from this file. -static const std::string TAG("aace.systemAudio.AudioOutputImpl"); +static const char* TAG("aace.systemAudio.AudioOutputImpl"); static constexpr size_t READ_BUFFER_SIZE = 4096; @@ -76,43 +76,83 @@ std::ostream& operator<<(std::ostream& stream, AudioOutputImpl::State state) { return stream; } +bool AudioOutputImpl::checkState(AudioOutputImpl::State state) { + std::unique_lock lock{m_stateMutex}; + return m_state == state; +} + bool AudioOutputImpl::checkState(std::initializer_list validStates) { + std::unique_lock lock{m_stateMutex}; return std::find(validStates.begin(), validStates.end(), m_state) != validStates.end(); } void AudioOutputImpl::setState(State state) { + std::unique_lock lock{m_stateMutex}; + setStateLocked(state); +} + +void AudioOutputImpl::setStateLocked(State state) { AACE_INFO(LXT.d("old", m_state).d("new", state)); m_state = state; + m_cvStateChange.notify_all(); + + switch (m_state) { + case State::Started: + mediaStateChanged(MediaState::PLAYING); + break; + case State::Paused: + case State::Stopped: + mediaStateChanged(MediaState::STOPPED); + break; + case State::Faulted: + // Try stopping the player for any faults + if (m_player) { + aal_player_stop(m_player); + } + mediaError(MediaError::MEDIA_ERROR_INTERNAL_DEVICE_ERROR); + break; + case State::Created: + case State::Initialized: + case State::Preparing: + case State::Prepared: + case State::Starting: + case State::Pausing: + case State::Resuming: + case State::Stopping: + break; + } } -// clang-format off -static aal_listener_t aalListener = { - .on_start = [](void* user_data) { - ReturnIf(!user_data); - auto self = static_cast(user_data); - self->onStart(); - }, - .on_stop = [](aal_status_t reason, void* user_data) { - ReturnIf(!user_data); - auto self = static_cast(user_data); - self->onStop(reason); - }, - .on_almost_done = [](void* user_data) { - ReturnIf(!user_data); - auto self = static_cast(user_data); - self->onAlmostDone(); - }, - .on_data = nullptr, - .on_data_requested = [](void* user_data) { - ReturnIf(!user_data); - auto self = static_cast(user_data); - self->onDataRequested(); +bool AudioOutputImpl::waitForState(State state) { +#if SYSTEM_AUDIO_EXTEND_STATE_TIMEOUT + // setting breakpoints during debugging can easily cause state timeout + constexpr auto WAIT_FOR_STATE_TIMEOUT = std::chrono::seconds(300); +#else + constexpr auto WAIT_FOR_STATE_TIMEOUT = std::chrono::seconds(3); +#endif + + std::unique_lock stateLock{m_stateMutex}; + if (!m_cvStateChange.wait_for(stateLock, WAIT_FOR_STATE_TIMEOUT, [this, state] { + return m_state == State::Faulted || m_state == state; + })) { + AACE_ERROR(LXT.m("waitForStateTimeout").d("state", state)); + + setStateLocked(State::Faulted); + return false; } -}; -// clang-format on + if (m_state != state) { + AACE_ERROR(LXT.d("state", m_state).d("waitForState", state)); + return false; + } + return true; +} -AudioOutputImpl::AudioOutputImpl(const int moduleId, const std::string& deviceName, const std::string& name) : - m_moduleId(moduleId), m_name(name), m_deviceName(deviceName) { +AudioOutputImpl::AudioOutputImpl(const int moduleId, std::string deviceName, std::string name) : + m_moduleId(moduleId), + m_name(std::move(name)), + m_streaming(false), + m_deviceName(std::move(deviceName)), + m_state(State::Created) { } AudioOutputImpl::~AudioOutputImpl() { @@ -162,11 +202,10 @@ bool AudioOutputImpl::writeStreamToFile(aace::audio::AudioStream* stream, const // copy the stream to the file char buffer[READ_BUFFER_SIZE]; - ssize_t bytesRead; ssize_t size = 0; while (!stream->isClosed()) { - bytesRead = stream->read(buffer, READ_BUFFER_SIZE); + ssize_t bytesRead = stream->read(buffer, READ_BUFFER_SIZE); // throw an error if the read failed ThrowIf(bytesRead < 0, "readFromStreamFailed"); @@ -194,7 +233,7 @@ bool AudioOutputImpl::writeStreamToPipeline() { constexpr std::chrono::milliseconds RETRY_INTERVAL(100); char buffer[READ_BUFFER_SIZE]; - ssize_t size; + ssize_t size = 0; while (m_streaming) { size = m_currentStream->read(buffer, READ_BUFFER_SIZE); @@ -234,77 +273,91 @@ bool AudioOutputImpl::writeStreamToPipeline() { } void AudioOutputImpl::onStart() { - m_executor.submit([this] { executeOnStart(); }); + m_executorCallback.submit([this] { executeOnStart(); }); } void AudioOutputImpl::executeOnStart() { - AACE_VERBOSE(LXT); - if (checkState({State::Started})) { - return; // repeated start - } + AACE_INFO(LXT); if (!checkState({ State::Starting, // the first starting State::Resuming, // resuming - State::Stopping, // immediate stop after start?! + State::Faulted, })) { - AACE_WARN(LXT.d("reason", "suspicious state change").d("state", m_state)); + AACE_ERROR(LXT.d("reason", "suspicious state change").d("state", m_state)); + return; } + if (checkState(State::Faulted)) { + AACE_DEBUG(LXT.m("ignore late OnStart")); + return; + } + setState(State::Started); - mediaStateChanged(MediaState::PLAYING); } void AudioOutputImpl::onStop(aal_status_t reason) { - m_executor.submit([this, reason] { executeOnStop(reason); }); + m_executorCallback.submit([this, reason] { executeOnStop(reason); }); } void AudioOutputImpl::onAlmostDone() { int64_t almostDonePosition = aal_player_get_position(m_player); - m_executor.submit([this, almostDonePosition] { m_currentPosition = almostDonePosition; }); + m_executorCallback.submit([this, almostDonePosition] { m_currentPosition = almostDonePosition; }); } void AudioOutputImpl::executeOnStop(aal_status_t reason) { - AACE_VERBOSE(LXT.d("reason", reason)); + AACE_INFO(LXT.d("reason", reason)); if (!checkState({ State::Stopping, // intentional stop State::Pausing, // pause State::Started, // completed - State::Starting, // AAL failed to start - State::Faulted, // Fault during playback + State::Faulted, })) { - AACE_WARN(LXT.d("reason", "suspicious state change").d("state", m_state)); - } - try { - executeStopStreaming(); if (reason == AAL_ERROR) { setState(State::Faulted); - mediaError(MediaError::MEDIA_ERROR_INTERNAL_DEVICE_ERROR); } else { - if (reason == AAL_SUCCESS) { - if (!m_mediaQueue.empty()) { - m_mediaQueue.pop_front(); - } - if (!m_mediaQueue.empty()) { - // play next media item - preparePlayer(m_mediaQueue.front(), nullptr); - if (m_player) { - aal_player_play(m_player); - return; // no state change + AACE_ERROR(LXT.d("reason", "suspicious state change").d("state", m_state)); + } + return; + } + if (checkState(State::Faulted)) { + AACE_DEBUG(LXT.m("ignore late OnStop")); + return; + } + try { + m_executor.submit([this] { executeStopStreaming(); }); + + if (checkState(State::Pausing)) { + setState(State::Paused); + } else if (checkState(State::Stopping)) { + setState(State::Stopped); + } else if (checkState(State::Started)) { + if (reason != AAL_SUCCESS) { + setState(State::Faulted); + return; + } + m_executor + .submit([this]() { + if (!m_mediaQueue.empty()) { + m_mediaQueue.pop_front(); } - } else if (m_repeating && !m_mediaUrl.empty()) { - // play the URL again - if (prepareLocked(m_mediaUrl, nullptr, m_repeating)) { - aal_player_play(m_player); - return; // no state change + if (!m_mediaQueue.empty()) { + // play next media item + preparePlayer(m_mediaQueue.front(), nullptr); + if (m_player) { + aal_player_play(m_player); + return; // no state change + } + } else if (m_repeating && !m_mediaUrl.empty()) { + // play the URL again + if (prepareLocked(m_mediaUrl, nullptr, m_repeating)) { + aal_player_play(m_player); + return; // no state change + } } - } - } - - if (m_state == State::Pausing) { - setState(State::Paused); - } else { - setState(State::Stopped); - } - mediaStateChanged(MediaState::STOPPED); + setState(State::Stopped); + }) + .wait(); + } else { + AACE_ERROR(LXT.m("unexpected state")); } } catch (std::exception& ex) { AACE_ERROR(LXT.d("reason", ex.what())); @@ -335,7 +388,7 @@ void AudioOutputImpl::executeStopStreaming() { } void AudioOutputImpl::onDataRequested() { - m_executor.submit([this]() { executeStartStreaming(); }); + m_executorCallback.submit([this]() { executeStartStreaming(); }); } // @@ -346,19 +399,21 @@ bool AudioOutputImpl::prepare(std::shared_ptr stream, return m_executor.submit([this, stream, repeating] { return executePrepare(stream, repeating); }).get(); } -bool AudioOutputImpl::executePrepare(std::shared_ptr stream, bool repeating) { +bool AudioOutputImpl::executePrepare(const std::shared_ptr& stream, bool repeating) { if (!checkState({ State::Initialized, // new one + State::Prepared, // re-prepare State::Stopped, // completed State::Faulted, // failed last time })) { - AACE_WARN(LXT.d("reason", "suspicious state change").d("state", m_state)); + AACE_ERROR(LXT.d("reason", "invalid state change").d("state", m_state)); + return false; } - bool succeeded; try { - AACE_VERBOSE(LXT.d("encoding", stream->getEncoding()).d("repeating", repeating)); + setState(State::Preparing); + AACE_VERBOSE(LXT.d("encoding", stream->getEncoding()).d("repeating", repeating)); switch (stream->getEncoding()) { case audio::AudioStream::Encoding::UNKNOWN: // Note: We assume the unknown streams are all MP3 formatted @@ -366,11 +421,7 @@ bool AudioOutputImpl::executePrepare(std::shared_ptr s // write the audio stream to a temp file char tmpFile[] = "/tmp/aac_audio_XXXXXX"; int fd = mkstemp(tmpFile); - if (fd < 0) { - AACE_ERROR(LX(TAG).m("mkstemp failed")); - succeeded = false; - break; - } + ThrowIf(fd < 0, "mkstempFailed"); close(fd); ThrowIfNot(writeStreamToFile(stream.get(), tmpFile), "writeStreamToFileFailed"); @@ -379,23 +430,24 @@ bool AudioOutputImpl::executePrepare(std::shared_ptr s AACE_INFO(LXT.m("tempFileRemoved").d("path", m_tmpFile)); } m_tmpFile = tmpFile; - succeeded = prepareLocked("file://" + m_tmpFile, nullptr, repeating); + ThrowIfNot(prepareLocked("file://" + m_tmpFile, nullptr, repeating), "prepareMP3Failed"); break; } case audio::AudioStream::Encoding::LPCM: m_currentStream = stream; - succeeded = prepareLocked("", stream, repeating); + ThrowIfNot(prepareLocked("", stream, repeating), "prepareLPCMFailed"); break; default: Throw("unsupportedStreamEncoding"); } } catch (std::exception& ex) { AACE_WARN(LXT.d("reason", ex.what())); - succeeded = false; + setState(State::Faulted); + return false; } - setState(succeeded ? State::Prepared : State::Faulted); - return succeeded; + setState(State::Prepared); + return true; } bool AudioOutputImpl::prepare(const std::string& url, bool repeating) { @@ -405,10 +457,12 @@ bool AudioOutputImpl::prepare(const std::string& url, bool repeating) { bool AudioOutputImpl::executePrepare(const std::string& url, bool repeating) { if (!checkState({ State::Initialized, // new one + State::Prepared, // re-prepare State::Stopped, // completed State::Faulted, // failed last time })) { - AACE_WARN(LXT.d("reason", "suspicious state change").d("state", m_state)); + AACE_ERROR(LXT.d("reason", "invalid state change").d("state", m_state)); + return false; } bool succeeded = prepareLocked(url, nullptr, repeating); @@ -488,9 +542,8 @@ std::vector AudioOutputImpl::parsePlaylistUrl(const std::string& ur bool AudioOutputImpl::prepareLocked( const std::string& url, - std::shared_ptr stream, + const std::shared_ptr& stream, bool repeating) { - bool succeeded; try { AACE_INFO(LXT.sensitive("url", url).d("repeating", repeating)); @@ -514,22 +567,46 @@ bool AudioOutputImpl::prepareLocked( m_mediaUrl = url; m_repeating = repeating; - - succeeded = true; } catch (std::exception& ex) { AACE_ERROR(LXT.d("reason", ex.what())); - succeeded = false; + return false; } - return succeeded; + return true; } -void AudioOutputImpl::preparePlayer(const std::string& url, std::shared_ptr stream) { +void AudioOutputImpl::preparePlayer(const std::string& url, const std::shared_ptr& stream) { if (m_player) { aal_player_destroy(m_player); m_player = nullptr; } + // clang-format off + static aal_listener_t aalListener = { + .on_start = [](void* user_data) { + ReturnIf(!user_data); + auto *self = static_cast(user_data); + self->onStart(); + }, + .on_stop = [](aal_status_t reason, void* user_data) { + ReturnIf(!user_data); + auto *self = static_cast(user_data); + self->onStop(reason); + }, + .on_almost_done = [](void* user_data) { + ReturnIf(!user_data); + auto *self = static_cast(user_data); + self->onAlmostDone(); + }, + .on_data = nullptr, + .on_data_requested = [](void* user_data) { + ReturnIf(!user_data); + auto *self = static_cast(user_data); + self->onDataRequested(); + } + }; + // clang-format on + // clang-format off aal_attributes_t attr = { .name = m_name.c_str(), @@ -575,24 +652,26 @@ void AudioOutputImpl::preparePlayer(const std::string& url, std::shared_ptrstate = AAL_STATE_SS; break; case GST_MESSAGE_STATE_CHANGED: { - GstState old_state, new_state; - gst_message_parse_state_changed(msg, &old_state, &new_state, NULL); - g_debug( - "%s:%s: changed state from %s to %s.", - ctx->name, - GST_OBJECT_NAME(msg->src), - gst_element_state_get_name(old_state), - gst_element_state_get_name(new_state)); if (GST_MESSAGE_SRC(msg) == GST_OBJECT_CAST(ctx->pipeline)) { + GstState old_state = GST_STATE_NULL, new_state = GST_STATE_NULL, pending_state = GST_STATE_NULL, + next_state = GST_STATE_NULL, target_state = GST_STATE_NULL; + gst_message_parse_state_changed(msg, &old_state, &new_state, &pending_state); + next_state = GST_STATE_NEXT(msg->src); + target_state = GST_STATE_TARGET(msg->src); + g_debug( + "%s:%s: pipeline states: old=%s, new=%s, next=%s, pending=%s, target=%s", + ctx->name, + GST_OBJECT_NAME(msg->src), + gst_element_state_get_name(old_state), + gst_element_state_get_name(new_state), + gst_element_state_get_name(next_state), + gst_element_state_get_name(pending_state), + gst_element_state_get_name(target_state)); + switch (new_state) { case GST_STATE_READY: if (old_state == GST_STATE_NULL) { @@ -217,29 +224,31 @@ static gboolean bus_message_callback(GstBus* bus, GstMessage* msg, gpointer poin } break; case GST_STATE_PAUSED: - if (old_state == GST_STATE_READY || old_state == GST_STATE_PAUSED) { + if (old_state == GST_STATE_READY && pending_state == GST_STATE_PLAYING) { g_debug( - "%s:%s: ignore READY/PAUSED->PAUSED transition", ctx->name, GST_OBJECT_NAME(msg->src)); + "%s:%s: ignore intermediate PAUSED transition before PLAYING", + ctx->name, + GST_OBJECT_NAME(msg->src)); break; - } - g_debug("%s:%s: paused or going to stop", ctx->name, GST_OBJECT_NAME(msg->src)); - if (GST_STATE_NEXT(msg->src) != GST_STATE_READY && ctx->state != AAL_STATE_EOS) { + } else if (old_state == GST_STATE_PAUSED) { + g_debug("%s:%s: ignore seek during PAUSED", ctx->name, GST_OBJECT_NAME(msg->src)); + break; + } else if (next_state == GST_STATE_READY || ctx->state == AAL_STATE_EOS) { g_debug( - "%s:%s: paused: next state=%d", + "%s:%s: ignore intermediate PAUSED transition before READY or EOS", ctx->name, - GST_OBJECT_NAME(msg->src), - GST_STATE_NEXT(msg->src)); - if (ctx->listener && ctx->listener->on_stop) - ctx->listener->on_stop(AAL_PAUSED, ctx->user_data); + GST_OBJECT_NAME(msg->src)); + break; } + if (ctx->listener && ctx->listener->on_stop) ctx->listener->on_stop(AAL_PAUSED, ctx->user_data); break; case GST_STATE_PLAYING: // Seek if any pending position is available if (ctx->pending_position != 0) { aal_player_seek(ctx, ctx->pending_position); ctx->pending_position = 0; - } - if (ctx->listener && ctx->listener->on_start) { + // should not emit on_start for this state change + } else if (ctx->listener && ctx->listener->on_start) { switch (ctx->state) { case AAL_STATE_SS: ctx->listener->on_start(ctx->user_data); @@ -251,9 +260,9 @@ static gboolean bus_message_callback(GstBus* bus, GstMessage* msg, gpointer poin GST_OBJECT_NAME(msg->src), ctx->state); } + GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS( + GST_BIN(ctx->pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "aal_gstreamer_pipeline"); } - GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS( - GST_BIN(ctx->pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "aal_gstreamer_pipeline"); break; default: break; diff --git a/extensions/experimental/system-audio/modules/audio/lib/aal/src/qsa/core.c b/extensions/experimental/system-audio/modules/audio/lib/aal/src/qsa/core.c index 8216d8b4c..5eaef351e 100644 --- a/extensions/experimental/system-audio/modules/audio/lib/aal/src/qsa/core.c +++ b/extensions/experimental/system-audio/modules/audio/lib/aal/src/qsa/core.c @@ -29,7 +29,7 @@ static ssize_t qsa_read_from_write_buffer(aal_qsa_context_t* ctx, uint8_t* buffe if (available > 0) { size = MIN(available, ctx->buffer_size); if (!ringbuf_memcpy_from(buffer, ctx->write_buffer, size)) { - debug("ringbuf_memcpy_from Failed"); + debug("ringbuf_memcpy_from failed"); size = -1; } } @@ -128,7 +128,7 @@ static void* qsa_read_loop(void* argument) { ctx->status.channel = ctx->channel; int r = snd_pcm_plugin_status(ctx->pcm_handle, &ctx->status); if (r != 0) { - debug("failed to get audio status: %d", r); + debug("Failed to get audio status: %d", r); } stop_requested = ctx->stop_requested; @@ -182,26 +182,6 @@ void qsa_play(aal_handle_t handle) { aal_qsa_context_t* ctx = (aal_qsa_context_t*)handle; int r; - memset(&ctx->mixer_group, 0, sizeof(ctx->mixer_group)); - - snd_pcm_channel_setup_t setup = {0}; - setup.channel = ctx->channel; - setup.mixer_gid = &ctx->mixer_group.gid; - r = snd_pcm_plugin_setup(ctx->pcm_handle, &setup); - bail_if_error(r); - - debug("Format %s", snd_pcm_get_format_name(setup.format.format)); - debug("Frag Size %d", setup.buf.block.frag_size); - debug("Total Frags %d", setup.buf.block.frags); - debug("Rate %d", setup.format.rate); - ctx->buffer_size = setup.buf.block.frag_size; - - if (ctx->channel == SND_PCM_CHANNEL_PLAYBACK) { - /* Prepare ring buffer */ - ctx->write_buffer = ringbuf_new(ctx->buffer_size * 10); - bail_if_null(ctx->write_buffer); - } - r = snd_pcm_plugin_prepare(ctx->pcm_handle, ctx->channel); bail_if_error(r); @@ -211,9 +191,7 @@ void qsa_play(aal_handle_t handle) { return; bail: - if (ctx->write_buffer) ringbuf_free(&ctx->write_buffer); - - return; + debug("Failed to player, error = %d", r); } void qsa_stop(aal_handle_t handle) { @@ -227,6 +205,7 @@ void qsa_stop(aal_handle_t handle) { void qsa_destroy(aal_handle_t handle) { aal_qsa_context_t* ctx = (aal_qsa_context_t*)handle; + if (ctx->write_buffer) ringbuf_free(&ctx->write_buffer); if (ctx->mixer_handle) snd_mixer_close(ctx->mixer_handle); if (ctx->pcm_handle) snd_pcm_close(ctx->pcm_handle); free(ctx); @@ -299,7 +278,6 @@ aal_handle_t qsa_create_context(int32_t channel, const aal_attributes_t* attrs, /* Set channel direction before calling plugin_info... */ snd_pcm_channel_info_t channel_info; channel_info.channel = ctx->channel; - debug("snd_pcm_plugin_info"); r = snd_pcm_plugin_info(ctx->pcm_handle, &channel_info); bail_if_error(r); @@ -347,7 +325,6 @@ aal_handle_t qsa_create_context(int32_t channel, const aal_attributes_t* attrs, } params.buf.block.frags_min = 1; - debug("Configure PCM params and ready"); r = snd_pcm_plugin_params(ctx->pcm_handle, ¶ms); bail_if_error(r); @@ -356,10 +333,29 @@ aal_handle_t qsa_create_context(int32_t channel, const aal_attributes_t* attrs, pthread_getschedparam(pthread_self(), &sched_policy, &sched_param); ctx->base_sched_priority = sched_param.sched_priority; + snd_pcm_channel_setup_t setup = {0}; + setup.channel = ctx->channel; + setup.mixer_gid = &ctx->mixer_group.gid; + r = snd_pcm_plugin_setup(ctx->pcm_handle, &setup); + bail_if_error(r); + + debug("Format %s", snd_pcm_get_format_name(setup.format.format)); + debug("Frag Size %d", setup.buf.block.frag_size); + debug("Total Frags %d", setup.buf.block.frags); + debug("Rate %d", setup.format.rate); + ctx->buffer_size = setup.buf.block.frag_size; + + if (ctx->channel == SND_PCM_CHANNEL_PLAYBACK) { + /* Prepare ring buffer */ + ctx->write_buffer = ringbuf_new(ctx->buffer_size * 10); + bail_if_null(ctx->write_buffer); + } + return ctx; bail: debug("Error status: %d", r); + if (ctx->write_buffer) ringbuf_free(&ctx->write_buffer); if (ctx->mixer_handle) snd_mixer_close(ctx->mixer_handle); if (ctx->pcm_handle) snd_pcm_close(ctx->pcm_handle); free(ctx); diff --git a/extensions/experimental/system-audio/modules/audio/lib/aal/src/qsa/player.c b/extensions/experimental/system-audio/modules/audio/lib/aal/src/qsa/player.c index c4e43f85a..177bbd3c5 100644 --- a/extensions/experimental/system-audio/modules/audio/lib/aal/src/qsa/player.c +++ b/extensions/experimental/system-audio/modules/audio/lib/aal/src/qsa/player.c @@ -26,7 +26,6 @@ static aal_handle_t qsa_player_create(const aal_attributes_t* attrs, aal_audio_p static void qsa_player_pause(aal_handle_t handle) { aal_qsa_context_t* ctx = (aal_qsa_context_t*)handle; - debug("Request pause"); pthread_mutex_lock(&ctx->lock); ctx->stop_requested = true; pthread_mutex_unlock(&ctx->lock); @@ -50,7 +49,7 @@ int64_t qsa_player_get_position(aal_handle_t handle) { } int64_t qsa_player_get_duration(aal_handle_t handle) { - debug("player_get_duration not supported"); + debug("qsa_player_get_duration not supported"); return -1; } @@ -66,7 +65,7 @@ int64_t qsa_player_get_num_bytes_buffered(aal_handle_t handle) { } void qsa_player_seek(aal_handle_t handle, int64_t position) { - debug("player_seek not supported"); + debug("qsa_player_seek not supported"); } static bool player_set_volume(aal_qsa_context_t* ctx, double volume) { @@ -89,11 +88,13 @@ static bool player_set_volume(aal_qsa_context_t* ctx, double volume) { return true; bail: - debug("failed to set volume"); + debug("Failed to set volume, error = %d", r); return false; } void qsa_player_set_volume(aal_handle_t handle, double volume) { + debug("Set volume %f", volume); + aal_qsa_context_t* ctx = (aal_qsa_context_t*)handle; if (player_set_volume(ctx, volume)) { @@ -102,6 +103,8 @@ void qsa_player_set_volume(aal_handle_t handle, double volume) { } void qsa_player_set_mute(aal_handle_t handle, bool mute) { + debug("Set mute %d", mute); + aal_qsa_context_t* ctx = (aal_qsa_context_t*)handle; if (mute) { @@ -154,4 +157,4 @@ const aal_player_ops_t qsa_player_ops = { .notify_end_of_stream = qsa_player_notify_end_of_stream, .destroy = qsa_destroy }; -// clang-format on \ No newline at end of file +// clang-format on diff --git a/extensions/loopback-detector/platforms/android/.gitignore b/extensions/loopback-detector/platforms/android/.gitignore new file mode 100644 index 000000000..a14d90f2b --- /dev/null +++ b/extensions/loopback-detector/platforms/android/.gitignore @@ -0,0 +1,78 @@ +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea +.project +.settings + +# Keystore files +# Uncomment the following line if you do not want to check your keystore files in. +#*.jks + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild/ + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Local Gradle +gradlew +gradlew.bat +gradle/ + +# macOS +.DS_Store + + +native-dependencies/ + +# CMake artifacts +CMakeCache.txt +CMakeFiles/ +Makefile +cmake_install.cmake diff --git a/extensions/loopback-detector/platforms/android/modules/loopback-detector/CMakeLists.txt b/extensions/loopback-detector/platforms/android/modules/loopback-detector/CMakeLists.txt new file mode 100644 index 000000000..a708d80aa --- /dev/null +++ b/extensions/loopback-detector/platforms/android/modules/loopback-detector/CMakeLists.txt @@ -0,0 +1,50 @@ +cmake_minimum_required(VERSION 3.6) + +set(CMAKE_CXX_STANDARD 11) + +project(AACELoopbackDetectorAndroid LANGUAGES CXX) + +set(AAC_HOME ${ANDROID_PLATFORM_DIR}/native-build/${ANDROID_ABI}-${ANDROID_PLATFORM}/opt/AAC) +set(CORE_MODULE_DIR ${ANDROID_PLATFORM_DIR}/modules/core) +string(TOLOWER ${CMAKE_BUILD_TYPE} NDK_BUILD_TYPE) + +if(NOT EXISTS ${AAC_HOME}) + message(FATAL_ERROR "AAC build for ${ANDROID_ABI}/${ANDROID_PLATFORM} ${AAC_HOME} does not exist!") +endif() + +### LOOPBACK DETECTOR MODULE ### +include(${AAC_HOME}/share/cmake/AACECore.cmake) +include(${AAC_HOME}/share/cmake/AACEAlexa.cmake) +include(${AAC_HOME}/share/cmake/AACELoopbackDetector.cmake) + +set(LOOPBACK_DETECTOR_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp) +set(LOOPBACK_DETECTOR_SOURCE + ${LOOPBACK_DETECTOR_CPP_DIR}/LoopbackDetectorConfigurationBinder.cpp +) +set(LOOPBACK_DETECTOR_DEPENDENCIES + AACELoopbackDetectorEngine + ${CORE_MODULE_DIR}/build/intermediates/cmake/${NDK_BUILD_TYPE}/obj/${ANDROID_ABI}/libAACECoreAndroid.so +) + +add_library(AACELoopbackDetectorAndroid SHARED + ${LOOPBACK_DETECTOR_SOURCE} +) + +target_include_directories(AACELoopbackDetectorAndroid PUBLIC + ${CORE_MODULE_DIR}/src/main/cpp/include +) + +target_link_libraries(AACELoopbackDetectorAndroid + ${LOOPBACK_DETECTOR_DEPENDENCIES} + android + log +) + +# Copy all AAC dependencies +add_custom_command( + TARGET AACELoopbackDetectorAndroid + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $ +) diff --git a/extensions/loopback-detector/platforms/android/modules/loopback-detector/build.gradle b/extensions/loopback-detector/platforms/android/modules/loopback-detector/build.gradle new file mode 100644 index 000000000..cfbf355b3 --- /dev/null +++ b/extensions/loopback-detector/platforms/android/modules/loopback-detector/build.gradle @@ -0,0 +1,66 @@ +// For generateAbiFiltersDeploy() +apply from: "${project.rootDir}/abifilter.gradle" + +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.6.2' + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 26 + defaultConfig { + minSdkVersion 22 + targetSdkVersion 23 + versionCode 1 + versionName '1.4' + ndk { + abiFilters = generateAbiFiltersDeploy() + } + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=c++_shared', "-DANDROID_PLATFORM_DIR=${project.rootDir}/.." + } + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + jniDebuggable true + } + } + externalNativeBuild { + cmake { + path 'CMakeLists.txt' + } + } + sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + } + dependencies { + api project(":core") + } +} diff --git a/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/AndroidManifest.xml b/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/AndroidManifest.xml new file mode 100644 index 000000000..ea1c13622 --- /dev/null +++ b/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/assets/meta-aac/aace-loopback-detector.json b/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/assets/meta-aac/aace-loopback-detector.json new file mode 100644 index 000000000..57ff63581 --- /dev/null +++ b/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/assets/meta-aac/aace-loopback-detector.json @@ -0,0 +1,5 @@ +{ + "libraries": [{ + "name": "AACELoopbackDetectorAndroid" + }] +} \ No newline at end of file diff --git a/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/cpp/LoopbackDetectorConfigurationBinder.cpp b/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/cpp/LoopbackDetectorConfigurationBinder.cpp new file mode 100644 index 000000000..9b7b8b25e --- /dev/null +++ b/extensions/loopback-detector/platforms/android/modules/loopback-detector/src/main/cpp/LoopbackDetectorConfigurationBinder.cpp @@ -0,0 +1 @@ +static const char* AACE_LOOPBACK_DETECTOR = "aace.engine.loopbackDetector"; \ No newline at end of file diff --git a/modules/address-book/README.md b/modules/address-book/README.md index 9657aa70e..3936b3991 100644 --- a/modules/address-book/README.md +++ b/modules/address-book/README.md @@ -16,8 +16,6 @@ The Address Book module provides a common platform interface that you can implem Both the [Phone Call Controller](../phone-control/README.md) and Alexa-to-Alexa communications implemented via the optional Alexa Communications extension use the phone contacts uploaded via the Address Book module. However, the Contact and Navigation address books are not available for use with any other Alexa devices. -> **Note**: The Address Book module supersedes the [Contact Uploader module](../contact-uploader/README.md), which supports only phone contacts and only online (cloud) use cases. The Contact Uploader module is on the deprecation path beginning with Alexa Auto SDK release 2.0.0, and all new implementations should use the Address Book module instead of the Contact Uploader module. - Your platform implementation is responsible for managing the life cycle of an address book, including: * obtaining consent from end users to allow Alexa to use their data. diff --git a/modules/alexa/README.md b/modules/alexa/README.md index 154716b4f..294b364e0 100644 --- a/modules/alexa/README.md +++ b/modules/alexa/README.md @@ -162,18 +162,6 @@ class MySpeechRecognizer : public aace::alexa::SpeechRecognizer { // For example, when hold-to-talk was used and is now being ended by the button release action stopCapture(); ... - - // If the implementation has configured a wake word engine, this call enables it. - enableWakewordDetection(); - ... - - // If the implementation has configured a wake word engine, this call disables it. - disableWakewordDetection(); - ... - - // To check whether the wake word engine is enabled - isWakewordDetectionEnabled(); - ... }; ... @@ -201,7 +189,7 @@ engine->registerPlatformInterface( mySpeechSynthesizer ); ## Handling Authentication -Every request to Alexa Voice Service (AVS) requires an access token from Logon with Amazon (LWA). The `AuthProvider` platform interface is responsible for acquiring and refreshing access tokens. You can obtain a token from LWA as described in the [LWA documentation](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html) and create a custom implementation of the `AuthProvider` platform interface to acquire access tokens. If you don't want to acquire access tokens yourself, you can use the [Alexa Auto SDK Code-Based-Linking (CBL) module](../cbl/README.md), which implements the CBL mechanism of acquiring access tokens. +Every request to Alexa Voice Service (AVS) requires an access token from Login with Amazon (LWA). The `AuthProvider` platform interface is responsible for acquiring and refreshing access tokens. You can obtain a token from LWA as described in the [LWA documentation](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html) and create a custom implementation of the `AuthProvider` platform interface to acquire access tokens. If you don't want to acquire access tokens yourself, you can use the [Alexa Auto SDK Code-Based-Linking (CBL) module](../cbl/README.md), which implements the CBL mechanism of acquiring access tokens. > **Note:** It is the responsibility of the platform implementation to provide an authorization method for establishing a connection to AVS. The Alexa Auto SDK provides an interface to handle authorization state changes and storing context. In addition, the access and refresh tokens must be cleared when the user logs out, and any time the access and refresh tokens are cleared, users must go through the authentication and authorization process again. @@ -328,11 +316,33 @@ engine->registerPlatformInterface( myAudioPlayer ); ## Handling Playback Controller Events -The Engine provides methods to notify it of media playback control events that happen without voice interaction; for example, a "pause" button press. The platform implementation must inform the Engine of these events using the `PlaybackController` interface any time the user uses on-screen or physical button presses to control media provided by the Engine, such as AudioPlayer source music or `ExternalMediaPlayer` sources, if applicable. +The Engine provides a platform interface `aace::alexa::PlaybackController` for the platform implementation to report on-device transport control button presses for media playing through Alexa. For example, if the user presses the on-screen pause button while listening to Amazon Music through Alexa's `AudioPlayer` interface, the platform implementation calls a `PlaybackController` method to report the button press to the Engine. ->**Note:** PlaybackController events that control `AudioPlayer` report button presses or the equivalent; they do not report changes to the playback state that happen locally first. The Alexa cloud manages the playback queue for `AudioPlayer` content, so each `PlaybackController` event can be considered a request for the cloud to act on the user's local request. The result of the request will come as a method invocation on the `AudioOutput` associated with the channel used for `AudioPlayer`. +>**Note:** `PlaybackController` method calls to manage `AudioPlayer`'s state or playback queue proactively report button presses or the equivalent so that Alexa can react; they do *not* report changes to the playback state that happen locally first. The Alexa cloud manages the playback queue for `AudioPlayer` content, so each `PlaybackController` method call is a request for Alexa to act on the user's local request. The result of the request will come as one or more method invocations on the `AudioOutput` associated with the channel used for `AudioPlayer`. > **Note:** If your implementation needs to stop `AudioPlayer` media in response to system events, such as audio focus transitions to audio playing outside the scope of the Auto SDK, use `PlaybackController` to notify the Engine of such changes. However, bear in mind that the expected usage of the interface does not change when it is used in this use case. + +>**Note:** `PlaybackController` only controls media coming from Alexa, i.e. the `AudioPlayer`. `PlaybackController` should not be used the expectation of controlling playback for non-media Alexa audio sources like `SpeechSynthesizer` or Alexa-aware external media sources integrated with `ExternalMediaAdapter` or `LocalMediaSource`. Additionally, calling a `PlaybackController` method while audio is playing through another Alexa-aware external media source will produce unexpected results and is not recommended. + +Whenever Alexa plays media through `AudioPlayer`, the Engine calls the platform interface method `aace::alexa::TemplateRuntime::renderPlayerInfo()` to provide visual metadata associated with the media that your implementation should render for the end user. The payload of this method includes descriptions of GUI controls to be displayed and the state in which to display them. When the user interacts with these on-screen controls, your implementation must use the `PlaybackController` interface to report the button presses to the Engine. + +The table below maps the controls from the `renderPlayerInfo()` payload to the corresponding calls in `PlaybackController`. + +| RenderPlayerInfo control name | PlaybackController | +|:---|:--- | +| **PlaybackButton** | | +| "PLAY_PAUSE" | PLAY | +| "PLAY_PAUSE" | PAUSE | +| "NEXT" | NEXT | +| "PREVIOUS" | PREVIOUS | +| "SKIP_FORWARD" | SKIP_FORWARD | +| "SKIP_BACKWARD" | SKIP_BACKWARD | +| **PlaybackToggle** | +| "SHUFFLE" | SHUFFLE | +| "LOOP" | LOOP | +| "REPEAT" | REPEAT | +| "THUMBS_UP" | THUMBS_UP | +| "THUMBS_DOWN" | THUMBS_DOWN | To implement a custom handler for the playback controller, extend the `PlaybackController` class: @@ -346,7 +356,7 @@ class MyPlaybackController : public aace::alexa::PlaybackController { } ... - void platformScrubFordGUIButtonPressed(){ //called by the platform on an available GUI button event + void platformScrubForwardGUIButtonPressed(){ //called by the platform on an available GUI button event buttonPressed(PlaybackButton::SKIP_FORWARD); } ... @@ -360,21 +370,7 @@ class MyPlaybackController : public aace::alexa::PlaybackController { // Register the platform interface with the Engine engine->registerPlatformInterface( std::make_shared() ); -``` -### PlayerInfo Only Controls - -The Template Runtime's PlayerInfo template specifies the display of some additional controls. This is for GUI implementations that use the PlayerInfo template as a reference for their GUI displays during `AudioPlayer` media playback. The available controls for the active `AudioPlayer` stream are enabled in the payload of the PlayerInfo template and vary by media service provider. When the toggle button is pressed, another RenderPlayerInfo directive is issued with the new toggle state in the payload to synchronize the display. - -* Buttons - - Skip Forward ( service defined scrub forward ) - - Skip Backward ( service defined scrub backward ) -* Toggles - - Shuffle ( toggle shuffle songs ) - - Loop ( toggle playlist looping ) - - Repeat ( toggle repeat current media once ) - - Thumbs Up ( toggle thumbs up state ) - - Thumbs Down ( toggle thumbs down state ) - +``` ## Handling Equalizer Control @@ -413,6 +409,8 @@ You can programmatically generate Equalizer Controller configuration with detail ``` // For example, 2 supported bands with amplitude gains ranging from -8dB to +8dB, each with a default of 0dB + +``` auto eqConfig = aace::alexa::config::AlexaConfiguration::createEqualizerControllerConfig( {EqualizerBand::BASS, EqualizerBand::TREBLE}, -8, @@ -421,6 +419,7 @@ auto eqConfig = aace::alexa::config::AlexaConfiguration::createEqualizerControll engine->configure( { //other config objects..., eqConfig, ... } ); ... +``` To implement a custom handler for Equalizer Controller extend the `EqualizerController` class: @@ -508,7 +507,7 @@ engine->registerPlatformInterface( std::make_shared() ); ``` >**Note:** In the case of lists, it is the responsibility of the platform implementation to handle pagination. Alexa sends down the entire list as a JSON response and starts reading out the first five elements of the list. At the end of the first five elements, Alexa prompts the user whether or not to read the remaining elements from the list. If the user chooses to proceed with the remaining elements, Alexa sends down the entire list as a JSON response but starts reading from the sixth element onwards. -## Handling External Media Application Sources +## Handling External Media Apps The External Media Player (EMP) Adapter allows you to declare and use external media application sources in your application. In order to interface with the EMP Adapter, you must use one of the following: @@ -531,22 +530,51 @@ When advised by your SA or Partner Manager, configure the External Media Player You must register and implement each ExternalMediaAdapter (along with its associated external client or library). After the engine establishes a connection to the Alexa service, you can run discovery to validate each external media application. You can report discovered external media players by calling `reportDiscoveredPlayers()` at any point during runtime. When the Alexa service recognizes the player, you will get a call to the `authorize()` method including the player's authorization status. Both the `reportDiscoveredPlayers()` method and the `authorize()` method can contain one or more players in their JSON payloads. Validating the application enables Alexa to exercise playback control over the registered source type. -You must call the following interface methods when the media application events occur: - -* The `playerEvent()` method informs the cloud of the player event to maintain synchronization. -* The `playerError()` method informs the cloud of a player error and should be handled in the same way as the `playerEvent()` method. - The `login()` and `logout()` methods inform AVS of login state changes, if applicable. If your application has the ability to handle cloud-based login and logout, you should also call the `loginComplete()` and `logoutComplete()` methods where appropriate. When the user makes an Alexa voice request (for example, "Play Spotify"), the `play()` method is invoked. This method contains various parameters, including the player id of the player to which the playback information should be routed. Whether through voice or GUI event, the `playControl()` method is called with the relevant `PlayControlType`. Similar to `play()` the control should be routed to the appropriate player. -The `PlaybackController` APIs control playback of an `ExternalMediaAdapter` implementation such as a media app connection client when it is the player in focus. This is useful in scenarios such as when the external app is playing, but its own GUI is not displayed, and you wish to use the same GUI to control the external app as traditional Alexa-managed music that plays through the `AudioPlayer` interface. - -The Alexa client tracks the focus via the `playerEvent()` and `playerError()` methods in addition to successful calls to `play()` and `playControl()`. If the external media application obtains Alexa client focus in some way other than via Alexa interaction (for example via external GUI navigation), you can call the `setFocus()` method to force the Alexa client's focus state. Additional calls to `setFocus()` are redundant, but should not have adverse effects. +The `PlayControlType` is determined by player's `supportedOperations`, which are specified by your implementation in the return value of `getState()`. -`PlayControlType` is sent corresponding to the player's `supportedOperations`. The `supportedOperations` are specified in the `getState()` interface. +The `ExternalMediaAdapter` interface provides methods `playerEvent()` and `playerError()` for your implementation to report events regarding the state of the playback session managed by your external player. Even though your player manages its own playback, including reacting to on-device transport control button presses from the user and reacting appropriately to other non-Alexa audio events on the system, the `playerEvent()` and `playerError()` calls provide important information to the Engine: + +1. The Engine may use calls to these methods to synchronize the state of your player’s playback session with Alexa. + +2. The Engine may react to these calls according to the event name specified to update its internal view of your player’s state. Particular event names indicate if the player is focused on the system (meaning it has an active playback session) or if it is un-focused (meaning it is not in use and is brought into use only by further on-device interaction by the user or a user voice request to Alexa). The Engine uses this information to sync its internal focus management. + +The tables below describe each supported event name and what it means to the Engine. Usage of these events depends on the particular type of player controlled by the `ExternalMediaAdapter` instance, so contact your Solutions Architect (SA) or Partner Manager for guidance regarding supported embedded and external app solutions. + +| playerEvent() event name | Description | +|:--|:--| +| "PlaybackSessionStarted" | A new playback session has started, either from a GUI interaction or as a result of a user voice request to Alexa. The Engine considers the player active and in focus (although it may or may not yet be playing). | +| "PlaybackStarted" | During an active session, the player has started to play or resumed from a paused state. The Engine considers the player active and in focus. | +| "TrackChanged" | During an active session, one track has ended and another has started. The Engine uses this primarily for state reporting. | +| "PlaybackNext" | During an active session, the player skipped from one track to the next track, either as a result of a GUI interaction or a user voice request to Alexa. The Engine uses this primarily for state reporting. | +| "PlaybackPrevious" | During an active session, the player skipped from one track to the previous track, either as a result of a GUI interaction or a user voice request to Alexa. The Engine uses this primarily for state reporting. | +| "PlayModeChanged" | During an active session, some user setting for the track or playback session changed, such as the favorite setting or the shuffle mode. The Engine uses this primarily for state reporting.| +| "PlaybackStopped" | During an active session, the player has paused or stopped, either as a result of a GUI interaction or a user voice request to Alexa. The Engine considers the player active and in focus, just not currently playing. User voice requests to resume still control the player. | +| "PlaybackSessionEnded" | An active playback session has ended. The player should no longer be playing or playable until a new session is started by GUI interaction or user voice request to Alexa. The Engine considers the player inactive and no longer in focus. | + +| playerError() event name | Description | +|:--|:--| +| "INTERNAL\_ERROR" | Any fatal player error has occured +| "UNKNOWN\_ERROR" | An unknown error occured +| "UNPLAYABLE\_BY\_AUTHORIZATION" | The media couldn't be played due to an unauthorized account +| "UNPLAYABLE\_BY\_STREAM\_CONCURRENCY" | The media couldn't be played due to the number of accounts currently streaming +| "UNPLAYABLE\_BY\_ACCOUNT" | The media couldn't be played due to the account type +| "UNPLAYABLE\_BY\_REGION" | The media couldn't be played due to the current region +| "UNPLAYABLE\_BY\_PARENTAL\_CONTROL" | The media couldn't be played due to parental settings +| "UNPLAYABLE\_BY\_SUBSCRIPTION" | The media couldn't be played due to the subscription type +| "OPERATION\_REJECTED\_UNINTERRUPTIBLE" | The operation could not be performed due to non interruptible media +| "OPERATION\_REJECTED\_END\_OF\_QUEUE" | The operation could not be performed due to the end of media being reached +| "OPERATION\_UNSUPPORTED" | The operation was not supported +| "OPERATION\_REJECTED\_SKIP\_LIMIT" | The operation failed because a skip limit was reached +| "PLAYER\_UNKNOWN" | An unknown player was detected +| "PLAYER\_NOT\_FOUND" | The player was not discovered +| "PLAYER\_CONNECTION\_REJECTED" | The connection to the player failed +| "PLAYER\_CONNECTION\_TIMEOUT" | The connection to the player timed out The `seek()` and `adjustSeek()` methods are invokable via Alexa if the currently in-focus external player supports them. `seek()` specifies an absolute offset, whereas `adjustSeek()` specifies a relative offset. @@ -558,44 +586,44 @@ You construct the `ExternalMediaAdapterState` object using the data taken from t The following table describes the fields comprising a `ExternalMediaAdapterState`, which includes two sub-components: `PlaybackState`, and `SessionState`. -| State | Type | Notes | -| ------------- |:-------------:| -----:| +| State | Type | Required | Notes | +| :------------- |:-------------| :-----| :-----| | **PlaybackState** | -| state | String | "IDLE"/"STOPPED"/"PLAYING" required | -| supportedOperations | SupportedPlaybackOperation[] | (see SupportedOperation) required | -| trackOffset | long | optional | -| shuffleEnabled | boolean | required | -| repeatEnabled | boolean | required | -| favorites | Favorites | FAVORITED/UNFAVORITED/NOT_RATED optional | -| type | String | "ExternalMediaPlayerMusicItem" required | -| playbackSource | String | If available else use local player name. optional| -| playbackSourceId | String | empty | -| trackName | String | If available else use local player name. optional| -| trackId | String | empty | -| trackNumber | String | optional | -| artistName | String | optional | -| artistId | String | empty | -| albumName | String | optional | -| albumId | String | empty | -| tinyURL | String | optional | -| smallURL | String | optional | -| mediumURL | String | optional | -| largeURL | String | optional | -| coverId | String | empty | -| mediaProvider | String | optional | -| mediaType | MediaType | TRACK, PODCAST, STATION, AD, SAMPLE, OTHER required | -| duration | long | optional | +| state | String | Yes | "IDLE"/"STOPPED"/"PLAYING" | +| supportedOperations | SupportedPlaybackOperation[] | Yes | see SupportedOperation | +| trackOffset | long | No | optional | +| shuffleEnabled | boolean | Yes | report shuffle status | +| repeatEnabled | boolean | Yes | report repeat status | +| favorites | Favorites | No | see Favorites | +| type | String | Yes | must be set as "ExternalMediaPlayerMusicItem" | +| playbackSource | String | No | If available else use local player name | +| playbackSourceId | String | No | empty | +| trackName | String | No | If available else use local player name | +| trackId | String | No | empty | +| trackNumber | String | No | optional | +| artistName | String | No | optional | +| artistId | String | No | empty | +| albumName | String | No | optional | +| albumId | String | No | empty | +| tinyURL | String | No | optional | +| smallURL | String | No | optional | +| mediumURL | String | No | optional | +| largeURL | String | No | optional | +| coverId | String | No | empty | +| mediaProvider | String | No | optional | +| mediaType | MediaType | Yes | see MediaType | +| duration | long | No | optional | | **SessionsState** | -| endpointId | String | empty | -| loggedIn | boolean | empty | -| userName | String | empty | -| isGuest | boolean | empty | -| launched | boolean | True if MediaController was successfully connected and MediaControllerCompat.Callback.onSessionDestroyed has not been invoked. | -| active | boolean | Media session state. required | -| accessToken | String | empty | -| tokenRefreshInterval | long | empty | -| playerCookie | String | A player may declare arbitrary information for itself. optional | -| spiVersion | String | "1.0" required | +| endpointId | String | No | empty | +| loggedIn | boolean | No | empty | +| userName | String | No | empty | +| isGuest | boolean | No | empty | +| launched | boolean | Yes | true if the source is enabled, false otherwise | +| active | boolean | Yes | true if the application is in an active state | +| accessToken | String | No | empty | +| tokenRefreshInterval | long | No | empty | +| playerCookie | String | No | A player may declare arbitrary information for itself | +| spiVersion | String | Yes | must be set as "1.0" | `supportedOperations` should be a list of the operations that the external media adapter supports. Below is a list of all possible `supportedOperations`. @@ -623,7 +651,7 @@ SupportedPlaybackOperation.START_OVER ## Handling Local Media Sources -The `LocalMediaSource` interface allows the platform to register a local media source by type (`BLUETOOTH`, `USB`, `LINE_IN`, `AM_RADIO` etc.). Registering a local media source allows playback control of that source via Alexa (e.g. "Alexa, play the CD player") or via button press through the `PlaybackController` interface, if desired. It also enables playback initiation via Alexa by frequency, channel, or preset for relevant source types (e.g. "Alexa, play 98.7 FM"). +The `LocalMediaSource` interface allows the platform to register a local media source by type (`BLUETOOTH`, `USB`, `AM_RADIO`, `FM_RADIO`, `SATELLITE_RADIO`, `LINE_IN`, `COMPACT_DISC`, `SIRIUS_XM`, `DAB`). Registering a local media source allows playback control of that source via Alexa (e.g. "Alexa, play the CD player"). It also enables playback initiation via Alexa by frequency, channel, or preset for relevant source types (e.g. "Alexa, play 98.7 FM"). The following is an example of registering a CD player local media source using type `Source.COMPACT_DISC`: @@ -647,7 +675,7 @@ class MyCDLocalMediaSource : public aace::alexa::LocalMediaSource { ... ``` -The `play()` method is called when Alexa invokes play by `ContentSelector` type (`FREQUENCY`, `CHANNEL`, `PRESET`) for a radio local media source (`AM_RADIO`, `FM_RADIO`, `SIRIUS_XM`). The `payload` is a string that depends on the `ContentSelector` type and local media `Source` type. +The `play()` method is called when Alexa invokes play by `ContentSelector` type (`FREQUENCY`, `CHANNEL`, `PRESET`) for a radio local media source (`AM_RADIO`, `FM_RADIO`, `SIRIUS_XM`). The `payload` is a string that depends on the `ContentSelector` type and local media `Source` type (e.g., "1", "98.7 FM HD 1"). ``` bool play( ContentSelector type, std::string payload ) override { @@ -658,7 +686,7 @@ bool play( ContentSelector type, std::string payload ) override { The table below provides details about the supported `ContentSelector` types based on `Source` type: | Source type | Supported content selector(s) | -|------|---------|---|---| +|:------|:---------| | FM | FREQUENCY, PRESET | | AM | FREQUENCY, PRESET | | SXM | CHANNEL, PRESET | @@ -669,7 +697,7 @@ The `play()` method will not be invoked if a source cannot handle the specified >**Note:** Cases in which a preset is requested but the source is unknown are handled by the `GlobalPreset` interface. See [Handling Global Presets](#handling-global-presets) for details. -The `playControl()` method is called with a `PlayControlType`(e.g. `RESUME`, `PAUSE`, `NEXT`, `SHUFFLE`, `REPEAT` etc.) when either Alexa or the GUI (using the `PlaybackController` APIs) invokes a playback control on the local media source. +The `playControl()` method is called with a `PlayControlType`(`RESUME`, `PAUSE`, `STOP`, `NEXT`, `PREVIOUS`, `START_OVER`, `FAST_FORWARD`, `REWIND`, `ENABLE_REPEAT_ONE`, `ENABLE_REPEAT`, `DISABLE_REPEAT`, `ENABLE_SHUFFLE`, `DISABLE_SHUFFLE`, `FAVORITE`, `UNFAVORITE`) when Alexa invokes a playback control on the local media source. ``` bool playControl( PlayControlType controlType ) override { @@ -709,7 +737,11 @@ public boolean mutedStateChanged( MutedState state ) { ... ``` -Whether or not you call `setFocus()` depends on the desired client behavior. When playback of a source is requested via Alexa, the focus is handled internally. However, if the focus on a source is changed externally, you should use `setFocus()` to notify Alexa of that change. Additional calls to `setFocus()` are redundant, but should not have adverse effects. +Use the `setFocus()` method to tell the Engine that the `LocalMediaSource` instance has become focused or un-focused on the system. The Engine already considers a source active when the user requests Alexa to play the source by name, so this should only be used when the state of the source is changed by a user GUI interaction. + +Call `setFocus(true)` to tell the Engine that the user brought the `LocalMediaSource` to the foreground with a GUI interaction. The Engine considers the source to have an active playback session, although it may or may not be playing yet. If no other Alexa media source is playing, utterances such as “Alexa, play” target this source. + +Call `setFocus(false)` to tell the Engine that the `LocalMediaSource` is no longer in the foreground, typically as a result of a GUI interaction from the user after the player is stopped. The Engine considers the source inactive, and starting a new playback session for the source requires a further GUI interaction or user voice request to Alexa that targets the source by name. ``` class MyFMRadioLocalMediaSource : public aace::alexa::LocalMediaSource { @@ -720,12 +752,27 @@ class MyFMRadioLocalMediaSource : public aace::alexa::LocalMediaSource { // FM Radio begins playback independently of Alexa setFocus( true ); // or setFocus(); ... - // FM Radio should not be in focus anymore with Alexa-independant behavior( non playback controller or voice interaction ) + // Notify Alexa that FM Radio is no longer the active media source on the device as a result of platform driven change setFocus( false ); ... ``` +>**Note:** Only one `LocalMediaSource` type can have Alexa focus at a time. + +The `LocalMediaSource` interface provides methods `playerEvent()` and `playerError()` for your implementation to report events regarding the state of the playback session managed by your local source. Even though your local source manages its own playback, including reacting to on-device transport control button presses from the user and reacting appropriately to other non-Alexa audio events on the system, the `playerEvent()` and `playerError()` calls in conjunction with `setFocus()` provide important information to the Engine: + +1. The Engine may use calls to these methods to synchronize the state of your local source's playback session with Alexa. + +2. The Engine may react to these calls according to the event name specified to update its internal view of your local source's state. Particular event names indicate if the source is focused on the system (meaning it has an active playback session) or if it is un-focused (meaning it is not in use and is brought into use only by further on-device interaction by the user or a user voice request to Alexa). The Engine uses this information to sync its internal focus management. -`playerError()` and `playerEvent()` are not used currently for local media sources; however, calling them should have no adverse effect. + +| playerEvent() event name | Description | +|:--|:--| +| "PlaybackStarted" | During an active session, the local source has started to play or resumed from a paused state. The Engine considers the source active and in focus. | +| "PlaybackStopped" | During an active session, the player stopped, either as a result of a GUI interaction or a user voice request to Alexa. | + +| playerError() event name | Description | +|:--|:--| +| "INTERNAL\_ERROR" | During an active session, an internal error caused playback to stop. The `getState()` method is called to synchronize the local player's state with the cloud. This method is used to maintain correct state during startup and with every Alexa request. All relevant information should be added to the `LocalMediaSourceState` and returned. @@ -742,44 +789,44 @@ LocalMediaSourceState getState() override { The following table describes the fields comprising a `LocalMediaSourceState`, which includes two sub-components: `PlaybackState` and `SessionState`. -| State | Type | Notes | -| ------------- |:-------------:| -----:| +| State | Type | Required | Notes | +| :------------- |:-------------| :-----| :-----| | **PlaybackState** | -| state | String | "IDLE"/"STOPPED"/"PLAYING" required | -| supportedOperations | SupportedPlaybackOperation[] | (see SupportedPlaybackOperation) required | -| trackOffset | long | optional | -| shuffleEnabled | boolean | optional | -| repeatEnabled | boolean | optional | -| favorites | Favorites | FAVORITED/UNFAVORITED/NOT_RATED optional | -| type | String | "ExternalMediaPlayerMusicItem" required | -| playbackSource | String | If available else use local player name. optional| -| playbackSourceId | String | empty | -| trackName | String | If available else use local player name. optional | -| trackId | String | empty | -| trackNumber | String | optional | -| artistName | String | optional | -| artistId | String | empty | -| albumName | String | optional | -| albumId | String | empty | -| tinyURL | String | optional | -| smallURL | String | optional | -| mediumURL | String | optional | -| largeURL | String | optional | -| coverId | String | empty | -| mediaProvider | String | optional | -| mediaType | MediaType | TRACK, PODCAST, STATION, AD, SAMPLE, OTHER optional | -| duration | long | optional | +| state | String | Yes | "IDLE"/"STOPPED"/"PLAYING" | +| supportedOperations | SupportedPlaybackOperation[] | Yes | see SupportedPlaybackOperation | +| trackOffset | long | No | optional | +| shuffleEnabled | boolean | No | optional | +| repeatEnabled | boolean | No | optional | +| favorites | Favorites | No | see Favorites | +| type | String | Yes | must be set to "ExternalMediaPlayerMusicItem" | +| playbackSource | String | No | If available else use local player name | +| playbackSourceId | String | No | optional | +| trackName | String | No | If available else use local player name | +| trackId | String | No | empty | +| trackNumber | String | No | optional | +| artistName | String | No | optional | +| artistId | String | No | empty | +| albumName | String | No | optional | +| albumId | String | No | empty | +| tinyURL | String | No | optional | +| smallURL | String | No | optional | +| mediumURL | String | No | optional | +| largeURL | String | No | optional | +| coverId | String | No | empty | +| mediaProvider | String | No | optional | +| mediaType | MediaType | No | see MediaType | +| duration | long | No | optional | | **SessionsState** | -| endpointId | String | empty | -| loggedIn | boolean | empty | -| userName | String | empty | -| isGuest | boolean | empty | -| launched | boolean | empty | -| active | boolean | empty | -| accessToken | String | empty | -| tokenRefreshInterval | long | empty | -| playerCookie | String | A player may declare arbitrary information for itself. optional | -| spiVersion | String | "1.0" required | +| endpointId | String | No | empty | +| loggedIn | boolean | No | empty | +| userName | String | No | empty | +| isGuest | boolean | No | empty | +| launched | boolean | Yes | true if the source is enabled, false otherwise | +| active | boolean | No | empty | +| accessToken | String | No | empty | +| tokenRefreshInterval | long | No | empty | +| supportedContentSelectors | ContentSelector[] | No | see ContentSelector | +| spiVersion | String | Yes | must be "1.0" | `supportedOperations` should list the operations which the local media source supports. Below is a list of all `SupportedPlaybackOperation`: @@ -808,11 +855,13 @@ LocalMediaSource::SupportedPlaybackOperation::START_OVER `supportedContentSelectors` should list the content selection types the local source can support. Below is a table of valid pairs. | Source | Supportable `ContentSelector` Values | -|---|---| +|:---|:---| | `AM_RADIO` | `PRESET`, `FREQUENCY` | | `FM_RADIO` | `PRESET`, `FREQUENCY` | | `SIRIUS_XM` | `PRESET`, `CHANNEL` | +`launched` specifies whether the source is enabled. The player is disabled for use with Alexa when this value is false, such as when a removable source like USB is disconnected. + ## Handling Global Presets The Global Preset interface handles "Alexa, play preset \\" utterances without requiring that users explicitly say which local media source (`AM_RADIO`, `FM_RADIO`, `SIRIUS_XM`) actually corresponds to the preset. diff --git a/modules/alexa/cmake/FindAVS.cmake b/modules/alexa/cmake/FindAVS.cmake index 0b54f011c..0d597e696 100644 --- a/modules/alexa/cmake/FindAVS.cmake +++ b/modules/alexa/cmake/FindAVS.cmake @@ -52,6 +52,7 @@ find_library(AVS_SPEAKER_MANAGER_LIBRARY SpeakerManager) find_library(AVS_SPEECH_ENCODER_LIBRARY SpeechEncoder) find_library(AVS_SPEECH_SYNTHESIZER_LIBRARY SpeechSynthesizer) find_library(AVS_SQLITE_STORAGE_LIBRARY SQLiteStorage) +find_library(AVS_SYNCHRONIZE_STATE_SENDER_LIBRARY SynchronizeStateSender) find_library(AVS_TEMPLATE_RUNTIME_LIBRARY TemplateRuntime) set(AVS_LIBRARIES @@ -90,6 +91,7 @@ set(AVS_LIBRARIES ${AVS_SPEECH_ENCODER_LIBRARY} ${AVS_SPEECH_SYNTHESIZER_LIBRARY} ${AVS_SQLITE_STORAGE_LIBRARY} + ${AVS_SYNCHRONIZE_STATE_SENDER_LIBRARY} ${AVS_TEMPLATE_RUNTIME_LIBRARY} ) diff --git a/modules/alexa/engine/CMakeLists.txt b/modules/alexa/engine/CMakeLists.txt index 59c8289d9..92390a8f2 100644 --- a/modules/alexa/engine/CMakeLists.txt +++ b/modules/alexa/engine/CMakeLists.txt @@ -19,6 +19,7 @@ set(HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/Alexa/AlexaEngineClientObserver.h ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/Alexa/AlexaMetrics.h ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/Alexa/AudioChannelEngineImpl.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/Alexa/AudioDuckingConfig.h ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/Alexa/AudioPlayerEngineImpl.h ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/Alexa/DiscoveredPlayerSenderInterface.h ${CMAKE_CURRENT_SOURCE_DIR}/include/AACE/Engine/Alexa/EndpointBuilderFactory.h diff --git a/modules/alexa/engine/include/AACE/Engine/Alexa/AlexaEngineService.h b/modules/alexa/engine/include/AACE/Engine/Alexa/AlexaEngineService.h index 13c132794..4e0b08738 100644 --- a/modules/alexa/engine/include/AACE/Engine/Alexa/AlexaEngineService.h +++ b/modules/alexa/engine/include/AACE/Engine/Alexa/AlexaEngineService.h @@ -266,7 +266,6 @@ class AlexaEngineService bool& sync, const SetPropertyResultCallback& callbackFunction); std::string getProperty_locale(); - std::string getProperty_supportedLocales(); std::string getProperty_countrySupported(); std::string getProperty_timezone(); bool setProperty_wakewordEnabled( diff --git a/modules/alexa/engine/include/AACE/Engine/Alexa/AudioChannelEngineImpl.h b/modules/alexa/engine/include/AACE/Engine/Alexa/AudioChannelEngineImpl.h index 53b28aeea..d007fdfe7 100644 --- a/modules/alexa/engine/include/AACE/Engine/Alexa/AudioChannelEngineImpl.h +++ b/modules/alexa/engine/include/AACE/Engine/Alexa/AudioChannelEngineImpl.h @@ -49,7 +49,9 @@ class AudioChannelEngineImpl using MediaError = aace::audio::AudioOutputEngineInterface::MediaError; public: - AudioChannelEngineImpl(alexaClientSDK::avsCommon::sdkInterfaces::ChannelVolumeInterface::Type channelVolumeType); + AudioChannelEngineImpl( + alexaClientSDK::avsCommon::sdkInterfaces::ChannelVolumeInterface::Type channelVolumeType, + std::string name = ""); virtual bool initializeAudioChannel( std::shared_ptr audioOutputChannel, @@ -157,6 +159,7 @@ class AudioChannelEngineImpl friend std::ostream& operator<<(std::ostream& stream, const PendingEventState& state); private: + std::string m_name; std::shared_ptr m_audioOutputChannel; alexaClientSDK::avsCommon::sdkInterfaces::ChannelVolumeInterface::Type m_channelVolumeType; @@ -193,9 +196,6 @@ class AudioChannelEngineImpl // mutex for blocking setSource calls std::mutex m_mutex; - - // wait condition - std::condition_variable m_trigger; }; inline std::ostream& operator<<(std::ostream& stream, const AudioChannelEngineImpl::PendingEventState& state) { diff --git a/modules/alexa/engine/include/AACE/Engine/Alexa/AudioDuckingConfig.h b/modules/alexa/engine/include/AACE/Engine/Alexa/AudioDuckingConfig.h new file mode 100644 index 000000000..0a952a2f1 --- /dev/null +++ b/modules/alexa/engine/include/AACE/Engine/Alexa/AudioDuckingConfig.h @@ -0,0 +1,277 @@ +/* + * 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 AACE_ENGINE_ALEXA_AUDIODUCKINGCONFIG_H +#define AACE_ENGINE_ALEXA_AUDIODUCKINGCONFIG_H + +namespace aace { +namespace engine { +namespace alexa { + +static const std::string& configurationJsonDuckingNotSupported = R"( { + "virtualChannels":{ + "audioChannels" : [ + { + "name" : "Earcon", + "priority" : 250 + } + ], + "visualChannels" : [ + + ] + }, + "interruptModel" : { + "Dialog" : { + }, + "Communications" : { + "contentType": + { + "MIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + } + } + }, + "NONMIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + } + } + } + } + }, + "Alert" : { + "contentType" : + { + "MIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + }, + "Communications" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE", + "NONMIXABLE" : "MUST_PAUSE" + } + } + } + } + } + }, + "Content" : { + "contentType" : + { + "MIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + }, + "Communications" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE", + "NONMIXABLE" : "MUST_PAUSE" + } + }, + "Alert" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + }, + "Earcon" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE", + "NONMIXABLE" : "MUST_PAUSE" + } + } + } + }, + "NONMIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + }, + "Communications" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE", + "NONMIXABLE" : "MUST_PAUSE" + } + }, + "Alert" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + }, + "Earcon" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE", + "NONMIXABLE" : "MUST_PAUSE" + } + } + } + } + } + } + } +})"; + +static const std::string& configurationJsonSupportsDucking = R"( { + "virtualChannels":{ + "audioChannels" : [ + { + "name" : "Earcon", + "priority" : 250 + } + ], + "visualChannels" : [ + + ] + }, + "interruptModel" : { + "Dialog" : { + }, + "Communications" : { + "contentType": + { + "MIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MAY_DUCK" + } + } + } + }, + "NONMIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + } + } + } + } + }, + "Alert" : { + "contentType" : + { + "MIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MAY_DUCK" + } + }, + "Communications" : { + "incomingContentType" : { + "MIXABLE" : "MAY_DUCK", + "NONMIXABLE" : "MAY_DUCK" + } + } + } + } + } + }, + "Content" : { + "contentType" : + { + "MIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MAY_DUCK" + } + }, + "Communications" : { + "incomingContentType" : { + "MIXABLE" : "MAY_DUCK", + "NONMIXABLE" : "MUST_PAUSE" + } + }, + "Alert" : { + "incomingContentType" : { + "MIXABLE" : "MAY_DUCK" + } + }, + "Earcon" : { + "incomingContentType" : { + "MIXABLE" : "MAY_DUCK", + "NONMIXABLE" : "MUST_PAUSE" + } + } + } + }, + "NONMIXABLE" : { + "incomingChannel" : { + "Dialog" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + }, + "Communications" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE", + "NONMIXABLE" : "MUST_PAUSE" + } + }, + "Alert" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE" + } + }, + "Earcon" : { + "incomingContentType" : { + "MIXABLE" : "MUST_PAUSE", + "NONMIXABLE" : "MUST_PAUSE" + } + } + } + } + } + } + } +})"; + +class AudioDuckingConfig { +public: + static std::unique_ptr getConfig(bool supportsDucking = true, const std::string& override = "") { + if (supportsDucking) + if (override.empty()) + return std::unique_ptr(new std::istringstream(configurationJsonSupportsDucking)); + else + return std::unique_ptr(new std::istringstream(override)); + else + return std::unique_ptr(new std::istringstream(configurationJsonDuckingNotSupported)); + } + + AudioDuckingConfig() = delete; +}; + +} // namespace alexa +} // namespace engine +} // namespace aace + +#endif // AACE_ENGINE_ALEXA_AUDIODUCKINGCONFIG_H diff --git a/modules/alexa/engine/include/AACE/Engine/Alexa/ExternalMediaPlayer.h b/modules/alexa/engine/include/AACE/Engine/Alexa/ExternalMediaPlayer.h index 271b59b6e..f43bc7783 100644 --- a/modules/alexa/engine/include/AACE/Engine/Alexa/ExternalMediaPlayer.h +++ b/modules/alexa/engine/include/AACE/Engine/Alexa/ExternalMediaPlayer.h @@ -589,7 +589,7 @@ class ExternalMediaPlayer /// The id of the player which currently has focus. Access to @c m_playerInFocus is protected by @c /// m_inFocusAdapterMutex. - /// TODO: ACSDK-2834 Consolidate m_playerInFocus and m_adapterInFocus. + /// TODO: Consolidate m_playerInFocus and m_adapterInFocus. std::string m_playerInFocus; /// The adapter with the @c m_playerInFocus which currently has focus. Access to @c m_adapterInFocus is @@ -673,9 +673,6 @@ class ExternalMediaPlayer std::unordered_set> m_capabilityConfigurations; - /// Current ContentType Rendering in the AudioPlayer - alexaClientSDK::avsCommon::avs::ContentType m_currentMixability; - /// Current MixingBehavior for the AudioPlayer. alexaClientSDK::avsCommon::avs::MixingBehavior m_mixingBehavior; }; diff --git a/modules/alexa/engine/include/AACE/Engine/Alexa/ExternalMediaPlayerInterface.h b/modules/alexa/engine/include/AACE/Engine/Alexa/ExternalMediaPlayerInterface.h index 63bc366bf..e049542f8 100644 --- a/modules/alexa/engine/include/AACE/Engine/Alexa/ExternalMediaPlayerInterface.h +++ b/modules/alexa/engine/include/AACE/Engine/Alexa/ExternalMediaPlayerInterface.h @@ -49,19 +49,25 @@ class ExternalMediaPlayerInterface { virtual void setCurrentActivity(const alexaClientSDK::avsCommon::avs::PlayerActivity currentActivity) = 0; /** - * Method to set the player in focus after an adapter has acquired the channel. + * Sets the player in focus to the specified player ID and acquires or + * releases @c FocusManager focus for the channel. * - * @param playerInFocus The business name of the adapter that has currently acquired focus. + * @note This method does not update the @c PlaybackHandlerInterface used by + * the @c PlaybackRouter. + * + * @param playerInFocus The player ID of the adapter that has currently acquired focus. * @param focusAcquire If @c true, acquire the channel and manage the focus state. * If @c false release the channel when the player is the player in focus. */ virtual void setPlayerInFocus(const std::string& playerInFocus, bool focusAcquire) = 0; /** - * Method to set the player in focus after an adapter has acquired the channel. + * Sets the player in focus to the specified player ID and sets the @c PlaybackRouter @c PlaybackHandlerInterface to @c ExternalMediaPlayer. + * The player may or may not be playing already, and if it is playing, the @c FocusManager + * channel should already be acquired for the player. + * * - * @param playerInFocus The business name of the adapter that has currently acquired focus. - * @note This function should not be called during the callback in @c ExternalMediaAdapterInterface. + * @param playerInFocus The player ID of the adapter that has currently acquired focus. */ virtual void setPlayerInFocus(const std::string& playerInFocus) = 0; diff --git a/modules/alexa/engine/include/AACE/Engine/Alexa/SpeechRecognizerEngineImpl.h b/modules/alexa/engine/include/AACE/Engine/Alexa/SpeechRecognizerEngineImpl.h index 46de0566e..58f0c084a 100644 --- a/modules/alexa/engine/include/AACE/Engine/Alexa/SpeechRecognizerEngineImpl.h +++ b/modules/alexa/engine/include/AACE/Engine/Alexa/SpeechRecognizerEngineImpl.h @@ -114,9 +114,8 @@ class SpeechRecognizerEngineImpl // keyword detection bool isWakewordEnabled(); bool isWakewordSupported(); - - bool enableWakewordDetection() override; - bool disableWakewordDetection() override; + bool enableWakewordDetection(); + bool disableWakewordDetection(); // AudioInputProcessorObserverInterface void onStateChanged( diff --git a/modules/alexa/engine/include/AACE/Engine/Alexa/SystemSoundPlayer.h b/modules/alexa/engine/include/AACE/Engine/Alexa/SystemSoundPlayer.h index 24b12a1f0..08416b0ff 100644 --- a/modules/alexa/engine/include/AACE/Engine/Alexa/SystemSoundPlayer.h +++ b/modules/alexa/engine/include/AACE/Engine/Alexa/SystemSoundPlayer.h @@ -90,7 +90,6 @@ class SystemSoundAudioStream : public aace::audio::AudioStream { private: std::shared_ptr m_stream; - alexaClientSDK::avsCommon::utils::MediaType m_mediaType; alexaClientSDK::avsCommon::sdkInterfaces::SystemSoundPlayerInterface::Tone m_tone; bool m_closed; }; diff --git a/modules/alexa/engine/src/AlertsEngineImpl.cpp b/modules/alexa/engine/src/AlertsEngineImpl.cpp index f4229c91d..929e73633 100644 --- a/modules/alexa/engine/src/AlertsEngineImpl.cpp +++ b/modules/alexa/engine/src/AlertsEngineImpl.cpp @@ -27,7 +27,8 @@ AlertsEngineImpl::AlertsEngineImpl( std::shared_ptr alertsPlatformInterface, std::shared_ptr connectionManager) : AudioChannelEngineImpl( - alexaClientSDK::avsCommon::sdkInterfaces::ChannelVolumeInterface::Type::AVS_ALERTS_VOLUME), + alexaClientSDK::avsCommon::sdkInterfaces::ChannelVolumeInterface::Type::AVS_ALERTS_VOLUME, + "Alerts"), m_alertsPlatformInterface(alertsPlatformInterface), m_connectionManager(connectionManager) { } diff --git a/modules/alexa/engine/src/AlexaEngineService.cpp b/modules/alexa/engine/src/AlexaEngineService.cpp index 58495187a..8154e83cf 100644 --- a/modules/alexa/engine/src/AlexaEngineService.cpp +++ b/modules/alexa/engine/src/AlexaEngineService.cpp @@ -23,7 +23,6 @@ #include #include #include