From 06aefdedc21f97c2159cf062a0987b2870d69d5b Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Mon, 6 Oct 2025 18:46:46 +0200 Subject: [PATCH 01/59] try bluetooth_low_energy --- ios/Podfile.lock | 7 ++ ios/Runner.xcodeproj/project.pbxproj | 7 +- ios/Runner/Info.plist | 12 +-- lib/utils/requirements/ios.dart | 89 +++++++++++++++++++ lib/utils/requirements/platform.dart | 5 +- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 56 ++++++++++++ pubspec.yaml | 1 + .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 12 files changed, 177 insertions(+), 11 deletions(-) create mode 100644 lib/utils/requirements/ios.dart diff --git a/ios/Podfile.lock b/ios/Podfile.lock index f05dfc0..172db7d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,4 +1,7 @@ PODS: + - bluetooth_low_energy_darwin (0.0.1): + - Flutter + - FlutterMacOS - device_info_plus (0.0.1): - Flutter - Flutter (1.0.0) @@ -20,6 +23,7 @@ PODS: - Flutter DEPENDENCIES: + - bluetooth_low_energy_darwin (from `.symlinks/plugins/bluetooth_low_energy_darwin/darwin`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - Flutter (from `Flutter`) - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) @@ -31,6 +35,8 @@ DEPENDENCIES: - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) EXTERNAL SOURCES: + bluetooth_low_energy_darwin: + :path: ".symlinks/plugins/bluetooth_low_energy_darwin/darwin" device_info_plus: :path: ".symlinks/plugins/device_info_plus/ios" Flutter: @@ -51,6 +57,7 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: + bluetooth_low_energy_darwin: 764d8d1ae5abefbcdb839e812b4b25c0061fcf8b device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342 Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 flutter_local_notifications: ff50f8405aaa0ccdc7dcfb9022ca192e8ad9688f diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index e0c039a..0a6da7f 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -97,7 +97,6 @@ 8AA6D129479129F106E2298A /* Pods-RunnerTests.release.xcconfig */, EFDECED99A47773C293F8819 /* Pods-RunnerTests.profile.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -496,7 +495,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftPlay; + PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.ios; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -679,7 +678,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftPlay; + PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.ios; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -702,7 +701,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftPlay; + PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.ios; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 69ec01c..516a410 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -2,6 +2,8 @@ + CADisableMinimumFrameDurationOnPhone + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -24,6 +26,10 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + NSBluetoothAlwaysUsageDescription + SwiftControl uses Bluetooth to connect to accessories. + UIApplicationSupportsIndirectInputEvents + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -41,11 +47,5 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - - NSBluetoothAlwaysUsageDescription - SwiftControl diff --git a/lib/utils/requirements/ios.dart b/lib/utils/requirements/ios.dart new file mode 100644 index 0000000..5bd3217 --- /dev/null +++ b/lib/utils/requirements/ios.dart @@ -0,0 +1,89 @@ +import 'dart:typed_data'; + +import 'package:bluetooth_low_energy/bluetooth_low_energy.dart'; +import 'package:swift_control/utils/requirements/platform.dart'; + +final pm = PeripheralManager(); + +Future startHidPeripheral() async { + // 1) Build characteristics + final hidInfo = GATTCharacteristic.immutable( + uuid: UUID.fromString('2A4A'), + value: Uint8List.fromList([0x11, 0x01, 0x00, 0x02]), + descriptors: [], // HID v1.11, country=0, flags=2 + ); + + final reportMap = GATTCharacteristic.immutable( + uuid: UUID.fromString('2A4B'), + value: Uint8List.fromList([ + // Mouse descriptor bytes … + ]), + descriptors: [], + ); + + final protocolMode = GATTCharacteristic.immutable( + uuid: UUID.fromString('2A4E'), + value: Uint8List.fromList([0x01]), // Report Protocol + descriptors: [], + ); + + // Input report characteristic (notify) + final inputReport = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4D'), + permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], + properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], + descriptors: [ + GATTDescriptor.immutable( + // Report Reference: ID=1, Type=Input(1) + uuid: UUID.fromString('2908'), + value: Uint8List.fromList([0x01, 0x01]), + ), + ], + ); + + // 2) HID service + final hidService = GATTService( + uuid: UUID.fromString('1812'), + isPrimary: true, + characteristics: [hidInfo, reportMap, protocolMode, inputReport], + includedServices: [], + ); + + await pm.addService(hidService); + + // 3) Optional Battery service + await pm.addService( + GATTService( + uuid: UUID.fromString('180F'), + isPrimary: true, + characteristics: [ + GATTCharacteristic.immutable(uuid: UUID.fromString('2A19'), value: Uint8List.fromList([100]), descriptors: []), + ], + includedServices: [], + ), + ); + + final advertisement = Advertisement(name: 'SwiftControl', serviceUUIDs: [UUID.fromString('1812')]); + await pm.startAdvertising(advertisement); +} + +/* +// Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] +Future sendMouseReport(int buttons, int dx, int dy) async { + final data = Uint8List.fromList([buttons & 0x07, dx & 0xFF, dy & 0xFF]); + await pm.notifyCharacteristic(UUID.fromString('1812'), UUID.fromString('2A4D'), data); +}*/ + +class PairRequirement extends PlatformRequirement { + PairRequirement() : super('Pair to your other iOS device'); + + @override + Future call() async { + await startHidPeripheral(); + } + + @override + Future getStatus() async { + status = false; + } +} diff --git a/lib/utils/requirements/platform.dart b/lib/utils/requirements/platform.dart index bd3d784..706e6c4 100644 --- a/lib/utils/requirements/platform.dart +++ b/lib/utils/requirements/platform.dart @@ -4,6 +4,7 @@ import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:swift_control/utils/requirements/android.dart'; +import 'package:swift_control/utils/requirements/ios.dart'; import 'package:swift_control/utils/requirements/multi.dart'; abstract class PlatformRequirement { @@ -25,8 +26,10 @@ Future> getRequirements() async { List list; if (kIsWeb) { list = [BluetoothTurnedOn(), BluetoothScanning()]; - } else if (Platform.isMacOS || Platform.isIOS) { + } else if (Platform.isMacOS) { list = [BluetoothTurnedOn(), KeyboardRequirement(), BluetoothScanning()]; + } else if (Platform.isIOS) { + list = [BluetoothTurnedOn(), PairRequirement()]; } else if (Platform.isWindows) { list = [BluetoothTurnedOn(), KeyboardRequirement(), BluetoothScanning()]; } else if (Platform.isAndroid) { diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 6cf6d50..2cb6afc 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,12 +6,16 @@ #include "generated_plugin_registrant.h" +#include #include #include #include #include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) bluetooth_low_energy_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "BluetoothLowEnergyLinuxPlugin"); + bluetooth_low_energy_linux_plugin_register_with_registrar(bluetooth_low_energy_linux_registrar); g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); file_selector_plugin_register_with_registrar(file_selector_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 74bbc59..0072807 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + bluetooth_low_energy_linux file_selector_linux screen_retriever_linux url_launcher_linux diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 2fafb04..1b8d160 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,7 @@ import FlutterMacOS import Foundation +import bluetooth_low_energy_darwin import device_info_plus import file_selector_macos import flutter_local_notifications @@ -17,6 +18,7 @@ import url_launcher_macos import window_manager func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + BluetoothLowEnergyDarwinPlugin.register(with: registry.registrar(forPlugin: "BluetoothLowEnergyDarwinPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) diff --git a/pubspec.lock b/pubspec.lock index e6e016b..eee0929 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -32,6 +32,54 @@ packages: url: "https://pub.dev" source: hosted version: "2.13.0" + bluetooth_low_energy: + dependency: "direct main" + description: + name: bluetooth_low_energy + sha256: "5dec5831412c7d82b77df878dd3e08a82132426d2fb4c5d7c98c9a8cd0ed79e0" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_android: + dependency: transitive + description: + name: bluetooth_low_energy_android + sha256: "32c0f84f88770845e3189e04b0ddf4780dc8743fd7a8ade60b99b6cb414b8a89" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_darwin: + dependency: transitive + description: + name: bluetooth_low_energy_darwin + sha256: fbbe3be175cb54093884a84f6f0826d6e8a2a2e29dfeae9b367d5e8e9ee1db38 + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_linux: + dependency: transitive + description: + name: bluetooth_low_energy_linux + sha256: a5c740f445dc8d2e940767fa94ed3bb24c32e77bc962a67ab23cb1f218180705 + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_platform_interface: + dependency: transitive + description: + name: bluetooth_low_energy_platform_interface + sha256: dd76c0f8e31dcfb984059b03e73cb2998c29cffd17425f4ce946365b63abb3dc + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_windows: + dependency: transitive + description: + name: bluetooth_low_energy_windows + sha256: "7a651259f7bc3ae2bb042c21e15e1e4f88acea57da1f69b3165f239124724791" + url: "https://pub.dev" + source: hosted + version: "6.1.0" bluez: dependency: transitive description: @@ -319,6 +367,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + hybrid_logging: + dependency: transitive + description: + name: hybrid_logging + sha256: "54248d52ce68c14702a42fbc4083bac5c6be30f6afad8a41be4bbadd197b8af5" + url: "https://pub.dev" + source: hosted + version: "1.0.0" image: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0f8d4d3..8a17fda 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,6 +14,7 @@ dependencies: flutter_local_notifications: ^19.4.1 universal_ble: ^0.21.1 intl: any + bluetooth_low_energy: ^6.1.0 protobuf: ^4.2.0 permission_handler: ^12.0.1 dartx: any diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 4b74dcd..7ff59c2 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,7 @@ #include "generated_plugin_registrant.h" +#include #include #include #include @@ -15,6 +16,8 @@ #include void RegisterPlugins(flutter::PluginRegistry* registry) { + BluetoothLowEnergyWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("BluetoothLowEnergyWindowsPluginCApi")); FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); KeypressSimulatorWindowsPluginCApiRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index c1bc4ca..e7605d1 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + bluetooth_low_energy_windows file_selector_windows keypress_simulator_windows permission_handler_windows From 013b078a44ed0fae0e63c644b65a3b0abfba0282 Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Mon, 6 Oct 2025 19:27:52 +0200 Subject: [PATCH 02/59] try flutter_ble_peripheral --- ios/Podfile.lock | 10 +- lib/utils/requirements/ios.dart | 283 ++++++++++++++---- linux/flutter/generated_plugin_registrant.cc | 4 - linux/flutter/generated_plugins.cmake | 1 - macos/Flutter/GeneratedPluginRegistrant.swift | 4 +- pubspec.lock | 56 +--- pubspec.yaml | 2 +- .../flutter/generated_plugin_registrant.cc | 6 +- windows/flutter/generated_plugins.cmake | 2 +- 9 files changed, 233 insertions(+), 135 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 172db7d..d09914a 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - bluetooth_low_energy_darwin (0.0.1): + - ble_peripheral (0.0.1): - Flutter - FlutterMacOS - device_info_plus (0.0.1): @@ -23,7 +23,7 @@ PODS: - Flutter DEPENDENCIES: - - bluetooth_low_energy_darwin (from `.symlinks/plugins/bluetooth_low_energy_darwin/darwin`) + - ble_peripheral (from `.symlinks/plugins/ble_peripheral/darwin`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - Flutter (from `Flutter`) - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) @@ -35,8 +35,8 @@ DEPENDENCIES: - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) EXTERNAL SOURCES: - bluetooth_low_energy_darwin: - :path: ".symlinks/plugins/bluetooth_low_energy_darwin/darwin" + ble_peripheral: + :path: ".symlinks/plugins/ble_peripheral/darwin" device_info_plus: :path: ".symlinks/plugins/device_info_plus/ios" Flutter: @@ -57,7 +57,7 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - bluetooth_low_energy_darwin: 764d8d1ae5abefbcdb839e812b4b25c0061fcf8b + ble_peripheral: e80b0809599f5406e5d321c12a6dbc07ecdab8bd device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342 Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 flutter_local_notifications: ff50f8405aaa0ccdc7dcfb9022ca192e8ad9688f diff --git a/lib/utils/requirements/ios.dart b/lib/utils/requirements/ios.dart index 5bd3217..6779cae 100644 --- a/lib/utils/requirements/ios.dart +++ b/lib/utils/requirements/ios.dart @@ -1,89 +1,240 @@ -import 'dart:typed_data'; +import 'dart:developer'; -import 'package:bluetooth_low_energy/bluetooth_low_energy.dart'; +import 'package:ble_peripheral/ble_peripheral.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:swift_control/utils/requirements/platform.dart'; -final pm = PeripheralManager(); +class HomeController { + bool isAdvertising = false; + bool isBleOn = false; + List devices = []; -Future startHidPeripheral() async { - // 1) Build characteristics - final hidInfo = GATTCharacteristic.immutable( - uuid: UUID.fromString('2A4A'), - value: Uint8List.fromList([0x11, 0x01, 0x00, 0x02]), - descriptors: [], // HID v1.11, country=0, flags=2 - ); + String get deviceName => "HID Mouse"; - final reportMap = GATTCharacteristic.immutable( - uuid: UUID.fromString('2A4B'), - value: Uint8List.fromList([ - // Mouse descriptor bytes … - ]), - descriptors: [], - ); + // HID Service UUID (standard) + String serviceHID = "00001812-0000-1000-8000-00805F9B34FB"; + // HID Information Characteristic UUID + String characteristicHIDInformation = "00002A4A-0000-1000-8000-00805F9B34FB"; + // HID Report Map Characteristic UUID + String characteristicReportMap = "00002A4B-0000-1000-8000-00805F9B34FB"; + // HID Control Point Characteristic UUID + String characteristicControlPoint = "00002A4C-0000-1000-8000-00805F9B34FB"; + // HID Report Characteristic UUID + String characteristicReport = "00002A4D-0000-1000-8000-00805F9B34FB"; + // HID Protocol Mode Characteristic UUID + String characteristicProtocolMode = "00002A4E-0000-1000-8000-00805F9B34FB"; - final protocolMode = GATTCharacteristic.immutable( - uuid: UUID.fromString('2A4E'), - value: Uint8List.fromList([0x01]), // Report Protocol - descriptors: [], - ); + // HID Report Map for Mouse (standard) + Uint8List hidReportMap = Uint8List.fromList([ + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x02, // Usage (Mouse) + 0xA1, 0x01, // Collection (Application) + 0x09, 0x01, // Usage (Pointer) + 0xA1, 0x00, // Collection (Physical) + 0x05, 0x09, // Usage Page (Button) + 0x19, 0x01, // Usage Minimum (Button 1) + 0x29, 0x03, // Usage Maximum (Button 3) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, 0x03, // Report Count (3) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data,Var,Abs) + 0x95, 0x01, // Report Count (1) + 0x75, 0x05, // Report Size (5) + 0x81, 0x03, // Input (Const,Var,Abs) - Reserved + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x30, // Usage (X) + 0x09, 0x31, // Usage (Y) + 0x09, 0x38, // Usage (Wheel) + 0x15, 0x81, // Logical Minimum (-127) + 0x25, 0x7F, // Logical Maximum (127) + 0x75, 0x08, // Report Size (8) + 0x95, 0x03, // Report Count (3) + 0x81, 0x06, // Input (Data,Var,Rel) + 0xC0, // End Collection + 0xC0, // End Collection + ]); - // Input report characteristic (notify) - final inputReport = GATTCharacteristic.mutable( - uuid: UUID.fromString('2A4D'), - permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], - properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], - descriptors: [ - GATTDescriptor.immutable( - // Report Reference: ID=1, Type=Input(1) - uuid: UUID.fromString('2908'), - value: Uint8List.fromList([0x01, 0x01]), - ), - ], - ); + // HID Information + Uint8List hidInformation = Uint8List.fromList([0x11, 0x01, 0x00, 0x03]); // bcdHID=0x0111, bCountryCode=0, Flags=0x03 - // 2) HID service - final hidService = GATTService( - uuid: UUID.fromString('1812'), - isPrimary: true, - characteristics: [hidInfo, reportMap, protocolMode, inputReport], - includedServices: [], - ); + void onInit() { + _initialize(); + // setup callbacks + BlePeripheral.setBleStateChangeCallback((b) { + isBleOn = b; + log("BLE State Changed: $b"); + }); - await pm.addService(hidService); + BlePeripheral.setAdvertisingStatusUpdateCallback((bool advertising, String? error) { + isAdvertising = advertising; + log("AdvertisingStarted: $advertising, Error: $error"); + }); - // 3) Optional Battery service - await pm.addService( - GATTService( - uuid: UUID.fromString('180F'), - isPrimary: true, - characteristics: [ - GATTCharacteristic.immutable(uuid: UUID.fromString('2A19'), value: Uint8List.fromList([100]), descriptors: []), - ], - includedServices: [], - ), - ); + BlePeripheral.setCharacteristicSubscriptionChangeCallback(( + String deviceId, + String characteristicId, + bool isSubscribed, + String? name, + ) { + log("onCharacteristicSubscriptionChange: $deviceId : $characteristicId $isSubscribed Name: $name"); + String deviceName = "${name ?? deviceId} subscribed to $characteristicId"; + if (isSubscribed) { + if (!devices.any((element) => element == deviceName)) { + devices.add(deviceName); + log("$deviceName adding"); + } else { + log("$deviceName already exists"); + } + } else { + devices.removeWhere((element) => element == deviceName); + } + }); - final advertisement = Advertisement(name: 'SwiftControl', serviceUUIDs: [UUID.fromString('1812')]); - await pm.startAdvertising(advertisement); + BlePeripheral.setReadRequestCallback((deviceId, characteristicId, offset, value) { + log("ReadRequest: $deviceId $characteristicId : $offset : $value"); + // Respond with HID info or report map if requested + if (characteristicId == characteristicReportMap) { + return ReadRequestResult(value: hidReportMap); + } + if (characteristicId == characteristicHIDInformation) { + return ReadRequestResult(value: hidInformation); + } + return ReadRequestResult(value: Uint8List(0)); + }); + + BlePeripheral.setWriteRequestCallback((deviceId, characteristicId, offset, value) { + log("WriteRequest: $deviceId $characteristicId : $offset : $value"); + // Handle control point or protocol mode writes if needed + return null; + }); + } + + void _initialize() async { + try { + await BlePeripheral.initialize(); + } catch (e) { + log("InitializationError: $e"); + } + } + + Future startAdvertising() async { + log("Starting Advertising (HID Mouse)"); + await addServices(); + await BlePeripheral.startAdvertising( + services: [serviceHID], + localName: deviceName, + // Optionally set manufacturer data if needed + addManufacturerDataInScanResponse: false, + ); + } + + Future addServices() async { + try { + // HID Service with the required characteristics + await BlePeripheral.addService( + BleService( + uuid: serviceHID, + primary: true, + characteristics: [ + BleCharacteristic( + uuid: characteristicHIDInformation, + properties: [CharacteristicProperties.read.index], + value: hidInformation, + permissions: [AttributePermissions.readable.index], + ), + BleCharacteristic( + uuid: characteristicReportMap, + properties: [CharacteristicProperties.read.index], + value: hidReportMap, + permissions: [AttributePermissions.readable.index], + ), + BleCharacteristic( + uuid: characteristicControlPoint, + properties: [CharacteristicProperties.write.index], + //value: Uint8List(1), // Default 0 + permissions: [AttributePermissions.writeable.index], + ), + BleCharacteristic( + uuid: characteristicReport, + properties: [CharacteristicProperties.read.index, CharacteristicProperties.notify.index], + //value: Uint8List(4), // Initial empty mouse report + permissions: [AttributePermissions.readable.index], + ), + BleCharacteristic( + uuid: characteristicProtocolMode, + properties: [CharacteristicProperties.read.index, CharacteristicProperties.write.index], + //value: Uint8List.fromList([1]), // Report protocol mode + permissions: [AttributePermissions.readable.index, AttributePermissions.writeable.index], + ), + ], + ), + ); + log("HID Mouse services added"); + } catch (e) { + log("Error: $e"); + } + } + + void getAllServices() async { + List services = await BlePeripheral.getServices(); + log(services.toString()); + } + + void removeServices() async { + await BlePeripheral.clearServices(); + log("Services removed"); + } + + /// Send a mouse report to all subscribed devices. For example, move mouse right. + void sendMouseReport({int buttons = 0, int x = 0, int y = 0, int wheel = 0}) async { + // Mouse report: [buttons, x, y, wheel] + try { + Uint8List report = Uint8List.fromList([ + buttons & 0x07, // 3 bits for buttons + x & 0xFF, // X movement (-127 to +127) + y & 0xFF, // Y movement (-127 to +127) + wheel & 0xFF, // Wheel movement (-127 to +127) + ]); + await BlePeripheral.updateCharacteristic(characteristicId: characteristicReport, value: report); + log("Mouse report sent: $report"); + } catch (e) { + log("SendMouseReportError: $e"); + } + } } -/* -// Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] -Future sendMouseReport(int buttons, int dx, int dy) async { - final data = Uint8List.fromList([buttons & 0x07, dx & 0xFF, dy & 0xFF]); - await pm.notifyCharacteristic(UUID.fromString('1812'), UUID.fromString('2A4D'), data); -}*/ - class PairRequirement extends PlatformRequirement { PairRequirement() : super('Pair to your other iOS device'); + final HomeController homeController = HomeController()..onInit(); + @override - Future call() async { - await startHidPeripheral(); - } + Future call() async {} @override Future getStatus() async { status = false; } + + @override + Widget? build(BuildContext context, VoidCallback onUpdate) { + return Row( + children: [ + ElevatedButton( + onPressed: () { + homeController.startAdvertising(); + }, + child: Text('Start'), + ), + ElevatedButton( + onPressed: () { + homeController.sendMouseReport(buttons: 1, x: 10, y: 30); // Move mouse right + }, + child: Text('Control'), + ), + ], + ); + } } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 2cb6afc..6cf6d50 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,16 +6,12 @@ #include "generated_plugin_registrant.h" -#include #include #include #include #include void fl_register_plugins(FlPluginRegistry* registry) { - g_autoptr(FlPluginRegistrar) bluetooth_low_energy_linux_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "BluetoothLowEnergyLinuxPlugin"); - bluetooth_low_energy_linux_plugin_register_with_registrar(bluetooth_low_energy_linux_registrar); g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); file_selector_plugin_register_with_registrar(file_selector_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 0072807..74bbc59 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,7 +3,6 @@ # list(APPEND FLUTTER_PLUGIN_LIST - bluetooth_low_energy_linux file_selector_linux screen_retriever_linux url_launcher_linux diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 1b8d160..1aa2c9b 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,7 +5,7 @@ import FlutterMacOS import Foundation -import bluetooth_low_energy_darwin +import ble_peripheral import device_info_plus import file_selector_macos import flutter_local_notifications @@ -18,7 +18,7 @@ import url_launcher_macos import window_manager func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - BluetoothLowEnergyDarwinPlugin.register(with: registry.registrar(forPlugin: "BluetoothLowEnergyDarwinPlugin")) + BlePeripheralPlugin.register(with: registry.registrar(forPlugin: "BlePeripheralPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) diff --git a/pubspec.lock b/pubspec.lock index eee0929..66d8534 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -32,54 +32,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.13.0" - bluetooth_low_energy: + ble_peripheral: dependency: "direct main" description: - name: bluetooth_low_energy - sha256: "5dec5831412c7d82b77df878dd3e08a82132426d2fb4c5d7c98c9a8cd0ed79e0" + name: ble_peripheral + sha256: "858d370709507155bbf69e6160e9cb81d802e664f133a649a38b9ca04439884c" url: "https://pub.dev" source: hosted - version: "6.1.0" - bluetooth_low_energy_android: - dependency: transitive - description: - name: bluetooth_low_energy_android - sha256: "32c0f84f88770845e3189e04b0ddf4780dc8743fd7a8ade60b99b6cb414b8a89" - url: "https://pub.dev" - source: hosted - version: "6.1.0" - bluetooth_low_energy_darwin: - dependency: transitive - description: - name: bluetooth_low_energy_darwin - sha256: fbbe3be175cb54093884a84f6f0826d6e8a2a2e29dfeae9b367d5e8e9ee1db38 - url: "https://pub.dev" - source: hosted - version: "6.1.0" - bluetooth_low_energy_linux: - dependency: transitive - description: - name: bluetooth_low_energy_linux - sha256: a5c740f445dc8d2e940767fa94ed3bb24c32e77bc962a67ab23cb1f218180705 - url: "https://pub.dev" - source: hosted - version: "6.1.0" - bluetooth_low_energy_platform_interface: - dependency: transitive - description: - name: bluetooth_low_energy_platform_interface - sha256: dd76c0f8e31dcfb984059b03e73cb2998c29cffd17425f4ce946365b63abb3dc - url: "https://pub.dev" - source: hosted - version: "6.1.0" - bluetooth_low_energy_windows: - dependency: transitive - description: - name: bluetooth_low_energy_windows - sha256: "7a651259f7bc3ae2bb042c21e15e1e4f88acea57da1f69b3165f239124724791" - url: "https://pub.dev" - source: hosted - version: "6.1.0" + version: "2.4.0" bluez: dependency: transitive description: @@ -367,14 +327,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" - hybrid_logging: - dependency: transitive - description: - name: hybrid_logging - sha256: "54248d52ce68c14702a42fbc4083bac5c6be30f6afad8a41be4bbadd197b8af5" - url: "https://pub.dev" - source: hosted - version: "1.0.0" image: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8a17fda..33057f0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,8 +14,8 @@ dependencies: flutter_local_notifications: ^19.4.1 universal_ble: ^0.21.1 intl: any - bluetooth_low_energy: ^6.1.0 protobuf: ^4.2.0 + ble_peripheral: ^2.4.0 permission_handler: ^12.0.1 dartx: any image_picker: ^1.1.2 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 7ff59c2..d5662c9 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,7 +6,7 @@ #include "generated_plugin_registrant.h" -#include +#include #include #include #include @@ -16,8 +16,8 @@ #include void RegisterPlugins(flutter::PluginRegistry* registry) { - BluetoothLowEnergyWindowsPluginCApiRegisterWithRegistrar( - registry->GetRegistrarForPlugin("BluetoothLowEnergyWindowsPluginCApi")); + BlePeripheralPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("BlePeripheralPluginCApi")); FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); KeypressSimulatorWindowsPluginCApiRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index e7605d1..d662f42 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,7 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST - bluetooth_low_energy_windows + ble_peripheral file_selector_windows keypress_simulator_windows permission_handler_windows From 89d200243b8c47cfb030656745a2c230a21b5f34 Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Mon, 6 Oct 2025 19:28:43 +0200 Subject: [PATCH 03/59] Revert "try flutter_ble_peripheral" This reverts commit 013b078a44ed0fae0e63c644b65a3b0abfba0282. --- ios/Podfile.lock | 10 +- lib/utils/requirements/ios.dart | 283 ++++-------------- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 4 +- pubspec.lock | 56 +++- pubspec.yaml | 2 +- .../flutter/generated_plugin_registrant.cc | 6 +- windows/flutter/generated_plugins.cmake | 2 +- 9 files changed, 135 insertions(+), 233 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index d09914a..172db7d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - ble_peripheral (0.0.1): + - bluetooth_low_energy_darwin (0.0.1): - Flutter - FlutterMacOS - device_info_plus (0.0.1): @@ -23,7 +23,7 @@ PODS: - Flutter DEPENDENCIES: - - ble_peripheral (from `.symlinks/plugins/ble_peripheral/darwin`) + - bluetooth_low_energy_darwin (from `.symlinks/plugins/bluetooth_low_energy_darwin/darwin`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - Flutter (from `Flutter`) - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) @@ -35,8 +35,8 @@ DEPENDENCIES: - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) EXTERNAL SOURCES: - ble_peripheral: - :path: ".symlinks/plugins/ble_peripheral/darwin" + bluetooth_low_energy_darwin: + :path: ".symlinks/plugins/bluetooth_low_energy_darwin/darwin" device_info_plus: :path: ".symlinks/plugins/device_info_plus/ios" Flutter: @@ -57,7 +57,7 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - ble_peripheral: e80b0809599f5406e5d321c12a6dbc07ecdab8bd + bluetooth_low_energy_darwin: 764d8d1ae5abefbcdb839e812b4b25c0061fcf8b device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342 Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 flutter_local_notifications: ff50f8405aaa0ccdc7dcfb9022ca192e8ad9688f diff --git a/lib/utils/requirements/ios.dart b/lib/utils/requirements/ios.dart index 6779cae..5bd3217 100644 --- a/lib/utils/requirements/ios.dart +++ b/lib/utils/requirements/ios.dart @@ -1,240 +1,89 @@ -import 'dart:developer'; +import 'dart:typed_data'; -import 'package:ble_peripheral/ble_peripheral.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; +import 'package:bluetooth_low_energy/bluetooth_low_energy.dart'; import 'package:swift_control/utils/requirements/platform.dart'; -class HomeController { - bool isAdvertising = false; - bool isBleOn = false; - List devices = []; +final pm = PeripheralManager(); - String get deviceName => "HID Mouse"; +Future startHidPeripheral() async { + // 1) Build characteristics + final hidInfo = GATTCharacteristic.immutable( + uuid: UUID.fromString('2A4A'), + value: Uint8List.fromList([0x11, 0x01, 0x00, 0x02]), + descriptors: [], // HID v1.11, country=0, flags=2 + ); - // HID Service UUID (standard) - String serviceHID = "00001812-0000-1000-8000-00805F9B34FB"; - // HID Information Characteristic UUID - String characteristicHIDInformation = "00002A4A-0000-1000-8000-00805F9B34FB"; - // HID Report Map Characteristic UUID - String characteristicReportMap = "00002A4B-0000-1000-8000-00805F9B34FB"; - // HID Control Point Characteristic UUID - String characteristicControlPoint = "00002A4C-0000-1000-8000-00805F9B34FB"; - // HID Report Characteristic UUID - String characteristicReport = "00002A4D-0000-1000-8000-00805F9B34FB"; - // HID Protocol Mode Characteristic UUID - String characteristicProtocolMode = "00002A4E-0000-1000-8000-00805F9B34FB"; + final reportMap = GATTCharacteristic.immutable( + uuid: UUID.fromString('2A4B'), + value: Uint8List.fromList([ + // Mouse descriptor bytes … + ]), + descriptors: [], + ); - // HID Report Map for Mouse (standard) - Uint8List hidReportMap = Uint8List.fromList([ - 0x05, 0x01, // Usage Page (Generic Desktop) - 0x09, 0x02, // Usage (Mouse) - 0xA1, 0x01, // Collection (Application) - 0x09, 0x01, // Usage (Pointer) - 0xA1, 0x00, // Collection (Physical) - 0x05, 0x09, // Usage Page (Button) - 0x19, 0x01, // Usage Minimum (Button 1) - 0x29, 0x03, // Usage Maximum (Button 3) - 0x15, 0x00, // Logical Minimum (0) - 0x25, 0x01, // Logical Maximum (1) - 0x95, 0x03, // Report Count (3) - 0x75, 0x01, // Report Size (1) - 0x81, 0x02, // Input (Data,Var,Abs) - 0x95, 0x01, // Report Count (1) - 0x75, 0x05, // Report Size (5) - 0x81, 0x03, // Input (Const,Var,Abs) - Reserved - 0x05, 0x01, // Usage Page (Generic Desktop) - 0x09, 0x30, // Usage (X) - 0x09, 0x31, // Usage (Y) - 0x09, 0x38, // Usage (Wheel) - 0x15, 0x81, // Logical Minimum (-127) - 0x25, 0x7F, // Logical Maximum (127) - 0x75, 0x08, // Report Size (8) - 0x95, 0x03, // Report Count (3) - 0x81, 0x06, // Input (Data,Var,Rel) - 0xC0, // End Collection - 0xC0, // End Collection - ]); + final protocolMode = GATTCharacteristic.immutable( + uuid: UUID.fromString('2A4E'), + value: Uint8List.fromList([0x01]), // Report Protocol + descriptors: [], + ); - // HID Information - Uint8List hidInformation = Uint8List.fromList([0x11, 0x01, 0x00, 0x03]); // bcdHID=0x0111, bCountryCode=0, Flags=0x03 + // Input report characteristic (notify) + final inputReport = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4D'), + permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], + properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], + descriptors: [ + GATTDescriptor.immutable( + // Report Reference: ID=1, Type=Input(1) + uuid: UUID.fromString('2908'), + value: Uint8List.fromList([0x01, 0x01]), + ), + ], + ); - void onInit() { - _initialize(); - // setup callbacks - BlePeripheral.setBleStateChangeCallback((b) { - isBleOn = b; - log("BLE State Changed: $b"); - }); + // 2) HID service + final hidService = GATTService( + uuid: UUID.fromString('1812'), + isPrimary: true, + characteristics: [hidInfo, reportMap, protocolMode, inputReport], + includedServices: [], + ); - BlePeripheral.setAdvertisingStatusUpdateCallback((bool advertising, String? error) { - isAdvertising = advertising; - log("AdvertisingStarted: $advertising, Error: $error"); - }); + await pm.addService(hidService); - BlePeripheral.setCharacteristicSubscriptionChangeCallback(( - String deviceId, - String characteristicId, - bool isSubscribed, - String? name, - ) { - log("onCharacteristicSubscriptionChange: $deviceId : $characteristicId $isSubscribed Name: $name"); - String deviceName = "${name ?? deviceId} subscribed to $characteristicId"; - if (isSubscribed) { - if (!devices.any((element) => element == deviceName)) { - devices.add(deviceName); - log("$deviceName adding"); - } else { - log("$deviceName already exists"); - } - } else { - devices.removeWhere((element) => element == deviceName); - } - }); + // 3) Optional Battery service + await pm.addService( + GATTService( + uuid: UUID.fromString('180F'), + isPrimary: true, + characteristics: [ + GATTCharacteristic.immutable(uuid: UUID.fromString('2A19'), value: Uint8List.fromList([100]), descriptors: []), + ], + includedServices: [], + ), + ); - BlePeripheral.setReadRequestCallback((deviceId, characteristicId, offset, value) { - log("ReadRequest: $deviceId $characteristicId : $offset : $value"); - // Respond with HID info or report map if requested - if (characteristicId == characteristicReportMap) { - return ReadRequestResult(value: hidReportMap); - } - if (characteristicId == characteristicHIDInformation) { - return ReadRequestResult(value: hidInformation); - } - return ReadRequestResult(value: Uint8List(0)); - }); - - BlePeripheral.setWriteRequestCallback((deviceId, characteristicId, offset, value) { - log("WriteRequest: $deviceId $characteristicId : $offset : $value"); - // Handle control point or protocol mode writes if needed - return null; - }); - } - - void _initialize() async { - try { - await BlePeripheral.initialize(); - } catch (e) { - log("InitializationError: $e"); - } - } - - Future startAdvertising() async { - log("Starting Advertising (HID Mouse)"); - await addServices(); - await BlePeripheral.startAdvertising( - services: [serviceHID], - localName: deviceName, - // Optionally set manufacturer data if needed - addManufacturerDataInScanResponse: false, - ); - } - - Future addServices() async { - try { - // HID Service with the required characteristics - await BlePeripheral.addService( - BleService( - uuid: serviceHID, - primary: true, - characteristics: [ - BleCharacteristic( - uuid: characteristicHIDInformation, - properties: [CharacteristicProperties.read.index], - value: hidInformation, - permissions: [AttributePermissions.readable.index], - ), - BleCharacteristic( - uuid: characteristicReportMap, - properties: [CharacteristicProperties.read.index], - value: hidReportMap, - permissions: [AttributePermissions.readable.index], - ), - BleCharacteristic( - uuid: characteristicControlPoint, - properties: [CharacteristicProperties.write.index], - //value: Uint8List(1), // Default 0 - permissions: [AttributePermissions.writeable.index], - ), - BleCharacteristic( - uuid: characteristicReport, - properties: [CharacteristicProperties.read.index, CharacteristicProperties.notify.index], - //value: Uint8List(4), // Initial empty mouse report - permissions: [AttributePermissions.readable.index], - ), - BleCharacteristic( - uuid: characteristicProtocolMode, - properties: [CharacteristicProperties.read.index, CharacteristicProperties.write.index], - //value: Uint8List.fromList([1]), // Report protocol mode - permissions: [AttributePermissions.readable.index, AttributePermissions.writeable.index], - ), - ], - ), - ); - log("HID Mouse services added"); - } catch (e) { - log("Error: $e"); - } - } - - void getAllServices() async { - List services = await BlePeripheral.getServices(); - log(services.toString()); - } - - void removeServices() async { - await BlePeripheral.clearServices(); - log("Services removed"); - } - - /// Send a mouse report to all subscribed devices. For example, move mouse right. - void sendMouseReport({int buttons = 0, int x = 0, int y = 0, int wheel = 0}) async { - // Mouse report: [buttons, x, y, wheel] - try { - Uint8List report = Uint8List.fromList([ - buttons & 0x07, // 3 bits for buttons - x & 0xFF, // X movement (-127 to +127) - y & 0xFF, // Y movement (-127 to +127) - wheel & 0xFF, // Wheel movement (-127 to +127) - ]); - await BlePeripheral.updateCharacteristic(characteristicId: characteristicReport, value: report); - log("Mouse report sent: $report"); - } catch (e) { - log("SendMouseReportError: $e"); - } - } + final advertisement = Advertisement(name: 'SwiftControl', serviceUUIDs: [UUID.fromString('1812')]); + await pm.startAdvertising(advertisement); } +/* +// Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] +Future sendMouseReport(int buttons, int dx, int dy) async { + final data = Uint8List.fromList([buttons & 0x07, dx & 0xFF, dy & 0xFF]); + await pm.notifyCharacteristic(UUID.fromString('1812'), UUID.fromString('2A4D'), data); +}*/ + class PairRequirement extends PlatformRequirement { PairRequirement() : super('Pair to your other iOS device'); - final HomeController homeController = HomeController()..onInit(); - @override - Future call() async {} + Future call() async { + await startHidPeripheral(); + } @override Future getStatus() async { status = false; } - - @override - Widget? build(BuildContext context, VoidCallback onUpdate) { - return Row( - children: [ - ElevatedButton( - onPressed: () { - homeController.startAdvertising(); - }, - child: Text('Start'), - ), - ElevatedButton( - onPressed: () { - homeController.sendMouseReport(buttons: 1, x: 10, y: 30); // Move mouse right - }, - child: Text('Control'), - ), - ], - ); - } } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 6cf6d50..2cb6afc 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,12 +6,16 @@ #include "generated_plugin_registrant.h" +#include #include #include #include #include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) bluetooth_low_energy_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "BluetoothLowEnergyLinuxPlugin"); + bluetooth_low_energy_linux_plugin_register_with_registrar(bluetooth_low_energy_linux_registrar); g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); file_selector_plugin_register_with_registrar(file_selector_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 74bbc59..0072807 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + bluetooth_low_energy_linux file_selector_linux screen_retriever_linux url_launcher_linux diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 1aa2c9b..1b8d160 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,7 +5,7 @@ import FlutterMacOS import Foundation -import ble_peripheral +import bluetooth_low_energy_darwin import device_info_plus import file_selector_macos import flutter_local_notifications @@ -18,7 +18,7 @@ import url_launcher_macos import window_manager func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - BlePeripheralPlugin.register(with: registry.registrar(forPlugin: "BlePeripheralPlugin")) + BluetoothLowEnergyDarwinPlugin.register(with: registry.registrar(forPlugin: "BluetoothLowEnergyDarwinPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 66d8534..eee0929 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -32,14 +32,54 @@ packages: url: "https://pub.dev" source: hosted version: "2.13.0" - ble_peripheral: + bluetooth_low_energy: dependency: "direct main" description: - name: ble_peripheral - sha256: "858d370709507155bbf69e6160e9cb81d802e664f133a649a38b9ca04439884c" + name: bluetooth_low_energy + sha256: "5dec5831412c7d82b77df878dd3e08a82132426d2fb4c5d7c98c9a8cd0ed79e0" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "6.1.0" + bluetooth_low_energy_android: + dependency: transitive + description: + name: bluetooth_low_energy_android + sha256: "32c0f84f88770845e3189e04b0ddf4780dc8743fd7a8ade60b99b6cb414b8a89" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_darwin: + dependency: transitive + description: + name: bluetooth_low_energy_darwin + sha256: fbbe3be175cb54093884a84f6f0826d6e8a2a2e29dfeae9b367d5e8e9ee1db38 + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_linux: + dependency: transitive + description: + name: bluetooth_low_energy_linux + sha256: a5c740f445dc8d2e940767fa94ed3bb24c32e77bc962a67ab23cb1f218180705 + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_platform_interface: + dependency: transitive + description: + name: bluetooth_low_energy_platform_interface + sha256: dd76c0f8e31dcfb984059b03e73cb2998c29cffd17425f4ce946365b63abb3dc + url: "https://pub.dev" + source: hosted + version: "6.1.0" + bluetooth_low_energy_windows: + dependency: transitive + description: + name: bluetooth_low_energy_windows + sha256: "7a651259f7bc3ae2bb042c21e15e1e4f88acea57da1f69b3165f239124724791" + url: "https://pub.dev" + source: hosted + version: "6.1.0" bluez: dependency: transitive description: @@ -327,6 +367,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + hybrid_logging: + dependency: transitive + description: + name: hybrid_logging + sha256: "54248d52ce68c14702a42fbc4083bac5c6be30f6afad8a41be4bbadd197b8af5" + url: "https://pub.dev" + source: hosted + version: "1.0.0" image: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 33057f0..8a17fda 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,8 +14,8 @@ dependencies: flutter_local_notifications: ^19.4.1 universal_ble: ^0.21.1 intl: any + bluetooth_low_energy: ^6.1.0 protobuf: ^4.2.0 - ble_peripheral: ^2.4.0 permission_handler: ^12.0.1 dartx: any image_picker: ^1.1.2 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index d5662c9..7ff59c2 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,7 +6,7 @@ #include "generated_plugin_registrant.h" -#include +#include #include #include #include @@ -16,8 +16,8 @@ #include void RegisterPlugins(flutter::PluginRegistry* registry) { - BlePeripheralPluginCApiRegisterWithRegistrar( - registry->GetRegistrarForPlugin("BlePeripheralPluginCApi")); + BluetoothLowEnergyWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("BluetoothLowEnergyWindowsPluginCApi")); FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); KeypressSimulatorWindowsPluginCApiRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index d662f42..e7605d1 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,7 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST - ble_peripheral + bluetooth_low_energy_windows file_selector_windows keypress_simulator_windows permission_handler_windows From f7669b2bbc6c24de8cab4f8f357913c994e70ce0 Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Mon, 6 Oct 2025 21:41:37 +0200 Subject: [PATCH 04/59] make it work --- android/app/src/main/AndroidManifest.xml | 4 +- lib/pages/requirements.dart | 6 +- lib/pages/touch_area.dart | 2 + lib/utils/requirements/ios.dart | 192 +++++++++++++++++++++-- lib/utils/requirements/platform.dart | 2 +- 5 files changed, 185 insertions(+), 21 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 5c37ce9..cc0b263 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,4 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/lib/pages/requirements.dart b/lib/pages/requirements.dart index 6aba629..3680bbd 100644 --- a/lib/pages/requirements.dart +++ b/lib/pages/requirements.dart @@ -56,11 +56,11 @@ class _RequirementsPageState extends State with WidgetsBinding final packageInfo = await PackageInfo.fromPlatform(); final currentVersion = packageInfo.version; final lastSeenVersion = settings.getLastSeenVersion(); - + if (mounted) { await ChangelogDialog.showIfNeeded(context, currentVersion, lastSeenVersion); } - + // Update last seen version await settings.setLastSeenVersion(currentVersion); } catch (e) { @@ -120,7 +120,7 @@ class _RequirementsPageState extends State with WidgetsBinding return; } final hasEarlierIncomplete = _requirements.indexWhere((req) => !req.status) < step; - if (hasEarlierIncomplete) { + if (hasEarlierIncomplete && !kDebugMode) { return; } setState(() { diff --git a/lib/pages/touch_area.dart b/lib/pages/touch_area.dart index 4ffbb2b..68a4040 100644 --- a/lib/pages/touch_area.dart +++ b/lib/pages/touch_area.dart @@ -9,6 +9,7 @@ import 'package:image_picker/image_picker.dart'; import 'package:keypress_simulator/keypress_simulator.dart'; import 'package:swift_control/main.dart'; import 'package:swift_control/widgets/keymap_explanation.dart'; +import 'package:swift_control/widgets/menu.dart'; import 'package:swift_control/widgets/testbed.dart'; import 'package:window_manager/window_manager.dart'; @@ -382,6 +383,7 @@ class _TouchAreaSetupPageState extends State { ], icon: Icon(Icons.more_vert), ), + if (kDebugMode) MenuButton(), ], ), ), diff --git a/lib/utils/requirements/ios.dart b/lib/utils/requirements/ios.dart index 5bd3217..f3f4051 100644 --- a/lib/utils/requirements/ios.dart +++ b/lib/utils/requirements/ios.dart @@ -1,11 +1,80 @@ import 'dart:typed_data'; import 'package:bluetooth_low_energy/bluetooth_low_energy.dart'; +import 'package:flutter/material.dart'; import 'package:swift_control/utils/requirements/platform.dart'; final pm = PeripheralManager(); +Central? _connectedCentral; +GATTCharacteristic? _connectedCharacteristic; + Future startHidPeripheral() async { + final reportMapData = Uint8List.fromList([ + // Mouse (Report ID 1) + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x02, // Usage (Mouse) + 0xA1, 0x01, // Collection (Application) + 0x85, 0x01, // Report ID (1) + 0x09, 0x01, // Usage (Pointer) + 0xA1, 0x00, // Collection (Physical) + 0x05, 0x09, // Usage Page (Buttons) + 0x19, 0x01, // Usage Minimum (1) + 0x29, 0x03, // Usage Maximum (3) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x95, 0x03, // Report Count (3) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data, Variable, Absolute) + 0x95, 0x01, // Report Count (1) + 0x75, 0x05, // Report Size (5) + 0x81, 0x03, // Input (Constant, Variable, Absolute) + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x30, // Usage (X) + 0x09, 0x31, // Usage (Y) + 0x15, 0x81, // Logical Minimum (-127) + 0x25, 0x7F, // Logical Maximum (127) + 0x75, 0x08, // Report Size (8) + 0x95, 0x02, // Report Count (2) + 0x81, 0x06, // Input (Data, Variable, Relative) + 0xC0, // End Collection + 0xC0, // End Collection + // Keyboard (Report ID 2)A + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x06, // Usage (Keyboard) + 0xA1, 0x01, // Collection (Application) + 0x85, 0x02, // Report ID (2) + 0x05, 0x07, // Usage Page (Key Codes) + 0x19, 0xE0, // Usage Minimum (224) + 0x29, 0xE7, // Usage Maximum (231) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x01, // Logical Maximum (1) + 0x75, 0x01, // Report Size (1) + 0x95, 0x08, // Report Count (8) + 0x81, 0x02, // Input (Data, Variable, Absolute) ; Modifier byte + 0x95, 0x01, // Report Count (1) + 0x75, 0x08, // Report Size (8) + 0x81, 0x01, // Input (Constant) ; Reserved byte + 0x95, 0x05, // Report Count (5) + 0x75, 0x01, // Report Size (1) + 0x05, 0x08, // Usage Page (LEDs) + 0x19, 0x01, // Usage Minimum (1) + 0x29, 0x05, // Usage Maximum (5) + 0x91, 0x02, // Output (Data, Variable, Absolute) ; LED report + 0x95, 0x01, // Report Count (1) + 0x75, 0x03, // Report Size (3) + 0x91, 0x01, // Output (Constant) ; Padding + 0x95, 0x06, // Report Count (6) + 0x75, 0x08, // Report Size (8) + 0x15, 0x00, // Logical Minimum (0) + 0x25, 0x65, // Logical Maximum (101) + 0x05, 0x07, // Usage Page (Key Codes) + 0x19, 0x00, // Usage Minimum (0) + 0x29, 0x65, // Usage Maximum (101) + 0x81, 0x00, // Input (Data, Array) ; Key arrays (6 bytes) + 0xC0, // End Collection + ]); + // 1) Build characteristics final hidInfo = GATTCharacteristic.immutable( uuid: UUID.fromString('2A4A'), @@ -15,22 +84,32 @@ Future startHidPeripheral() async { final reportMap = GATTCharacteristic.immutable( uuid: UUID.fromString('2A4B'), - value: Uint8List.fromList([ - // Mouse descriptor bytes … - ]), + //properties: [GATTCharacteristicProperty.read], + //permissions: [GATTCharacteristicPermission.read], + value: reportMapData, + descriptors: [ + GATTDescriptor.immutable(uuid: UUID.fromString('2908'), value: Uint8List.fromList([0x0, 0x0])), + ], + ); + + final protocolMode = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4E'), + properties: [GATTCharacteristicProperty.read, GATTCharacteristicProperty.writeWithoutResponse], + permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], descriptors: [], ); - final protocolMode = GATTCharacteristic.immutable( - uuid: UUID.fromString('2A4E'), - value: Uint8List.fromList([0x01]), // Report Protocol + final hidControlPoint = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4C'), + properties: [GATTCharacteristicProperty.writeWithoutResponse], + permissions: [GATTCharacteristicPermission.write], descriptors: [], ); // Input report characteristic (notify) final inputReport = GATTCharacteristic.mutable( uuid: UUID.fromString('2A4D'), - permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], + permissions: [GATTCharacteristicPermission.read], properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], descriptors: [ GATTDescriptor.immutable( @@ -40,12 +119,50 @@ Future startHidPeripheral() async { ), ], ); + // Input report characteristic (notify) + final keyboardInputReport = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4D'), + permissions: [GATTCharacteristicPermission.read], + properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], + descriptors: [ + GATTDescriptor.immutable( + // Report Reference: ID=1, Type=Input(1) + uuid: UUID.fromString('2908'), + value: Uint8List.fromList([0x02, 0x01]), + ), + ], + ); + + final outputReport = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4D'), + permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], + properties: [ + GATTCharacteristicProperty.read, + GATTCharacteristicProperty.write, + GATTCharacteristicProperty.writeWithoutResponse, + ], + descriptors: [ + GATTDescriptor.immutable( + // Report Reference: ID=1, Type=Input(1) + uuid: UUID.fromString('2908'), + value: Uint8List.fromList([0x02, 0x02]), + ), + ], + ); // 2) HID service final hidService = GATTService( - uuid: UUID.fromString('1812'), + uuid: UUID.fromString('00001812-0000-1000-8000-00805F9B34FB'), isPrimary: true, - characteristics: [hidInfo, reportMap, protocolMode, inputReport], + characteristics: [ + hidInfo, + reportMap, + protocolMode, + outputReport, + hidControlPoint, + keyboardInputReport, + inputReport, + ], includedServices: [], ); @@ -63,25 +180,70 @@ Future startHidPeripheral() async { ), ); - final advertisement = Advertisement(name: 'SwiftControl', serviceUUIDs: [UUID.fromString('1812')]); + final advertisement = Advertisement( + name: 'SwiftControl', + serviceUUIDs: [UUID.fromString('00001812-0000-1000-8000-00805F9B34FB')], + ); + /*pm.connectionStateChanged.forEach((state) { + print('Peripheral connection state: $state'); + });*/ + + pm.characteristicReadRequested.forEach((char) { + print('Read request for characteristic: ${char}'); + // You can respond to read requests here if needed + }); + + pm.characteristicNotifyStateChanged.forEach((char) { + _connectedCentral = char.central; + _connectedCharacteristic = char.characteristic; + print('Notify state changed for characteristic: ${char.characteristic.uuid}'); + }); + await pm.startAdvertising(advertisement); } -/* // Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] Future sendMouseReport(int buttons, int dx, int dy) async { final data = Uint8List.fromList([buttons & 0x07, dx & 0xFF, dy & 0xFF]); - await pm.notifyCharacteristic(UUID.fromString('1812'), UUID.fromString('2A4D'), data); -}*/ + await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: data); +} -class PairRequirement extends PlatformRequirement { - PairRequirement() : super('Pair to your other iOS device'); +class ConnectRequirement extends PlatformRequirement { + ConnectRequirement() : super('Connect to your other iOS device'); @override Future call() async { await startHidPeripheral(); } + @override + Widget? build(BuildContext context, VoidCallback onUpdate) { + return Row( + spacing: 10, + children: [ + ElevatedButton( + onPressed: () async { + await call(); + onUpdate(); + }, + child: Text('Start Pairing'), + ), + ElevatedButton( + onPressed: () async { + sendMouseReport(1, 20, 20); + }, + child: Text('Simulate'), + ), + ElevatedButton( + onPressed: () async { + sendMouseReport(1, -20, -20); + }, + child: Text('Simulate'), + ), + ], + ); + } + @override Future getStatus() async { status = false; diff --git a/lib/utils/requirements/platform.dart b/lib/utils/requirements/platform.dart index 706e6c4..bd81e18 100644 --- a/lib/utils/requirements/platform.dart +++ b/lib/utils/requirements/platform.dart @@ -29,7 +29,7 @@ Future> getRequirements() async { } else if (Platform.isMacOS) { list = [BluetoothTurnedOn(), KeyboardRequirement(), BluetoothScanning()]; } else if (Platform.isIOS) { - list = [BluetoothTurnedOn(), PairRequirement()]; + list = [BluetoothTurnedOn(), ConnectRequirement()]; } else if (Platform.isWindows) { list = [BluetoothTurnedOn(), KeyboardRequirement(), BluetoothScanning()]; } else if (Platform.isAndroid) { From 2ac94907e81328254762e18f36d50cf649d56f40 Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Mon, 6 Oct 2025 22:43:36 +0200 Subject: [PATCH 05/59] make it work #2 --- lib/utils/requirements/ios.dart | 141 +++++++++++++++++++++++--------- lib/widgets/menu.dart | 5 +- 2 files changed, 107 insertions(+), 39 deletions(-) diff --git a/lib/utils/requirements/ios.dart b/lib/utils/requirements/ios.dart index f3f4051..c110dfc 100644 --- a/lib/utils/requirements/ios.dart +++ b/lib/utils/requirements/ios.dart @@ -1,3 +1,4 @@ +import 'dart:io'; import 'dart:typed_data'; import 'package:bluetooth_low_energy/bluetooth_low_energy.dart'; @@ -10,7 +11,7 @@ Central? _connectedCentral; GATTCharacteristic? _connectedCharacteristic; Future startHidPeripheral() async { - final reportMapData = Uint8List.fromList([ + final reportMapDataRelative = Uint8List.fromList([ // Mouse (Report ID 1) 0x05, 0x01, // Usage Page (Generic Desktop) 0x09, 0x02, // Usage (Mouse) @@ -39,42 +40,86 @@ Future startHidPeripheral() async { 0x81, 0x06, // Input (Data, Variable, Relative) 0xC0, // End Collection 0xC0, // End Collection - // Keyboard (Report ID 2)A + // End Collection + ]); + + final reportMapDataAbsolute = Uint8List.fromList([ 0x05, 0x01, // Usage Page (Generic Desktop) - 0x09, 0x06, // Usage (Keyboard) + 0x09, 0x02, // Usage (Mouse) 0xA1, 0x01, // Collection (Application) - 0x85, 0x02, // Report ID (2) - 0x05, 0x07, // Usage Page (Key Codes) - 0x19, 0xE0, // Usage Minimum (224) - 0x29, 0xE7, // Usage Maximum (231) - 0x15, 0x00, // Logical Minimum (0) - 0x25, 0x01, // Logical Maximum (1) - 0x75, 0x01, // Report Size (1) - 0x95, 0x08, // Report Count (8) - 0x81, 0x02, // Input (Data, Variable, Absolute) ; Modifier byte - 0x95, 0x01, // Report Count (1) - 0x75, 0x08, // Report Size (8) - 0x81, 0x01, // Input (Constant) ; Reserved byte - 0x95, 0x05, // Report Count (5) - 0x75, 0x01, // Report Size (1) - 0x05, 0x08, // Usage Page (LEDs) - 0x19, 0x01, // Usage Minimum (1) - 0x29, 0x05, // Usage Maximum (5) - 0x91, 0x02, // Output (Data, Variable, Absolute) ; LED report - 0x95, 0x01, // Report Count (1) - 0x75, 0x03, // Report Size (3) - 0x91, 0x01, // Output (Constant) ; Padding - 0x95, 0x06, // Report Count (6) - 0x75, 0x08, // Report Size (8) - 0x15, 0x00, // Logical Minimum (0) - 0x25, 0x65, // Logical Maximum (101) - 0x05, 0x07, // Usage Page (Key Codes) - 0x19, 0x00, // Usage Minimum (0) - 0x29, 0x65, // Usage Maximum (101) - 0x81, 0x00, // Input (Data, Array) ; Key arrays (6 bytes) + 0x85, 0x01, // Report ID (1) + 0x09, 0x01, // Usage (Pointer) + 0xA1, 0x00, // Collection (Physical) + 0x05, 0x09, // Usage Page (Buttons) + 0x19, 0x01, // Usage Minimum (1) + 0x29, 0x03, // Usage Maximum (3) + 0x15, 0x00, // Logical Min (0) + 0x25, 0x01, // Logical Max (1) + 0x95, 0x03, // Report Count (3) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data,Var,Abs) // buttons + 0x95, 0x01, // Report Count (1) + 0x75, 0x05, // Report Size (5) + 0x81, 0x03, // Input (Const,Var,Abs) // padding + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x30, // Usage (X) + 0x09, 0x31, // Usage (Y) + 0x15, 0x00, // Logical Min (0) + 0x26, 0xFF, 0x7F, // Logical Max (32767) + 0x75, 0x10, // Report Size (16 bits per axis) + 0x95, 0x02, // Report Count (2 axes) + 0x81, 0x02, // Input (Data,Var,Abs) // ABSOLUTE + 0xC0, // End Collection 0xC0, // End Collection ]); + final reportMapData = Uint8List.fromList([ + 0x05, 0x0d, // USAGE_PAGE (Digitizers) + 0x09, 0x04, // USAGE (Touch Screen) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, 0x02, // REPORT_ID (Touch) + 0x09, 0x20, // USAGE (Stylus) + 0xa1, 0x00, // COLLECTION (Physical) + 0x09, 0x42, // USAGE (Tip Switch) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x95, 0x03, // REPORT_COUNT (3) + 0x81, 0x03, // INPUT (Cnst,Ary,Abs) + 0x09, 0x32, // USAGE (In Range) + 0x09, 0x47, // USAGE (Confidence) + 0x95, 0x02, // REPORT_COUNT (2) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x95, 0x0a, // REPORT_COUNT (10) + 0x81, 0x03, // INPUT (Cnst,Ary,Abs) + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x26, 0xff, 0x7f, // LOGICAL_MAXIMUM (32767) + 0x75, 0x10, // REPORT_SIZE (16) + 0x95, 0x01, // REPORT_COUNT (1) + 0xa4, // PUSH + 0x55, 0x0d, // UNIT_EXPONENT (-3) + 0x65, 0x00, // UNIT (None) + 0x09, 0x30, // USAGE (X) + 0x35, 0x00, // PHYSICAL_MINIMUM (0) + 0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x09, 0x31, // USAGE (Y) + 0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0xb4, // POP + 0x05, 0x0d, // USAGE PAGE (Digitizers) + 0x09, 0x48, // USAGE (Width) + 0x09, 0x49, // USAGE (Height) + 0x95, 0x02, // REPORT_COUNT (2) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x03, // INPUT (Cnst,Ary,Abs) + 0xc0, // END_COLLECTION + 0xc0, // END_COLLECTION + ]); + // 1) Build characteristics final hidInfo = GATTCharacteristic.immutable( uuid: UUID.fromString('2A4A'), @@ -86,7 +131,7 @@ Future startHidPeripheral() async { uuid: UUID.fromString('2A4B'), //properties: [GATTCharacteristicProperty.read], //permissions: [GATTCharacteristicPermission.read], - value: reportMapData, + value: reportMapDataAbsolute, descriptors: [ GATTDescriptor.immutable(uuid: UUID.fromString('2908'), value: Uint8List.fromList([0x0, 0x0])), ], @@ -196,7 +241,9 @@ Future startHidPeripheral() async { pm.characteristicNotifyStateChanged.forEach((char) { _connectedCentral = char.central; _connectedCharacteristic = char.characteristic; - print('Notify state changed for characteristic: ${char.characteristic.uuid}'); + print( + 'Notify state changed for characteristic: ${char.characteristic.uuid} vs ${char.characteristic.uuid == inputReport.uuid}', + ); }); await pm.startAdvertising(advertisement); @@ -208,11 +255,29 @@ Future sendMouseReport(int buttons, int dx, int dy) async { await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: data); } +Uint8List absMouseReport(int buttons3bit, int x, int y) { + final b = buttons3bit & 0x07; // lower 3 bits used + return Uint8List.fromList([ + 0x01, // Report ID + b, // buttons + implicit padding + x & 0xFF, (x >> 8) & 0xFF, // X 0..32767 + y & 0xFF, (y >> 8) & 0xFF, // Y 0..32767 + ]); +} + +// Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] +Future sendAbsMouseReport(int buttons, int dx, int dy) async { + await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: absMouseReport(buttons, dx, dy)); +} + class ConnectRequirement extends PlatformRequirement { ConnectRequirement() : super('Connect to your other iOS device'); @override Future call() async { + if (Platform.isAndroid) { + await pm.authorize(); + } await startHidPeripheral(); } @@ -230,15 +295,15 @@ class ConnectRequirement extends PlatformRequirement { ), ElevatedButton( onPressed: () async { - sendMouseReport(1, 20, 20); + sendAbsMouseReport(1, (32767 / 2).toInt(), (32767 / 2).toInt()); }, - child: Text('Simulate'), + child: Text('1'), ), ElevatedButton( onPressed: () async { - sendMouseReport(1, -20, -20); + sendAbsMouseReport(1, 10, 10); }, - child: Text('Simulate'), + child: Text('2'), ), ], ); diff --git a/lib/widgets/menu.dart b/lib/widgets/menu.dart index b24a59e..53ef410 100644 --- a/lib/widgets/menu.dart +++ b/lib/widgets/menu.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; +import 'package:swift_control/bluetooth/messages/ride_notification.dart'; import 'package:swift_control/main.dart'; import 'package:swift_control/utils/keymap/buttons.dart'; import 'package:swift_control/widgets/title.dart'; @@ -69,7 +70,9 @@ class MenuButton extends StatelessWidget { child: Text(e.name), onTap: () { Future.delayed(Duration(seconds: 2)).then((_) { - actionHandler.performAction(e); + connection.devices.firstOrNull?.actionStreamInternal.add( + RideNotification(Uint8List(0))..buttonsClicked = [e], + ); }); }, ), From 11fdcad57d893471dc59b770e33dd75367c9da5a Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Tue, 7 Oct 2025 16:41:53 +0200 Subject: [PATCH 06/59] make it work #3 --- .github/workflows/build.yml | 3 +- lib/utils/requirements/ios.dart | 118 +++++++------------------------- 2 files changed, 28 insertions(+), 93 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ad2836f..7d1bf8f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -138,7 +138,7 @@ jobs: artifacts: "build/app/outputs/flutter-apk/SwiftControl.android.apk,build/macos/Build/Products/Release/SwiftControl.macos.zip" allowUpdates: true prerelease: ${{ endsWith(env.VERSION, '1337') }} - body: "You can also download the Android version from the Play Store: https://play.google.com/store/apps/details?id=de.jonasbark.swiftcontrol" + body: "I recommend downloading the Android version from the Play Store: https://play.google.com/store/apps/details?id=de.jonasbark.swiftcontrol" tag: v${{ env.VERSION }} token: ${{ secrets.TOKEN }} @@ -248,5 +248,6 @@ jobs: with: allowUpdates: true artifacts: "build/windows/x64/runner/Release/SwiftControl.windows.zip" + body: "I recommend downloading the Android version from the Play Store: https://play.google.com/store/apps/details?id=de.jonasbark.swiftcontrol" tag: v${{ env.VERSION }} token: ${{ secrets.TOKEN }} diff --git a/lib/utils/requirements/ios.dart b/lib/utils/requirements/ios.dart index c110dfc..01672ce 100644 --- a/lib/utils/requirements/ios.dart +++ b/lib/utils/requirements/ios.dart @@ -11,38 +11,6 @@ Central? _connectedCentral; GATTCharacteristic? _connectedCharacteristic; Future startHidPeripheral() async { - final reportMapDataRelative = Uint8List.fromList([ - // Mouse (Report ID 1) - 0x05, 0x01, // Usage Page (Generic Desktop) - 0x09, 0x02, // Usage (Mouse) - 0xA1, 0x01, // Collection (Application) - 0x85, 0x01, // Report ID (1) - 0x09, 0x01, // Usage (Pointer) - 0xA1, 0x00, // Collection (Physical) - 0x05, 0x09, // Usage Page (Buttons) - 0x19, 0x01, // Usage Minimum (1) - 0x29, 0x03, // Usage Maximum (3) - 0x15, 0x00, // Logical Minimum (0) - 0x25, 0x01, // Logical Maximum (1) - 0x95, 0x03, // Report Count (3) - 0x75, 0x01, // Report Size (1) - 0x81, 0x02, // Input (Data, Variable, Absolute) - 0x95, 0x01, // Report Count (1) - 0x75, 0x05, // Report Size (5) - 0x81, 0x03, // Input (Constant, Variable, Absolute) - 0x05, 0x01, // Usage Page (Generic Desktop) - 0x09, 0x30, // Usage (X) - 0x09, 0x31, // Usage (Y) - 0x15, 0x81, // Logical Minimum (-127) - 0x25, 0x7F, // Logical Maximum (127) - 0x75, 0x08, // Report Size (8) - 0x95, 0x02, // Report Count (2) - 0x81, 0x06, // Input (Data, Variable, Relative) - 0xC0, // End Collection - 0xC0, // End Collection - // End Collection - ]); - final reportMapDataAbsolute = Uint8List.fromList([ 0x05, 0x01, // Usage Page (Generic Desktop) 0x09, 0x02, // Usage (Mouse) @@ -65,61 +33,14 @@ Future startHidPeripheral() async { 0x09, 0x30, // Usage (X) 0x09, 0x31, // Usage (Y) 0x15, 0x00, // Logical Min (0) - 0x26, 0xFF, 0x7F, // Logical Max (32767) - 0x75, 0x10, // Report Size (16 bits per axis) - 0x95, 0x02, // Report Count (2 axes) - 0x81, 0x02, // Input (Data,Var,Abs) // ABSOLUTE + 0x25, 0x64, // Logical Max (100) + 0x75, 0x08, // Report Size (8) + 0x95, 0x02, // Report Count (2) + 0x81, 0x02, // Input (Data,Var,Abs) 0xC0, // End Collection 0xC0, // End Collection ]); - final reportMapData = Uint8List.fromList([ - 0x05, 0x0d, // USAGE_PAGE (Digitizers) - 0x09, 0x04, // USAGE (Touch Screen) - 0xa1, 0x01, // COLLECTION (Application) - 0x85, 0x02, // REPORT_ID (Touch) - 0x09, 0x20, // USAGE (Stylus) - 0xa1, 0x00, // COLLECTION (Physical) - 0x09, 0x42, // USAGE (Tip Switch) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x75, 0x01, // REPORT_SIZE (1) - 0x95, 0x01, // REPORT_COUNT (1) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x03, // REPORT_COUNT (3) - 0x81, 0x03, // INPUT (Cnst,Ary,Abs) - 0x09, 0x32, // USAGE (In Range) - 0x09, 0x47, // USAGE (Confidence) - 0x95, 0x02, // REPORT_COUNT (2) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x0a, // REPORT_COUNT (10) - 0x81, 0x03, // INPUT (Cnst,Ary,Abs) - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x26, 0xff, 0x7f, // LOGICAL_MAXIMUM (32767) - 0x75, 0x10, // REPORT_SIZE (16) - 0x95, 0x01, // REPORT_COUNT (1) - 0xa4, // PUSH - 0x55, 0x0d, // UNIT_EXPONENT (-3) - 0x65, 0x00, // UNIT (None) - 0x09, 0x30, // USAGE (X) - 0x35, 0x00, // PHYSICAL_MINIMUM (0) - 0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x09, 0x31, // USAGE (Y) - 0x46, 0x00, 0x00, // PHYSICAL_MAXIMUM (0) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0xb4, // POP - 0x05, 0x0d, // USAGE PAGE (Digitizers) - 0x09, 0x48, // USAGE (Width) - 0x09, 0x49, // USAGE (Height) - 0x95, 0x02, // REPORT_COUNT (2) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x81, 0x03, // INPUT (Cnst,Ary,Abs) - 0xc0, // END_COLLECTION - 0xc0, // END_COLLECTION - ]); - // 1) Build characteristics final hidInfo = GATTCharacteristic.immutable( uuid: UUID.fromString('2A4A'), @@ -256,13 +177,10 @@ Future sendMouseReport(int buttons, int dx, int dy) async { } Uint8List absMouseReport(int buttons3bit, int x, int y) { - final b = buttons3bit & 0x07; // lower 3 bits used - return Uint8List.fromList([ - 0x01, // Report ID - b, // buttons + implicit padding - x & 0xFF, (x >> 8) & 0xFF, // X 0..32767 - y & 0xFF, (y >> 8) & 0xFF, // Y 0..32767 - ]); + final b = buttons3bit & 0x07; + final xi = x.clamp(0, 100); + final yi = y.clamp(0, 100); + return Uint8List.fromList([0x01, b, xi, yi]); } // Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] @@ -295,13 +213,29 @@ class ConnectRequirement extends PlatformRequirement { ), ElevatedButton( onPressed: () async { - sendAbsMouseReport(1, (32767 / 2).toInt(), (32767 / 2).toInt()); + //sendAbsMouseReport(1, 0, 50); + final topLeft = Uint8List.fromList([ + 0x01, // Report ID + 0x00, // Buttons + 0x00, // X = 0 + 0x00, // Y = 0 + ]); + + await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: topLeft); }, child: Text('1'), ), ElevatedButton( onPressed: () async { - sendAbsMouseReport(1, 10, 10); + final bottomRight = Uint8List.fromList([ + 0x01, // Report ID + 0x00, // Buttons + 0x64, // X = 100 + 0x64, // Y = 100 + ]); + + //sendAbsMouseReport(2, 0, 90); + await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: bottomRight); }, child: Text('2'), ), From c0afe1792efd9b583469d4eeaf34d95d314b3643 Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Tue, 7 Oct 2025 16:53:19 +0200 Subject: [PATCH 07/59] make it work #4 --- lib/utils/requirements/ios.dart | 52 ++++++++++++++------------------- 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/lib/utils/requirements/ios.dart b/lib/utils/requirements/ios.dart index 01672ce..394a340 100644 --- a/lib/utils/requirements/ios.dart +++ b/lib/utils/requirements/ios.dart @@ -18,9 +18,9 @@ Future startHidPeripheral() async { 0x85, 0x01, // Report ID (1) 0x09, 0x01, // Usage (Pointer) 0xA1, 0x00, // Collection (Physical) - 0x05, 0x09, // Usage Page (Buttons) - 0x19, 0x01, // Usage Minimum (1) - 0x29, 0x03, // Usage Maximum (3) + 0x05, 0x09, // Usage Page (Button) + 0x19, 0x01, // Usage Min (1) + 0x29, 0x03, // Usage Max (3) 0x15, 0x00, // Logical Min (0) 0x25, 0x01, // Logical Max (1) 0x95, 0x03, // Report Count (3) @@ -33,12 +33,12 @@ Future startHidPeripheral() async { 0x09, 0x30, // Usage (X) 0x09, 0x31, // Usage (Y) 0x15, 0x00, // Logical Min (0) - 0x25, 0x64, // Logical Max (100) - 0x75, 0x08, // Report Size (8) - 0x95, 0x02, // Report Count (2) - 0x81, 0x02, // Input (Data,Var,Abs) - 0xC0, // End Collection - 0xC0, // End Collection + 0x25, 0x64, // Logical Max (100) + 0x75, 0x08, // Report Size (8) + 0x95, 0x02, // Report Count (2) + 0x81, 0x02, // Input (Data,Var,Abs) + 0xC0, + 0xC0, ]); // 1) Build characteristics @@ -163,7 +163,7 @@ Future startHidPeripheral() async { _connectedCentral = char.central; _connectedCharacteristic = char.characteristic; print( - 'Notify state changed for characteristic: ${char.characteristic.uuid} vs ${char.characteristic.uuid == inputReport.uuid}', + 'Notify state changed for characteristic: ${char.characteristic.uuid} vs ${char.characteristic.uuid == inputReport.uuid}: ${char.state}', ); }); @@ -180,12 +180,14 @@ Uint8List absMouseReport(int buttons3bit, int x, int y) { final b = buttons3bit & 0x07; final xi = x.clamp(0, 100); final yi = y.clamp(0, 100); - return Uint8List.fromList([0x01, b, xi, yi]); + return Uint8List.fromList([b, xi, yi]); } // Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] Future sendAbsMouseReport(int buttons, int dx, int dy) async { - await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: absMouseReport(buttons, dx, dy)); + final bytes = absMouseReport(buttons, dx, dy); + print('Sending abs mouse report: ${bytes.map((e) => e.toRadixString(16).padLeft(2, '0'))}'); + await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: bytes); } class ConnectRequirement extends PlatformRequirement { @@ -213,32 +215,22 @@ class ConnectRequirement extends PlatformRequirement { ), ElevatedButton( onPressed: () async { - //sendAbsMouseReport(1, 0, 50); - final topLeft = Uint8List.fromList([ - 0x01, // Report ID - 0x00, // Buttons - 0x00, // X = 0 - 0x00, // Y = 0 - ]); - - await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: topLeft); + sendAbsMouseReport(1, 0, 0); }, child: Text('1'), ), ElevatedButton( onPressed: () async { - final bottomRight = Uint8List.fromList([ - 0x01, // Report ID - 0x00, // Buttons - 0x64, // X = 100 - 0x64, // Y = 100 - ]); - - //sendAbsMouseReport(2, 0, 90); - await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: bottomRight); + sendAbsMouseReport(1, 0, 90); }, child: Text('2'), ), + ElevatedButton( + onPressed: () async { + sendAbsMouseReport(1, 99, 99); + }, + child: Text('3'), + ), ], ); } From 0d446ee293d2e4e6d0c9875b18b462ae8fb2a77e Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Tue, 7 Oct 2025 17:47:05 +0200 Subject: [PATCH 08/59] make it work #5 --- lib/main.dart | 5 +- lib/pages/touch_area.dart | 2 +- lib/utils/actions/ios.dart | 90 ++++++ lib/utils/requirements/ios.dart | 433 ++++++++++++++------------- lib/utils/requirements/platform.dart | 2 +- pubspec.yaml | 2 +- 6 files changed, 314 insertions(+), 220 deletions(-) create mode 100644 lib/utils/actions/ios.dart diff --git a/lib/main.dart b/lib/main.dart index 1303688..0743ff3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,6 +8,7 @@ import 'package:swift_control/pages/requirements.dart'; import 'package:swift_control/theme.dart'; import 'package:swift_control/utils/actions/android.dart'; import 'package:swift_control/utils/actions/desktop.dart'; +import 'package:swift_control/utils/actions/ios.dart'; import 'package:swift_control/utils/settings/settings.dart'; import 'package:window_manager/window_manager.dart'; @@ -24,8 +25,10 @@ void main() async { WidgetsFlutterBinding.ensureInitialized(); if (kIsWeb) { actionHandler = StubActions(); - } else if (Platform.isAndroid || Platform.isIOS) { + } else if (Platform.isAndroid) { actionHandler = AndroidActions(); + } else if (Platform.isIOS) { + actionHandler = IosActions(); } else { actionHandler = DesktopActions(); // Must add this line. diff --git a/lib/pages/touch_area.dart b/lib/pages/touch_area.dart index 68a4040..02f6fd9 100644 --- a/lib/pages/touch_area.dart +++ b/lib/pages/touch_area.dart @@ -134,7 +134,7 @@ class _TouchAreaSetupPageState extends State { // figure out notch height for e.g. macOS. On Windows the display size is not available (0,0). final differenceInHeight = - (flutterView.display.size.height > 0) + (flutterView.display.size.height > 0 && !Platform.isIOS) ? (flutterView.display.size.height - flutterView.physicalSize.height) / flutterView.devicePixelRatio : 0.0; diff --git a/lib/utils/actions/ios.dart b/lib/utils/actions/ios.dart new file mode 100644 index 0000000..efc31c7 --- /dev/null +++ b/lib/utils/actions/ios.dart @@ -0,0 +1,90 @@ +import 'dart:math'; + +import 'package:bluetooth_low_energy/bluetooth_low_energy.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:swift_control/utils/actions/base_actions.dart'; +import 'package:swift_control/utils/keymap/buttons.dart'; +import 'package:swift_control/widgets/keymap_explanation.dart'; + +import '../keymap/apps/supported_app.dart'; +import '../requirements/ios.dart'; + +class IosActions extends BaseActions { + Central? _connectedCentral; + GATTCharacteristic? _connectedCharacteristic; + + late final Size screenSize; + + @override + void init(SupportedApp? supportedApp) { + super.init(supportedApp); + + final flutterView = WidgetsBinding.instance.platformDispatcher.views.first; + screenSize = flutterView.physicalSize; + } + + @override + Future performAction(ZwiftButton action, {bool isKeyDown = true, bool isKeyUp = false}) async { + if (supportedApp == null) { + return ('Supported app is not set'); + } + + final keyPair = supportedApp!.keymap.getKeyPair(action); + if (keyPair == null) { + return ('Keymap entry not found for action: ${action.toString().splitByUpperCase()}'); + } + + if (keyPair.physicalKey != null) { + return ('Physical key actions are not supported on iOS'); + } else { + final point = supportedApp!.resolveTouchPosition(action: action, windowInfo: null); + /*if (isKeyDown && isKeyUp) { + await keyPressSimulator.simulateMouseClickDown(point); + await keyPressSimulator.simulateMouseClickUp(point); + return 'Mouse clicked at: ${point.dx} ${point.dy}'; + } else if (isKeyDown) { + await keyPressSimulator.simulateMouseClickDown(point); + return 'Mouse down at: ${point.dx} ${point.dy}'; + } else { + await keyPressSimulator.simulateMouseClickUp(point); + return 'Mouse up at: ${point.dx} ${point.dy}'; + }*/ + await sendAbsMouseReport(0, point.dx.toInt(), point.dy.toInt()); + await sendAbsMouseReport(1, point.dx.toInt(), point.dy.toInt()); + await sendAbsMouseReport(0, point.dx.toInt(), point.dy.toInt()); + return 'Mouse moved to: ${point.dx} ${point.dy}'; + } + } + + Uint8List absMouseReport(int buttons3bit, int x, int y) { + final b = buttons3bit & 0x07; + final xi = x.clamp(0, 100); + final yi = y.clamp(0, 100); + return Uint8List.fromList([b, xi, yi]); + } + + // Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] + Future sendAbsMouseReport(int buttons, int dx, int dy) async { + int toX100(int v) => ((v / max(screenSize.width, screenSize.height)) * 100).toInt(); + int toY100(int v) => ((v / min(screenSize.width, screenSize.height)) * 100).toInt(); + + final x100 = toX100(dx); + final y100 = toY100(dy); + + print( + 'Preparing to send abs mouse report: buttons=$buttons, dx=$dx, dy=$dy => x100=$x100, y100=$y100 per screen size: $screenSize', + ); + + final bytes = absMouseReport(buttons, x100, y100); + print('Sending abs mouse report: ${bytes.map((e) => e.toRadixString(16).padLeft(2, '0'))}'); + await peripheralManager.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: bytes); + } + + void setConnectedCentral(Central? central, GATTCharacteristic? gattCharacteristic) { + _connectedCentral = central; + _connectedCharacteristic = gattCharacteristic; + } + + bool get isConnected => _connectedCentral != null; +} diff --git a/lib/utils/requirements/ios.dart b/lib/utils/requirements/ios.dart index 394a340..b6da2bf 100644 --- a/lib/utils/requirements/ios.dart +++ b/lib/utils/requirements/ios.dart @@ -3,240 +3,241 @@ import 'dart:typed_data'; import 'package:bluetooth_low_energy/bluetooth_low_energy.dart'; import 'package:flutter/material.dart'; +import 'package:swift_control/main.dart'; import 'package:swift_control/utils/requirements/platform.dart'; -final pm = PeripheralManager(); +import '../actions/ios.dart'; -Central? _connectedCentral; -GATTCharacteristic? _connectedCharacteristic; - -Future startHidPeripheral() async { - final reportMapDataAbsolute = Uint8List.fromList([ - 0x05, 0x01, // Usage Page (Generic Desktop) - 0x09, 0x02, // Usage (Mouse) - 0xA1, 0x01, // Collection (Application) - 0x85, 0x01, // Report ID (1) - 0x09, 0x01, // Usage (Pointer) - 0xA1, 0x00, // Collection (Physical) - 0x05, 0x09, // Usage Page (Button) - 0x19, 0x01, // Usage Min (1) - 0x29, 0x03, // Usage Max (3) - 0x15, 0x00, // Logical Min (0) - 0x25, 0x01, // Logical Max (1) - 0x95, 0x03, // Report Count (3) - 0x75, 0x01, // Report Size (1) - 0x81, 0x02, // Input (Data,Var,Abs) // buttons - 0x95, 0x01, // Report Count (1) - 0x75, 0x05, // Report Size (5) - 0x81, 0x03, // Input (Const,Var,Abs) // padding - 0x05, 0x01, // Usage Page (Generic Desktop) - 0x09, 0x30, // Usage (X) - 0x09, 0x31, // Usage (Y) - 0x15, 0x00, // Logical Min (0) - 0x25, 0x64, // Logical Max (100) - 0x75, 0x08, // Report Size (8) - 0x95, 0x02, // Report Count (2) - 0x81, 0x02, // Input (Data,Var,Abs) - 0xC0, - 0xC0, - ]); - - // 1) Build characteristics - final hidInfo = GATTCharacteristic.immutable( - uuid: UUID.fromString('2A4A'), - value: Uint8List.fromList([0x11, 0x01, 0x00, 0x02]), - descriptors: [], // HID v1.11, country=0, flags=2 - ); - - final reportMap = GATTCharacteristic.immutable( - uuid: UUID.fromString('2A4B'), - //properties: [GATTCharacteristicProperty.read], - //permissions: [GATTCharacteristicPermission.read], - value: reportMapDataAbsolute, - descriptors: [ - GATTDescriptor.immutable(uuid: UUID.fromString('2908'), value: Uint8List.fromList([0x0, 0x0])), - ], - ); - - final protocolMode = GATTCharacteristic.mutable( - uuid: UUID.fromString('2A4E'), - properties: [GATTCharacteristicProperty.read, GATTCharacteristicProperty.writeWithoutResponse], - permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], - descriptors: [], - ); - - final hidControlPoint = GATTCharacteristic.mutable( - uuid: UUID.fromString('2A4C'), - properties: [GATTCharacteristicProperty.writeWithoutResponse], - permissions: [GATTCharacteristicPermission.write], - descriptors: [], - ); - - // Input report characteristic (notify) - final inputReport = GATTCharacteristic.mutable( - uuid: UUID.fromString('2A4D'), - permissions: [GATTCharacteristicPermission.read], - properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], - descriptors: [ - GATTDescriptor.immutable( - // Report Reference: ID=1, Type=Input(1) - uuid: UUID.fromString('2908'), - value: Uint8List.fromList([0x01, 0x01]), - ), - ], - ); - // Input report characteristic (notify) - final keyboardInputReport = GATTCharacteristic.mutable( - uuid: UUID.fromString('2A4D'), - permissions: [GATTCharacteristicPermission.read], - properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], - descriptors: [ - GATTDescriptor.immutable( - // Report Reference: ID=1, Type=Input(1) - uuid: UUID.fromString('2908'), - value: Uint8List.fromList([0x02, 0x01]), - ), - ], - ); - - final outputReport = GATTCharacteristic.mutable( - uuid: UUID.fromString('2A4D'), - permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], - properties: [ - GATTCharacteristicProperty.read, - GATTCharacteristicProperty.write, - GATTCharacteristicProperty.writeWithoutResponse, - ], - descriptors: [ - GATTDescriptor.immutable( - // Report Reference: ID=1, Type=Input(1) - uuid: UUID.fromString('2908'), - value: Uint8List.fromList([0x02, 0x02]), - ), - ], - ); - - // 2) HID service - final hidService = GATTService( - uuid: UUID.fromString('00001812-0000-1000-8000-00805F9B34FB'), - isPrimary: true, - characteristics: [ - hidInfo, - reportMap, - protocolMode, - outputReport, - hidControlPoint, - keyboardInputReport, - inputReport, - ], - includedServices: [], - ); - - await pm.addService(hidService); - - // 3) Optional Battery service - await pm.addService( - GATTService( - uuid: UUID.fromString('180F'), - isPrimary: true, - characteristics: [ - GATTCharacteristic.immutable(uuid: UUID.fromString('2A19'), value: Uint8List.fromList([100]), descriptors: []), - ], - includedServices: [], - ), - ); - - final advertisement = Advertisement( - name: 'SwiftControl', - serviceUUIDs: [UUID.fromString('00001812-0000-1000-8000-00805F9B34FB')], - ); - /*pm.connectionStateChanged.forEach((state) { - print('Peripheral connection state: $state'); - });*/ - - pm.characteristicReadRequested.forEach((char) { - print('Read request for characteristic: ${char}'); - // You can respond to read requests here if needed - }); - - pm.characteristicNotifyStateChanged.forEach((char) { - _connectedCentral = char.central; - _connectedCharacteristic = char.characteristic; - print( - 'Notify state changed for characteristic: ${char.characteristic.uuid} vs ${char.characteristic.uuid == inputReport.uuid}: ${char.state}', - ); - }); - - await pm.startAdvertising(advertisement); -} - -// Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] -Future sendMouseReport(int buttons, int dx, int dy) async { - final data = Uint8List.fromList([buttons & 0x07, dx & 0xFF, dy & 0xFF]); - await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: data); -} - -Uint8List absMouseReport(int buttons3bit, int x, int y) { - final b = buttons3bit & 0x07; - final xi = x.clamp(0, 100); - final yi = y.clamp(0, 100); - return Uint8List.fromList([b, xi, yi]); -} - -// Send a relative mouse move + button state as 3-byte report: [buttons, dx, dy] -Future sendAbsMouseReport(int buttons, int dx, int dy) async { - final bytes = absMouseReport(buttons, dx, dy); - print('Sending abs mouse report: ${bytes.map((e) => e.toRadixString(16).padLeft(2, '0'))}'); - await pm.notifyCharacteristic(_connectedCentral!, _connectedCharacteristic!, value: bytes); -} +final peripheralManager = PeripheralManager(); +bool _isAdvertising = false; +bool _isSubscribedToEvents = false; class ConnectRequirement extends PlatformRequirement { ConnectRequirement() : super('Connect to your other iOS device'); @override - Future call() async { + Future call() async {} + + Future startAdvertising(VoidCallback onUpdate) async { if (Platform.isAndroid) { - await pm.authorize(); + await peripheralManager.authorize(); } - await startHidPeripheral(); + await peripheralManager.removeAllServices(); + + final reportMapDataAbsolute = Uint8List.fromList([ + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x02, // Usage (Mouse) + 0xA1, 0x01, // Collection (Application) + 0x85, 0x01, // Report ID (1) + 0x09, 0x01, // Usage (Pointer) + 0xA1, 0x00, // Collection (Physical) + 0x05, 0x09, // Usage Page (Button) + 0x19, 0x01, // Usage Min (1) + 0x29, 0x03, // Usage Max (3) + 0x15, 0x00, // Logical Min (0) + 0x25, 0x01, // Logical Max (1) + 0x95, 0x03, // Report Count (3) + 0x75, 0x01, // Report Size (1) + 0x81, 0x02, // Input (Data,Var,Abs) // buttons + 0x95, 0x01, // Report Count (1) + 0x75, 0x05, // Report Size (5) + 0x81, 0x03, // Input (Const,Var,Abs) // padding + 0x05, 0x01, // Usage Page (Generic Desktop) + 0x09, 0x30, // Usage (X) + 0x09, 0x31, // Usage (Y) + 0x15, 0x00, // Logical Min (0) + 0x25, 0x64, // Logical Max (100) + 0x75, 0x08, // Report Size (8) + 0x95, 0x02, // Report Count (2) + 0x81, 0x02, // Input (Data,Var,Abs) + 0xC0, + 0xC0, + ]); + + // 1) Build characteristics + final hidInfo = GATTCharacteristic.immutable( + uuid: UUID.fromString('2A4A'), + value: Uint8List.fromList([0x11, 0x01, 0x00, 0x02]), + descriptors: [], // HID v1.11, country=0, flags=2 + ); + + final reportMap = GATTCharacteristic.immutable( + uuid: UUID.fromString('2A4B'), + //properties: [GATTCharacteristicProperty.read], + //permissions: [GATTCharacteristicPermission.read], + value: reportMapDataAbsolute, + descriptors: [ + GATTDescriptor.immutable(uuid: UUID.fromString('2908'), value: Uint8List.fromList([0x0, 0x0])), + ], + ); + + final protocolMode = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4E'), + properties: [GATTCharacteristicProperty.read, GATTCharacteristicProperty.writeWithoutResponse], + permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], + descriptors: [], + ); + + final hidControlPoint = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4C'), + properties: [GATTCharacteristicProperty.writeWithoutResponse], + permissions: [GATTCharacteristicPermission.write], + descriptors: [], + ); + + // Input report characteristic (notify) + final inputReport = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4D'), + permissions: [GATTCharacteristicPermission.read], + properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], + descriptors: [ + GATTDescriptor.immutable( + // Report Reference: ID=1, Type=Input(1) + uuid: UUID.fromString('2908'), + value: Uint8List.fromList([0x01, 0x01]), + ), + ], + ); + // Input report characteristic (notify) + final keyboardInputReport = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4D'), + permissions: [GATTCharacteristicPermission.read], + properties: [GATTCharacteristicProperty.notify, GATTCharacteristicProperty.read], + descriptors: [ + GATTDescriptor.immutable( + // Report Reference: ID=1, Type=Input(1) + uuid: UUID.fromString('2908'), + value: Uint8List.fromList([0x02, 0x01]), + ), + ], + ); + + final outputReport = GATTCharacteristic.mutable( + uuid: UUID.fromString('2A4D'), + permissions: [GATTCharacteristicPermission.read, GATTCharacteristicPermission.write], + properties: [ + GATTCharacteristicProperty.read, + GATTCharacteristicProperty.write, + GATTCharacteristicProperty.writeWithoutResponse, + ], + descriptors: [ + GATTDescriptor.immutable( + // Report Reference: ID=1, Type=Input(1) + uuid: UUID.fromString('2908'), + value: Uint8List.fromList([0x02, 0x02]), + ), + ], + ); + + // 2) HID service + final hidService = GATTService( + uuid: UUID.fromString('00001812-0000-1000-8000-00805F9B34FB'), + isPrimary: true, + characteristics: [ + hidInfo, + reportMap, + protocolMode, + outputReport, + hidControlPoint, + keyboardInputReport, + inputReport, + ], + includedServices: [], + ); + + if (!_isSubscribedToEvents) { + _isSubscribedToEvents = true; + peripheralManager.characteristicReadRequested.forEach((char) { + print('Read request for characteristic: ${char}'); + // You can respond to read requests here if needed + }); + + peripheralManager.characteristicNotifyStateChanged.forEach((char) { + if (char.characteristic.uuid == inputReport.uuid) { + if (char.state) { + (actionHandler as IosActions).setConnectedCentral(char.central, char.characteristic); + } else { + (actionHandler as IosActions).setConnectedCentral(null, null); + } + onUpdate(); + } + print( + 'Notify state changed for characteristic: ${char.characteristic.uuid} vs ${char.characteristic.uuid == inputReport.uuid}: ${char.state}', + ); + }); + } + await peripheralManager.addService(hidService); + + // 3) Optional Battery service + await peripheralManager.addService( + GATTService( + uuid: UUID.fromString('180F'), + isPrimary: true, + characteristics: [ + GATTCharacteristic.immutable( + uuid: UUID.fromString('2A19'), + value: Uint8List.fromList([100]), + descriptors: [], + ), + ], + includedServices: [], + ), + ); + + final advertisement = Advertisement( + name: 'SwiftControl', + serviceUUIDs: [UUID.fromString('00001812-0000-1000-8000-00805F9B34FB')], + ); + /*pm.connectionStateChanged.forEach((state) { + print('Peripheral connection state: $state'); + });*/ + + await peripheralManager.startAdvertising(advertisement); } @override Widget? build(BuildContext context, VoidCallback onUpdate) { - return Row( - spacing: 10, - children: [ - ElevatedButton( - onPressed: () async { - await call(); - onUpdate(); - }, - child: Text('Start Pairing'), - ), - ElevatedButton( - onPressed: () async { - sendAbsMouseReport(1, 0, 0); - }, - child: Text('1'), - ), - ElevatedButton( - onPressed: () async { - sendAbsMouseReport(1, 0, 90); - }, - child: Text('2'), - ), - ElevatedButton( - onPressed: () async { - sendAbsMouseReport(1, 99, 99); - }, - child: Text('3'), - ), - ], + return StatefulBuilder( + builder: + (context, setState) => Row( + spacing: 10, + children: [ + ElevatedButton( + onPressed: () async { + if (_isAdvertising) { + await peripheralManager.stopAdvertising(); + _isAdvertising = false; + (actionHandler as IosActions).setConnectedCentral(null, null); + onUpdate(); + setState(() {}); + } else { + _isAdvertising = true; + setState(() {}); + } + await startAdvertising(onUpdate); + }, + child: Text(_isAdvertising ? 'Stop Pairing' : 'Start Pairing'), + ), + if (_isAdvertising) CircularProgressIndicator(), + /*ElevatedButton( + onPressed: () async { + sendAbsMouseReport(1, 0, 0); + }, + child: Text('1'), + ), + ElevatedButton( + onPressed: () async { + sendAbsMouseReport(1, 0, 90); + }, + child: Text('2'), + ),*/ + ], + ), ); } @override Future getStatus() async { - status = false; + status = (actionHandler as IosActions).isConnected; } } diff --git a/lib/utils/requirements/platform.dart b/lib/utils/requirements/platform.dart index bd81e18..3290582 100644 --- a/lib/utils/requirements/platform.dart +++ b/lib/utils/requirements/platform.dart @@ -29,7 +29,7 @@ Future> getRequirements() async { } else if (Platform.isMacOS) { list = [BluetoothTurnedOn(), KeyboardRequirement(), BluetoothScanning()]; } else if (Platform.isIOS) { - list = [BluetoothTurnedOn(), ConnectRequirement()]; + list = [BluetoothTurnedOn(), ConnectRequirement(), BluetoothScanning()]; } else if (Platform.isWindows) { list = [BluetoothTurnedOn(), KeyboardRequirement(), BluetoothScanning()]; } else if (Platform.isAndroid) { diff --git a/pubspec.yaml b/pubspec.yaml index 8a17fda..3e9c7f9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: swift_control description: "SwiftControl - Control your virtual riding" publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 2.6.4+10 +version: 2.7.0+11 environment: sdk: ^3.7.0 From 8eef01437c769eefb28a20ee000f719e6b586758 Mon Sep 17 00:00:00 2001 From: Jonas Bark Date: Tue, 7 Oct 2025 18:33:00 +0200 Subject: [PATCH 09/59] make it work #6 --- flutter_launcher_icons.yaml | 4 +- ios/Runner.xcodeproj/project.pbxproj | 16 +-- .../AppIcon.appiconset/Contents.json | 123 +----------------- .../Icon-App-1024x1024@1x.png | Bin 10932 -> 900598 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 1140 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 3298 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 6339 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 2009 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 5978 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 11796 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 3298 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 10171 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 20534 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 4735 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 14980 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 5826 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 18835 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 20534 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 43611 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 8611 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 28588 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 9338 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 31796 bytes .../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 37810 bytes lib/utils/requirements/ios.dart | 55 ++++---- 25 files changed, 37 insertions(+), 161 deletions(-) create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png diff --git a/flutter_launcher_icons.yaml b/flutter_launcher_icons.yaml index 7ce9f6e..68099e1 100644 --- a/flutter_launcher_icons.yaml +++ b/flutter_launcher_icons.yaml @@ -9,9 +9,9 @@ flutter_launcher_icons: # adaptive_icon_foreground: "assets/icon/foreground.png" # adaptive_icon_monochrome: "assets/icon/monochrome.png" - ios: false + ios: true # image_path_ios: "assets/icon/icon.png" - remove_alpha_channel_ios: true + remove_alpha_ios: true # image_path_ios_dark_transparent: "assets/icon/icon_dark.png" # image_path_ios_tinted_grayscale: "assets/icon/icon_tinted.png" # desaturate_tinted_to_grayscale_ios: true diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 0a6da7f..58b3d45 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -488,14 +488,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = 7BL8RUV2K6; + DEVELOPMENT_TEAM = UZRHKPVWN9; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.ios; + PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.darwin; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -557,7 +557,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -614,7 +614,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -671,14 +671,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = 7BL8RUV2K6; + DEVELOPMENT_TEAM = UZRHKPVWN9; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.ios; + PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.darwin; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -694,14 +694,14 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = 7BL8RUV2K6; + DEVELOPMENT_TEAM = UZRHKPVWN9; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.ios; + PRODUCT_BUNDLE_IDENTIFIER = de.jonasbark.swiftcontrol.darwin; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index d36b1fa..d0d98aa 100644 --- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,122 +1 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} +{"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index dc9ada4725e9b0ddb1deab583e5b5102493aa332..ec46833154ab266025350c3e3788356565f160a5 100644 GIT binary patch literal 900598 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�|^Q_n4SU1MdOf_KUDI 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

j{;J4X=4$SKzII1aUU7Q&yH`P|te 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 z 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