blob: d4b3d8d71d4b9aea43f462be3abcad516bf9875c [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// 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);
// Set home preset for a webcam. A callback is included here which is
// invoked when the function responds.
static void setHome(
DOMString webcamId,
WebcamConfigurationCallback callback);
// Restore the camera's position to that of the specified preset. A callback
// is included here which is invoked when the function responds.
static void restoreCameraPreset(
DOMString webcamId,
double presetNumber,
WebcamConfigurationCallback callback);
// Set the current camera's position to be stored for the specified preset.
// A callback is included here which is invoked when the function responds.
static void setCameraPreset(
DOMString webcamId,
double presetNumber,
WebcamConfigurationCallback callback);
};
};