setExposureMode method

  1. @override
Future<Map<String, dynamic>> setExposureMode(
  1. ExposureMode exposureMode, [
  2. double? exposureCompensation
])
override

Set exposure mode and compensation

Implementation

@override
Future<Map<String, dynamic>> setExposureMode(ExposureMode exposureMode, [double? exposureCompensation]) async {
  try {
    if (kDebugMode) {
      debugPrint('QuickQR Scanner: Setting exposure mode to ${exposureMode.value}');
    }

    final arguments = {
      'exposureMode': exposureMode.value,
      if (exposureCompensation != null) 'exposureCompensation': exposureCompensation,
    };

    final result = await methodChannel.invokeMethod<Map<Object?, Object?>>(
      'setExposureMode',
      arguments
    );
    final exposureState = Map<String, dynamic>.from(result ?? {});

    if (kDebugMode) {
      debugPrint('QuickQR Scanner: Exposure mode set - $exposureState');
    }

    return exposureState;
  } on PlatformException catch (e) {
    throw _handlePlatformException(e, 'setExposureMode');
  } catch (e) {
    throw ScannerException(
      ScannerErrorCode.internalError,
      'Failed to set exposure mode: $e',
    );
  }
}