├── CNAME ├── SUMMARY.md ├── bluefalcon.png ├── library ├── src │ ├── commonMain │ │ └── kotlin │ │ │ └── dev │ │ │ └── bluefalcon │ │ │ ├── Uuid.kt │ │ │ ├── ServiceFilter.kt │ │ │ ├── ApplicationContext.kt │ │ │ ├── ConnectionPriority.kt │ │ │ ├── AdvertisementDataRetrievalKeys.kt │ │ │ ├── BluetoothPeripheralState.kt │ │ │ ├── Logger.kt │ │ │ ├── BluetoothService.kt │ │ │ ├── BluetoothCharacteristic.kt │ │ │ ├── BluetoothPeripheral.kt │ │ │ ├── Log.kt │ │ │ ├── Exceptions.kt │ │ │ ├── NativeFlow.kt │ │ │ ├── BlueFalconDelegate.kt │ │ │ └── BlueFalcon.kt │ ├── jsMain │ │ └── kotlin │ │ │ └── dev │ │ │ └── bluefalcon │ │ │ ├── ApplicationContext.kt │ │ │ ├── Uuid.js.kt │ │ │ ├── ConnectionPriority.js.kt │ │ │ ├── BluetoothPeripheral.js.kt │ │ │ ├── ServiceFilter.js.kt │ │ │ ├── external │ │ │ ├── Bluetooth.kt │ │ │ ├── BluetoothDevice.kt │ │ │ ├── BluetoothRemoteGATTServer.kt │ │ │ ├── BluetoothRemoteGATTCharacteristic.kt │ │ │ ├── BluetoothRemoteGATTService.kt │ │ │ └── BluetoothOptions.kt │ │ │ ├── BluetoothService.kt │ │ │ ├── BluetoothPeripheral.kt │ │ │ └── BluetoothCharacteristic.kt │ ├── rpiMain │ │ └── kotlin │ │ │ └── dev │ │ │ └── bluefalcon │ │ │ ├── ApplicationContext.kt │ │ │ ├── Uuid.rpi.kt │ │ │ ├── ServiceFilter.rpi.kt │ │ │ ├── BluetoothPeripheral.rpi.kt │ │ │ ├── BluetoothService.kt │ │ │ ├── BluetoothPeripheral.kt │ │ │ └── BluetoothCharacteristic.kt │ ├── androidMain │ │ └── kotlin │ │ │ └── dev │ │ │ └── bluefalcon │ │ │ ├── Uuid.android.kt │ │ │ ├── ApplicationContext.kt │ │ │ ├── BluetoothPeripheral.android.kt │ │ │ ├── ServiceFilter.android.kt │ │ │ ├── ConnectionPriority.android.kt │ │ │ ├── BluetoothService.kt │ │ │ ├── BluetoothPeripheral.kt │ │ │ └── BluetoothCharacteristic.kt │ ├── nativeMain │ │ └── kotlin │ │ │ └── dev │ │ │ └── bluefalcon │ │ │ ├── ConnectionPriority.native.kt │ │ │ ├── Uuid.native.kt │ │ │ ├── BluetoothPeripheral.native.kt │ │ │ ├── ServiceFilter.apple.kt │ │ │ ├── BluetoothService.kt │ │ │ ├── NSData.kt │ │ │ ├── BluetoothCharacteristic.kt │ │ │ ├── BluetoothPeripheral.kt │ │ │ └── PeripheralDelegate.kt │ ├── iosMain │ │ └── kotlin │ │ │ └── dev │ │ │ └── bluefalcon │ │ │ └── ApplicationContext.kt │ └── macosMain │ │ └── kotlin │ │ └── dev │ │ └── bluefalcon │ │ └── ApplicationContext.kt ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── settings.gradle.kts ├── gradle.properties ├── Info.plist ├── Blue_Falcon.podspec ├── gradlew.bat └── build.gradle.kts ├── examples ├── MacOS-Example │ ├── MacOS-Example │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ ├── Models │ │ │ ├── Descriptor.swift │ │ │ ├── BluetoothScanningState.swift │ │ │ └── BluetoothConnectionState.swift │ │ ├── ViewModels │ │ │ ├── DeviceServiceCellViewModel.swift │ │ │ ├── DevicesCellViewModel.swift │ │ │ ├── DeviceServiceViewModel.swift │ │ │ ├── DeviceViewModel.swift │ │ │ ├── DevicesViewModel.swift │ │ │ └── DeviceCharacteristicCellViewModel.swift │ │ ├── MacOS_Example.entitlements │ │ ├── Strings.swift │ │ ├── Views │ │ │ ├── ActivityIndicator.swift │ │ │ ├── Cells │ │ │ │ └── DevicesViewCell.swift │ │ │ ├── DeviceServiceView.swift │ │ │ ├── DeviceView.swift │ │ │ ├── DevicesView.swift │ │ │ └── DeviceCharacteristicCell.swift │ │ ├── Info.plist │ │ └── AppDelegate.swift │ └── MacOS-Example.xcodeproj │ │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── KotlinMP-Example │ ├── iosApp │ │ ├── iosApp │ │ │ ├── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ ├── AccentColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ ├── Preview Content │ │ │ │ └── Preview Assets.xcassets │ │ │ │ │ └── Contents.json │ │ │ ├── KMMViewModel.swift │ │ │ ├── iOSApp.swift │ │ │ ├── DevicesView.swift │ │ │ └── Info.plist │ │ └── iosApp.xcodeproj │ │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── swiftpm │ │ │ └── Package.resolved │ ├── androidApp │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ └── values │ │ │ │ │ └── styles.xml │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ └── dev │ │ │ │ └── bluefalcon │ │ │ │ └── kotlinmp_example │ │ │ │ └── android │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MyApplicationTheme.kt │ │ │ │ └── DevicesView.kt │ │ └── build.gradle.kts │ ├── gradle │ │ ├── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ └── libs.versions.toml │ ├── .gitignore │ ├── shared │ │ ├── src │ │ │ └── commonMain │ │ │ │ └── kotlin │ │ │ │ └── dev │ │ │ │ └── bluefalcon │ │ │ │ └── kotlinmp_example │ │ │ │ ├── viewmodels │ │ │ │ ├── BlueViewModel.kt │ │ │ │ └── DevicesViewModel.kt │ │ │ │ └── BlueFalconApplication.kt │ │ └── build.gradle.kts │ ├── gradle.properties │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── gradlew.bat ├── RPI-Example │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── src │ │ └── main │ │ │ └── kotlin │ │ │ └── dev │ │ │ └── bluefalcon │ │ │ ├── app │ │ │ ├── Application.kt │ │ │ └── Styles.kt │ │ │ ├── view │ │ │ └── MainView.kt │ │ │ └── controller │ │ │ └── MainController.kt │ ├── build.gradle │ └── gradlew.bat ├── ComposeMultiplatform-Example │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── iosBlueFalconExampleMP │ │ ├── iosBlueFalconExampleMP │ │ │ ├── Assets.xcassets │ │ │ │ ├── Contents.json │ │ │ │ ├── AccentColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ ├── Preview Content │ │ │ │ └── Preview Assets.xcassets │ │ │ │ │ └── Contents.json │ │ │ ├── iOSApp.swift │ │ │ ├── ContentView.swift │ │ │ ├── ComposeView.swift │ │ │ └── Info.plist │ │ └── iosBlueFalconExampleMP.xcodeproj │ │ │ └── project.xcworkspace │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── androidBlueFalconExampleMP │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ └── values │ │ │ │ │ └── styles.xml │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── bluefalconcomposemultiplatform │ │ │ │ └── android │ │ │ │ └── MainActivity.kt │ │ └── build.gradle.kts │ ├── .gitignore │ ├── shared │ │ ├── src │ │ │ ├── commonMain │ │ │ │ └── kotlin │ │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── bluefalconcomposemultiplatform │ │ │ │ │ ├── di │ │ │ │ │ └── AppModule.kt │ │ │ │ │ ├── ble │ │ │ │ │ ├── data │ │ │ │ │ │ ├── DeviceEvent.kt │ │ │ │ │ │ └── BleDelegate.kt │ │ │ │ │ └── presentation │ │ │ │ │ │ ├── BluetoothDeviceState.kt │ │ │ │ │ │ ├── EnhancedBluetoothPeripheral.kt │ │ │ │ │ │ ├── UiEvent.kt │ │ │ │ │ │ ├── component │ │ │ │ │ │ └── DeviceScanView.kt │ │ │ │ │ │ └── BluetoothDeviceViewModel.kt │ │ │ │ │ ├── core │ │ │ │ │ └── presentation │ │ │ │ │ │ └── BlueFalconTheme.kt │ │ │ │ │ ├── ui │ │ │ │ │ └── theme │ │ │ │ │ │ ├── Type.kt │ │ │ │ │ │ ├── Theme.kt │ │ │ │ │ │ └── Color.kt │ │ │ │ │ └── App.kt │ │ │ ├── iosMain │ │ │ │ └── kotlin │ │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── bluefalconcomposemultiplatform │ │ │ │ │ ├── di │ │ │ │ │ └── AppModule.ios.kt │ │ │ │ │ ├── MainViewController.kt │ │ │ │ │ └── core │ │ │ │ │ └── presentation │ │ │ │ │ └── BlueFalconTheme.ios.kt │ │ │ └── androidMain │ │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── bluefalconcomposemultiplatform │ │ │ │ ├── di │ │ │ │ └── AppModule.android.kt │ │ │ │ └── core │ │ │ │ └── presentation │ │ │ │ └── BlueFalconTheme.android.kt │ │ └── build.gradle.kts │ ├── gradle.properties │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── gradlew.bat └── JS-Example │ └── index.html ├── .idea └── externalDependencies.xml ├── gradle └── wrapper │ └── gradle-wrapper.properties ├── _config.yml ├── .github ├── workflows │ ├── pull-requests.yml │ └── release.yml ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md └── FUNDING.yml ├── CONTRIBUTING.md ├── gradlew.bat ├── CODE_OF_CONDUCT.md ├── .gitignore └── README.md /CNAME: -------------------------------------------------------------------------------- 1 | bluefalcon.dev -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Table of contents 2 | 3 | * [Introduction](README.md) 4 | 5 | -------------------------------------------------------------------------------- /bluefalcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Reedyuk/blue-falcon/HEAD/bluefalcon.png -------------------------------------------------------------------------------- /library/src/commonMain/kotlin/dev/bluefalcon/Uuid.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | expect class Uuid 4 | -------------------------------------------------------------------------------- /library/src/commonMain/kotlin/dev/bluefalcon/ServiceFilter.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | expect class ServiceFilter 4 | -------------------------------------------------------------------------------- /library/src/jsMain/kotlin/dev/bluefalcon/ApplicationContext.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | actual class ApplicationContext -------------------------------------------------------------------------------- /library/src/rpiMain/kotlin/dev/bluefalcon/ApplicationContext.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | actual class ApplicationContext -------------------------------------------------------------------------------- /library/src/commonMain/kotlin/dev/bluefalcon/ApplicationContext.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | expect class ApplicationContext -------------------------------------------------------------------------------- /library/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Reedyuk/blue-falcon/HEAD/library/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /examples/MacOS-Example/MacOS-Example/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /library/src/jsMain/kotlin/dev/bluefalcon/Uuid.js.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | import kotlin.uuid.Uuid 4 | 5 | actual typealias Uuid = Uuid -------------------------------------------------------------------------------- /library/src/rpiMain/kotlin/dev/bluefalcon/Uuid.rpi.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | import kotlin.uuid.Uuid 4 | 5 | actual typealias Uuid = Uuid -------------------------------------------------------------------------------- /examples/KotlinMP-Example/iosApp/iosApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } -------------------------------------------------------------------------------- /library/src/jsMain/kotlin/dev/bluefalcon/ConnectionPriority.js.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | actual fun ConnectionPriority.toNative(): Int = 0 4 | -------------------------------------------------------------------------------- /examples/RPI-Example/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Reedyuk/blue-falcon/HEAD/examples/RPI-Example/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /library/src/androidMain/kotlin/dev/bluefalcon/Uuid.android.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | import kotlin.uuid.Uuid 4 | 5 | actual typealias Uuid = Uuid 6 | -------------------------------------------------------------------------------- /library/src/nativeMain/kotlin/dev/bluefalcon/ConnectionPriority.native.kt: -------------------------------------------------------------------------------- 1 | package dev.bluefalcon 2 | 3 | actual fun ConnectionPriority.toNative(): Int = 0 4 | -------------------------------------------------------------------------------- /examples/KotlinMP-Example/androidApp/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 |