blob: 8f1831f79cf544747e1139c871f50c5c7efeb612 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:html' as html;
/// Error codes that may occur during the camera initialization,
/// configuration or video streaming.
class CameraErrorCode {
const CameraErrorCode._(this._type);
final String _type;
@override
String toString() => _type;
/// The camera is not supported.
static const CameraErrorCode notSupported =
CameraErrorCode._('cameraNotSupported');
/// The camera is not found.
static const CameraErrorCode notFound = CameraErrorCode._('cameraNotFound');
/// The camera is not readable.
static const CameraErrorCode notReadable =
CameraErrorCode._('cameraNotReadable');
/// The camera options are impossible to satisfy.
static const CameraErrorCode overconstrained =
CameraErrorCode._('cameraOverconstrained');
/// The camera cannot be used or the permission
/// to access the camera is not granted.
static const CameraErrorCode permissionDenied =
CameraErrorCode._('CameraAccessDenied');
/// The camera options are incorrect or attempted
/// to access the media input from an insecure context.
static const CameraErrorCode type = CameraErrorCode._('cameraType');
/// Some problem occurred that prevented the camera from being used.
static const CameraErrorCode abort = CameraErrorCode._('cameraAbort');
/// The user media support is disabled in the current browser.
static const CameraErrorCode security = CameraErrorCode._('cameraSecurity');
/// The camera metadata is missing.
static const CameraErrorCode missingMetadata =
CameraErrorCode._('cameraMissingMetadata');
/// The camera orientation is not supported.
static const CameraErrorCode orientationNotSupported =
CameraErrorCode._('orientationNotSupported');
/// The camera torch mode is not supported.
static const CameraErrorCode torchModeNotSupported =
CameraErrorCode._('torchModeNotSupported');
/// The camera zoom level is not supported.
static const CameraErrorCode zoomLevelNotSupported =
CameraErrorCode._('zoomLevelNotSupported');
/// The camera zoom level is invalid.
static const CameraErrorCode zoomLevelInvalid =
CameraErrorCode._('zoomLevelInvalid');
/// The camera has not been initialized or started.
static const CameraErrorCode notStarted =
CameraErrorCode._('cameraNotStarted');
/// The video recording was not started.
static const CameraErrorCode videoRecordingNotStarted =
CameraErrorCode._('videoRecordingNotStarted');
/// An unknown camera error.
static const CameraErrorCode unknown = CameraErrorCode._('cameraUnknown');
/// Returns a camera error code based on the media error.
///
/// See: https://developer.mozilla.org/en-US/docs/Web/API/MediaError/code
static CameraErrorCode fromMediaError(html.MediaError error) {
switch (error.code) {
case html.MediaError.MEDIA_ERR_ABORTED:
return const CameraErrorCode._('mediaErrorAborted');
case html.MediaError.MEDIA_ERR_NETWORK:
return const CameraErrorCode._('mediaErrorNetwork');
case html.MediaError.MEDIA_ERR_DECODE:
return const CameraErrorCode._('mediaErrorDecode');
case html.MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:
return const CameraErrorCode._('mediaErrorSourceNotSupported');
default:
return const CameraErrorCode._('mediaErrorUnknown');
}
}
}