/ app / packages / ble_peripheral / lib / src / ble_peripheral_interface.dart
ble_peripheral_interface.dart
  1  import 'dart:typed_data';
  2  
  3  import 'package:ble_peripheral/ble_peripheral.dart';
  4  
  5  abstract class BlePeripheralInterface {
  6    Future initialize();
  7  
  8    Future<bool> isSupported();
  9  
 10    Future<bool> askBlePermission();
 11  
 12    Future<bool?> isAdvertising();
 13  
 14    Future<void> addService(BleService service, {Duration? timeout});
 15  
 16    Future<void> removeService(String serviceId) {
 17      throw UnimplementedError();
 18    }
 19  
 20    Future<void> clearServices() {
 21      throw UnimplementedError();
 22    }
 23  
 24    Future<List<String>> getServices() {
 25      throw UnimplementedError();
 26    }
 27  
 28    Future<void> updateCharacteristic({
 29      required String characteristicId,
 30      required Uint8List value,
 31      String? deviceId,
 32    });
 33  
 34    Future<void> startAdvertising({
 35      required List<String> services,
 36      String? localName,
 37      int? timeout,
 38      ManufacturerData? manufacturerData,
 39      bool addManufacturerDataInScanResponse = false,
 40    });
 41  
 42    Future<void> stopAdvertising();
 43  
 44    /// Callback handlers
 45    void setAdvertisingStatusUpdateCallback(
 46        AdvertisementStatusUpdateCallback callback) {
 47      throw UnimplementedError();
 48    }
 49  
 50    void setBleStateChangeCallback(BleStateCallback callback) {
 51      throw UnimplementedError();
 52    }
 53  
 54    void setBondStateChangeCallback(BondStateCallback callback) {
 55      throw UnimplementedError();
 56    }
 57  
 58    void setCharacteristicSubscriptionChangeCallback(
 59        CharacteristicSubscriptionChangeCallback callback) {
 60      throw UnimplementedError();
 61    }
 62  
 63    void setConnectionStateChangeCallback(
 64        ConnectionStateChangeCallback callback) {
 65      throw UnimplementedError();
 66    }
 67  
 68    void setMtuChangeCallback(MtuChangeCallback callback) {
 69      throw UnimplementedError();
 70    }
 71  
 72    void setReadRequestCallback(ReadRequestCallback callback) {
 73      throw UnimplementedError();
 74    }
 75  
 76    void setServiceAddedCallback(ServiceAddedCallback callback) {
 77      throw UnimplementedError();
 78    }
 79  
 80    void setWriteRequestCallback(WriteRequestCallback callback) {
 81      throw UnimplementedError();
 82    }
 83  }
 84  
 85  typedef AvailableDevicesListener = void Function(
 86      String deviceId, bool isAvailable);
 87  
 88  typedef AdvertisementStatusUpdateCallback = void Function(
 89      bool advertising, String? error);
 90  
 91  typedef BleStateCallback = void Function(bool state);
 92  
 93  typedef BondStateCallback = void Function(String deviceId, BondState bondState);
 94  
 95  typedef CharacteristicSubscriptionChangeCallback = void Function(
 96      String deviceId, String characteristicId, bool isSubscribed, String? name);
 97  
 98  typedef ConnectionStateChangeCallback = void Function(
 99      String deviceId, bool connected);
100  
101  typedef ReadRequestCallback = ReadRequestResult? Function(
102      String deviceId, String characteristicId, int offset, Uint8List? value);
103  
104  typedef ServiceAddedCallback = void Function(String serviceId, String? error);
105  
106  typedef WriteRequestCallback = WriteRequestResult? Function(
107      String deviceId, String characteristicId, int offset, Uint8List? value);
108  
109  typedef MtuChangeCallback = void Function(String deviceId, int mtu);