Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
mobile_scanner
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Navaron Bracke
2023-12-07 16:33:12 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e1ffa1f04095b6102fbf4def641d22f1fe3990c4
e1ffa1f0
1 parent
26c6ba80
implement torch state in ZXing barcode reader
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
0 deletions
lib/src/web/zxing/zxing_barcode_reader.dart
lib/src/web/zxing/zxing_barcode_reader.dart
View file @
e1ffa1f
...
...
@@ -5,9 +5,11 @@ import 'dart:ui';
import
'package:js/js.dart'
;
import
'package:mobile_scanner/src/enums/barcode_format.dart'
;
import
'package:mobile_scanner/src/enums/camera_facing.dart'
;
import
'package:mobile_scanner/src/enums/torch_state.dart'
;
import
'package:mobile_scanner/src/objects/barcode_capture.dart'
;
import
'package:mobile_scanner/src/objects/start_options.dart'
;
import
'package:mobile_scanner/src/web/barcode_reader.dart'
;
import
'package:mobile_scanner/src/web/flashlight_delegate.dart'
;
import
'package:mobile_scanner/src/web/zxing/result.dart'
;
import
'package:mobile_scanner/src/web/zxing/zxing_browser_multi_format_reader.dart'
;
import
'package:web/web.dart'
as
web
;
...
...
@@ -16,6 +18,9 @@ import 'package:web/web.dart' as web;
final
class
ZXingBarcodeReader
extends
BarcodeReader
{
ZXingBarcodeReader
();
/// The internal flashlight delegate.
final
FlashlightDelegate
_flashlightDelegate
=
const
FlashlightDelegate
();
/// The internal barcode reader.
ZXingBrowserMultiFormatReader
?
_reader
;
...
...
@@ -164,6 +169,34 @@ final class ZXingBarcodeReader extends BarcodeReader {
}
@override
Future
<
bool
>
hasTorch
()
{
final
web
.
MediaStream
?
mediaStream
=
_reader
?.
stream
;
if
(
mediaStream
==
null
)
{
return
Future
<
bool
>.
value
(
false
);
}
return
_flashlightDelegate
.
hasFlashlight
(
mediaStream
);
}
@override
Future
<
void
>
setTorchState
(
TorchState
value
)
{
switch
(
value
)
{
case
TorchState
.
unavailable
:
return
Future
<
void
>.
value
();
case
TorchState
.
off
:
case
TorchState
.
on
:
final
web
.
MediaStream
?
mediaStream
=
_reader
?.
stream
;
if
(
mediaStream
==
null
)
{
return
Future
<
void
>.
value
();
}
return
_flashlightDelegate
.
setFlashlightState
(
mediaStream
,
value
);
}
}
@override
Future
<
void
>
start
(
StartOptions
options
,
{
required
web
.
HTMLElement
containerElement
})
async
{
final
int
detectionTimeoutMs
=
options
.
detectionTimeoutMs
;
final
List
<
BarcodeFormat
>
formats
=
options
.
formats
;
...
...
Please
register
or
login
to post a comment