| // Copyright 2014 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. |
| |
| // Webcam Private API. |
| namespace webcamPrivate { |
| enum PanDirection { stop, right, left }; |
| enum TiltDirection { stop, up, down }; |
| enum Protocol { visca }; |
| enum AutofocusState { on, off }; |
| |
| dictionary ProtocolConfiguration { |
| Protocol? protocol; |
| }; |
| |
| dictionary WebcamConfiguration { |
| double? pan; |
| double? panSpeed; |
| PanDirection? panDirection; |
| double? tilt; |
| double? tiltSpeed; |
| TiltDirection? tiltDirection; |
| double? zoom; |
| AutofocusState? autofocusState; |
| double? focus; |
| }; |
| |
| dictionary Range { double min; double max; }; |
| |
| dictionary WebcamCurrentConfiguration { |
| double pan; |
| double tilt; |
| double zoom; |
| double focus; |
| |
| // Supported range of pan, tilt and zoom values. |
| Range? panRange; |
| Range? tiltRange; |
| Range? zoomRange; |
| Range? focusRange; |
| }; |
| |
| callback WebcamIdCallback = void(DOMString webcamId); |
| callback WebcamConfigurationCallback = |
| void(WebcamCurrentConfiguration configuration); |
| |
| interface Functions { |
| // Open a serial port that controls a webcam. |
| static void openSerialWebcam(DOMString path, ProtocolConfiguration protocol, |
| WebcamIdCallback callback); |
| |
| // Close a serial port connection to a webcam. |
| static void closeWebcam(DOMString webcamId); |
| |
| // Retrieve webcam parameters. Will respond with a config holding the |
| // requested values that are available, or default values for those that |
| // aren't. If none of the requests succeed, will respond with an error. |
| static void get(DOMString webcamId, WebcamConfigurationCallback callback); |
| |
| // A callback is included here which is invoked when the function responds. |
| // No configuration is returned through it. |
| static void set(DOMString webcamId, WebcamConfiguration config, |
| WebcamConfigurationCallback callback); |
| |
| // Reset a webcam. Note: the value of the parameter have no effect, it's the |
| // presence of the parameter that matters. E.g.: reset(webcamId, {pan: 0, |
| // tilt: 1}); will reset pan & tilt, but not zoom. |
| // A callback is included here which is invoked when the function responds. |
| // No configuration is returned through it. |
| static void reset(DOMString webcamId, WebcamConfiguration config, |
| WebcamConfigurationCallback callback); |
| }; |
| }; |