summaryrefslogtreecommitdiff
path: root/lib/control/scanner_controller.dart
blob: fd44307048c068843e5ab04f1ddbcc1b1e2ac8bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import 'dart:async';

import 'package:uvok_epaper_badge/model/device/device.dart';

/// Represents the scan status.
enum ScanStatus { idle, scanning, finished, error }

enum ScanAvailability { unavailable, available }

/// Represents a scanner controller.
/// It emits devices which may be connected to later.
abstract class ScannerController {
  Stream<List<Device>> get scanResultsStream;
  Stream<ScanStatus> get statusStream;
  Stream<ScanAvailability> get availabilityStream;

  Future<void> startScan({Duration timeout});
  Future<void> stopScan();
  void dispose();
}