// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // Next MinVersion: 13 module arc.mojom; import "screen_rect.mojom"; [Extensible] enum VoiceInteractionState { NOT_READY = 0, STOPPED, RUNNING }; // Handles voice interaction queries from Android. // Next method ID: 6 // Deprecated method ID: 0 interface VoiceInteractionFrameworkHost { // Returns a fullscreen screenshot of the primary display. // |data| represents the image encoded in JPEG format. [MinVersion=1]CaptureFullscreen@1() => (array data); // Notifies the host that the metalayer has closed or could not open. [MinVersion=2]OnMetalayerClosed@2(); // Enables/disables screenshot taking. [MinVersion=3]SetMetalayerEnabled@3(bool enabled); // Notifies Chrome whether voice interaction session is running. [MinVersion=6]SetVoiceInteractionRunning@4(bool running); // Notifies Chrome the state of voice interaction session. [MinVersion=8]SetVoiceInteractionState@5(VoiceInteractionState state); }; // Indicates voice interaction configuration status. struct VoiceInteractionStatus { // Whether voice interaction is configured during OOBE flow. |false| if // OOBE flow has been skipped. bool configured; // Whether voice interaction service is enabled. bool voice_interaction_enabled; // Whether allow voice interaction service to request screenshot // and screen context. bool context_enabled; }; // Connects with Android system server. // Next method ID: 11 // Deprecated method ID: 4 interface VoiceInteractionFrameworkInstance { Init@0(VoiceInteractionFrameworkHost host_ptr); // Starts the voice interaction session in container. // |homescreen_is_active| is true if the session was invoked when homescreen is active. StartVoiceInteractionSession@1([MinVersion=11] bool homescreen_is_active); // Starts or stops voice interaction session based on current state. // |homescreen_is_active| is true if the session was invoked when homescreen is active. [MinVersion=9] ToggleVoiceInteractionSession@8([MinVersion=11] bool homescreen_is_active); // Starts the voice interaction session in container, with a screen region // selected. [MinVersion=1] StartVoiceInteractionSessionForRegion@2(ScreenRect region); // Shows/hides the metalayer in the container. [MinVersion=1] SetMetalayerVisibility@3([MinVersion=2] bool visible); // Turns on / off voice interaction and ack the setting. [MinVersion=12] SetVoiceInteractionEnabled@10(bool enable) => (); // Turns on / off context for voice interaction in container. This function // controls whether screenshot and view hierarchy information should be sent // to container. [MinVersion=4] SetVoiceInteractionContextEnabled@5(bool enable); // Starts the voice interaction setup wizard in container. [MinVersion=5] StartVoiceInteractionSetupWizard@6(); // Starts the voice interaction setup wizard in container. [MinVersion=10] ShowVoiceInteractionSettings@9(); // Queries voice interaction settings status. [MinVersion=7] GetVoiceInteractionSettings@7() => (VoiceInteractionStatus status); };