Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e284550
Build from source (#1)
Ben1980 Jan 29, 2024
306fd94
Update dive_computer_ffi.dart
Ben1980 Jan 29, 2024
98ec792
Extracting hardware interfaces into own utility class
Ben1980 Jan 29, 2024
21e085a
usb.h and .c added. Bindings extended
Ben1980 Jan 29, 2024
3782658
Update dive_computer_ffi_bindings_generated.dart
Ben1980 Jan 29, 2024
41ca423
usbhid added
Ben1980 Jan 29, 2024
b60e629
Update CMakeLists.txt
Ben1980 Jan 29, 2024
220a724
backup
Ben1980 Jan 29, 2024
41a1ed6
Merge branch 'develop' into usb-support
Sese-Schneider Jan 29, 2024
1434aef
Merge branch 'usb-support' of https://github.com/Ben1980/dive_compute…
Ben1980 Jan 30, 2024
9dd3c6e
Update dive_computer_interfaces.dart
Ben1980 Jan 30, 2024
3f93792
adding defines
Ben1980 Feb 1, 2024
553e091
hidapi submodule added
Ben1980 Feb 2, 2024
08db24c
Update CMakeLists.txt
Ben1980 Feb 2, 2024
39e9c46
macos is creating usbhid iterator
Ben1980 Feb 2, 2024
a3ba3a1
libusb added as submodule
Ben1980 Feb 6, 2024
5aea268
Update pubspec.yaml
Ben1980 Feb 6, 2024
b3d22b9
getting macos compiling
Ben1980 Feb 6, 2024
9094209
ios classes added
Ben1980 Feb 12, 2024
f548774
ble added to libdive config
Ben1980 Feb 12, 2024
394519f
bluez submodule added
Ben1980 Feb 12, 2024
b3b46d3
ble
Ben1980 Feb 12, 2024
02adc84
Create bluez
Ben1980 Feb 12, 2024
4ff9362
cleanup
Ben1980 Feb 14, 2024
4a6a9b4
Update README.md
Ben1980 Feb 14, 2024
bf56213
Update config.h
Ben1980 Feb 14, 2024
bb8fd97
Update hid.c
Ben1980 Feb 14, 2024
d9a905a
Update Podfile.lock
Ben1980 Feb 14, 2024
d652784
fixing xcode project settings
Ben1980 Feb 14, 2024
72315eb
adding USB and USBHID
Ben1980 Feb 14, 2024
14195eb
small cleanup
Ben1980 Feb 14, 2024
1181727
config moved
Ben1980 Feb 14, 2024
6bf838c
formating fixed
Ben1980 Feb 15, 2024
25b2108
reverted changes
Ben1980 Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
[submodule "src/libdivecomputer"]
path = src/libdivecomputer
url = https://github.com/libdivecomputer/libdivecomputer.git
[submodule "src/hidapi"]
path = src/hidapi
url = https://github.com/libusb/hidapi.git
[submodule "src/libusb"]
path = src/libusb
url = https://github.com/libusb/libusb.git
8 changes: 8 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,14 @@ This plugin automatically spawns its own isolate for communication with the dive

Please refer to the example app for a minimalistic example usage.

# macOS

This plugin supports USB and Serial connection on macOS. On macOS you need to make sure the app has access to the USB connection granted. To do so add the following snippet to info.plist and make sure you grant USB access in xcode via `Signing & Capabilities -> Hardware -> USB`.
```
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
```

---

### Acknowledgements
Expand Down
2 changes: 2 additions & 0 deletions android/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@ add_library(dive_computer SHARED
"../src/libdivecomputer/src/timer.c"
"../src/libdivecomputer/src/parser.c"
"../src/libdivecomputer/src/serial_posix.c"
"../src/libdivecomputer/src/usb.c"
"../src/libdivecomputer/src/usbhid.c"

"../src/libdivecomputer/src/atomics_cobalt.c"
"../src/libdivecomputer/src/atomics_cobalt_parser.c"
Expand Down
4 changes: 2 additions & 2 deletions example/macos/Podfile.lock
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
dive_computer: d73377c895d5cc0bdb48eb85667b314cf47841d9
dive_computer: e512b5b2b343092ee9551c845b8f84ad38a019c7
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
12 changes: 7 additions & 5 deletions example/macos/Runner.xcodeproj/project.pbxproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,8 +29,8 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
CDF727C5C51DE46A62037ED3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */; };
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
D85A387C2B49ED9F0078351E /* (null) in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All@@ -57,7 +57,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */,
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
Expand DownExpand Up@@ -107,7 +107,7 @@
buildActionMask = 2147483647;
files = (
262E412DF37AA4627DE9CE94 /* Pods_Runner.framework in Frameworks */,
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */,
D85A387C2B49ED9F0078351E /* (null) in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand DownExpand Up@@ -205,7 +205,6 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */,
866168B11938ECFE46CFB139 /* Pods_Runner.framework */,
8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */,
);
Expand DownExpand Up@@ -574,6 +573,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand DownExpand Up@@ -703,6 +703,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand All@@ -726,6 +727,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/DebugProfile.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,8 @@
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/Info.plist
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,5 +28,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
</dict>
</plist>
2 changes: 2 additions & 0 deletions example/macos/Runner/Release.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ffigen.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,6 +11,8 @@ headers:
- 'src/libdivecomputer/include/libdivecomputer/iterator.h'
- 'src/libdivecomputer/include/libdivecomputer/serial.h'
- 'src/libdivecomputer/include/libdivecomputer/parser.h'
- 'src/libdivecomputer/include/libdivecomputer/usb.h'
- 'src/libdivecomputer/include/libdivecomputer/usbhid.h'
preamble: |
// ignore_for_file: always_specify_types, unused_field, unused_element
// ignore_for_file: camel_case_types
Expand Down
1 change: 0 additions & 1 deletion ios/Classes/array.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_ady_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_edy.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion_parser.c

This file was deleted.

16 changes: 0 additions & 16 deletions ios/Classes/dive_computer.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hdlc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_frog.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc3.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ihex.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_puck.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/serial_posix.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_petrel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/tecdiving_divecomputereu.c

This file was deleted.

Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e284550
Build from source (#1)
Ben1980 Jan 29, 2024
306fd94
Update dive_computer_ffi.dart
Ben1980 Jan 29, 2024
98ec792
Extracting hardware interfaces into own utility class
Ben1980 Jan 29, 2024
21e085a
usb.h and .c added. Bindings extended
Ben1980 Jan 29, 2024
3782658
Update dive_computer_ffi_bindings_generated.dart
Ben1980 Jan 29, 2024
41ca423
usbhid added
Ben1980 Jan 29, 2024
b60e629
Update CMakeLists.txt
Ben1980 Jan 29, 2024
220a724
backup
Ben1980 Jan 29, 2024
41a1ed6
Merge branch 'develop' into usb-support
Sese-Schneider Jan 29, 2024
1434aef
Merge branch 'usb-support' of https://github.com/Ben1980/dive_compute…
Ben1980 Jan 30, 2024
9dd3c6e
Update dive_computer_interfaces.dart
Ben1980 Jan 30, 2024
3f93792
adding defines
Ben1980 Feb 1, 2024
553e091
hidapi submodule added
Ben1980 Feb 2, 2024
08db24c
Update CMakeLists.txt
Ben1980 Feb 2, 2024
39e9c46
macos is creating usbhid iterator
Ben1980 Feb 2, 2024
a3ba3a1
libusb added as submodule
Ben1980 Feb 6, 2024
5aea268
Update pubspec.yaml
Ben1980 Feb 6, 2024
b3d22b9
getting macos compiling
Ben1980 Feb 6, 2024
9094209
ios classes added
Ben1980 Feb 12, 2024
f548774
ble added to libdive config
Ben1980 Feb 12, 2024
394519f
bluez submodule added
Ben1980 Feb 12, 2024
b3b46d3
ble
Ben1980 Feb 12, 2024
02adc84
Create bluez
Ben1980 Feb 12, 2024
4ff9362
cleanup
Ben1980 Feb 14, 2024
4a6a9b4
Update README.md
Ben1980 Feb 14, 2024
bf56213
Update config.h
Ben1980 Feb 14, 2024
bb8fd97
Update hid.c
Ben1980 Feb 14, 2024
d9a905a
Update Podfile.lock
Ben1980 Feb 14, 2024
d652784
fixing xcode project settings
Ben1980 Feb 14, 2024
72315eb
adding USB and USBHID
Ben1980 Feb 14, 2024
14195eb
small cleanup
Ben1980 Feb 14, 2024
1181727
config moved
Ben1980 Feb 14, 2024
6bf838c
formating fixed
Ben1980 Feb 15, 2024
25b2108
reverted changes
Ben1980 Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
[submodule "src/libdivecomputer"]
path = src/libdivecomputer
url = https://github.com/libdivecomputer/libdivecomputer.git
[submodule "src/hidapi"]
path = src/hidapi
url = https://github.com/libusb/hidapi.git
[submodule "src/libusb"]
path = src/libusb
url = https://github.com/libusb/libusb.git
8 changes: 8 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,14 @@ This plugin automatically spawns its own isolate for communication with the dive

Please refer to the example app for a minimalistic example usage.

# macOS

This plugin supports USB and Serial connection on macOS. On macOS you need to make sure the app has access to the USB connection granted. To do so add the following snippet to info.plist and make sure you grant USB access in xcode via `Signing & Capabilities -> Hardware -> USB`.
```
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
```

---

### Acknowledgements
Expand Down
2 changes: 2 additions & 0 deletions android/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@ add_library(dive_computer SHARED
"../src/libdivecomputer/src/timer.c"
"../src/libdivecomputer/src/parser.c"
"../src/libdivecomputer/src/serial_posix.c"
"../src/libdivecomputer/src/usb.c"
"../src/libdivecomputer/src/usbhid.c"

"../src/libdivecomputer/src/atomics_cobalt.c"
"../src/libdivecomputer/src/atomics_cobalt_parser.c"
Expand Down
4 changes: 2 additions & 2 deletions example/macos/Podfile.lock
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
dive_computer: d73377c895d5cc0bdb48eb85667b314cf47841d9
dive_computer: e512b5b2b343092ee9551c845b8f84ad38a019c7
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
12 changes: 7 additions & 5 deletions example/macos/Runner.xcodeproj/project.pbxproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,8 +29,8 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
CDF727C5C51DE46A62037ED3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */; };
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
D85A387C2B49ED9F0078351E /* (null) in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All@@ -57,7 +57,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */,
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
Expand DownExpand Up@@ -107,7 +107,7 @@
buildActionMask = 2147483647;
files = (
262E412DF37AA4627DE9CE94 /* Pods_Runner.framework in Frameworks */,
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */,
D85A387C2B49ED9F0078351E /* (null) in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand DownExpand Up@@ -205,7 +205,6 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */,
866168B11938ECFE46CFB139 /* Pods_Runner.framework */,
8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */,
);
Expand DownExpand Up@@ -574,6 +573,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand DownExpand Up@@ -703,6 +703,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand All@@ -726,6 +727,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/DebugProfile.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,8 @@
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/Info.plist
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,5 +28,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
</dict>
</plist>
2 changes: 2 additions & 0 deletions example/macos/Runner/Release.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ffigen.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,6 +11,8 @@ headers:
- 'src/libdivecomputer/include/libdivecomputer/iterator.h'
- 'src/libdivecomputer/include/libdivecomputer/serial.h'
- 'src/libdivecomputer/include/libdivecomputer/parser.h'
- 'src/libdivecomputer/include/libdivecomputer/usb.h'
- 'src/libdivecomputer/include/libdivecomputer/usbhid.h'
preamble: |
// ignore_for_file: always_specify_types, unused_field, unused_element
// ignore_for_file: camel_case_types
Expand Down
1 change: 0 additions & 1 deletion ios/Classes/array.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_ady_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_edy.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion_parser.c

This file was deleted.

16 changes: 0 additions & 16 deletions ios/Classes/dive_computer.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hdlc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_frog.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc3.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ihex.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_puck.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/serial_posix.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_petrel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/tecdiving_divecomputereu.c

This file was deleted.

Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e284550
Build from source (#1)
Ben1980 Jan 29, 2024
306fd94
Update dive_computer_ffi.dart
Ben1980 Jan 29, 2024
98ec792
Extracting hardware interfaces into own utility class
Ben1980 Jan 29, 2024
21e085a
usb.h and .c added. Bindings extended
Ben1980 Jan 29, 2024
3782658
Update dive_computer_ffi_bindings_generated.dart
Ben1980 Jan 29, 2024
41ca423
usbhid added
Ben1980 Jan 29, 2024
b60e629
Update CMakeLists.txt
Ben1980 Jan 29, 2024
220a724
backup
Ben1980 Jan 29, 2024
41a1ed6
Merge branch 'develop' into usb-support
Sese-Schneider Jan 29, 2024
1434aef
Merge branch 'usb-support' of https://github.com/Ben1980/dive_compute…
Ben1980 Jan 30, 2024
9dd3c6e
Update dive_computer_interfaces.dart
Ben1980 Jan 30, 2024
3f93792
adding defines
Ben1980 Feb 1, 2024
553e091
hidapi submodule added
Ben1980 Feb 2, 2024
08db24c
Update CMakeLists.txt
Ben1980 Feb 2, 2024
39e9c46
macos is creating usbhid iterator
Ben1980 Feb 2, 2024
a3ba3a1
libusb added as submodule
Ben1980 Feb 6, 2024
5aea268
Update pubspec.yaml
Ben1980 Feb 6, 2024
b3d22b9
getting macos compiling
Ben1980 Feb 6, 2024
9094209
ios classes added
Ben1980 Feb 12, 2024
f548774
ble added to libdive config
Ben1980 Feb 12, 2024
394519f
bluez submodule added
Ben1980 Feb 12, 2024
b3b46d3
ble
Ben1980 Feb 12, 2024
02adc84
Create bluez
Ben1980 Feb 12, 2024
4ff9362
cleanup
Ben1980 Feb 14, 2024
4a6a9b4
Update README.md
Ben1980 Feb 14, 2024
bf56213
Update config.h
Ben1980 Feb 14, 2024
bb8fd97
Update hid.c
Ben1980 Feb 14, 2024
d9a905a
Update Podfile.lock
Ben1980 Feb 14, 2024
d652784
fixing xcode project settings
Ben1980 Feb 14, 2024
72315eb
adding USB and USBHID
Ben1980 Feb 14, 2024
14195eb
small cleanup
Ben1980 Feb 14, 2024
1181727
config moved
Ben1980 Feb 14, 2024
6bf838c
formating fixed
Ben1980 Feb 15, 2024
25b2108
reverted changes
Ben1980 Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
[submodule "src/libdivecomputer"]
path = src/libdivecomputer
url = https://github.com/libdivecomputer/libdivecomputer.git
[submodule "src/hidapi"]
path = src/hidapi
url = https://github.com/libusb/hidapi.git
[submodule "src/libusb"]
path = src/libusb
url = https://github.com/libusb/libusb.git
8 changes: 8 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,14 @@ This plugin automatically spawns its own isolate for communication with the dive

Please refer to the example app for a minimalistic example usage.

# macOS

This plugin supports USB and Serial connection on macOS. On macOS you need to make sure the app has access to the USB connection granted. To do so add the following snippet to info.plist and make sure you grant USB access in xcode via `Signing & Capabilities -> Hardware -> USB`.
```
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
```

---

### Acknowledgements
Expand Down
2 changes: 2 additions & 0 deletions android/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@ add_library(dive_computer SHARED
"../src/libdivecomputer/src/timer.c"
"../src/libdivecomputer/src/parser.c"
"../src/libdivecomputer/src/serial_posix.c"
"../src/libdivecomputer/src/usb.c"
"../src/libdivecomputer/src/usbhid.c"

"../src/libdivecomputer/src/atomics_cobalt.c"
"../src/libdivecomputer/src/atomics_cobalt_parser.c"
Expand Down
4 changes: 2 additions & 2 deletions example/macos/Podfile.lock
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
dive_computer: d73377c895d5cc0bdb48eb85667b314cf47841d9
dive_computer: e512b5b2b343092ee9551c845b8f84ad38a019c7
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
12 changes: 7 additions & 5 deletions example/macos/Runner.xcodeproj/project.pbxproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,8 +29,8 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
CDF727C5C51DE46A62037ED3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */; };
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
D85A387C2B49ED9F0078351E /* (null) in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All@@ -57,7 +57,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */,
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
Expand DownExpand Up@@ -107,7 +107,7 @@
buildActionMask = 2147483647;
files = (
262E412DF37AA4627DE9CE94 /* Pods_Runner.framework in Frameworks */,
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */,
D85A387C2B49ED9F0078351E /* (null) in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand DownExpand Up@@ -205,7 +205,6 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */,
866168B11938ECFE46CFB139 /* Pods_Runner.framework */,
8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */,
);
Expand DownExpand Up@@ -574,6 +573,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand DownExpand Up@@ -703,6 +703,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand All@@ -726,6 +727,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/DebugProfile.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,8 @@
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/Info.plist
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,5 +28,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
</dict>
</plist>
2 changes: 2 additions & 0 deletions example/macos/Runner/Release.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ffigen.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,6 +11,8 @@ headers:
- 'src/libdivecomputer/include/libdivecomputer/iterator.h'
- 'src/libdivecomputer/include/libdivecomputer/serial.h'
- 'src/libdivecomputer/include/libdivecomputer/parser.h'
- 'src/libdivecomputer/include/libdivecomputer/usb.h'
- 'src/libdivecomputer/include/libdivecomputer/usbhid.h'
preamble: |
// ignore_for_file: always_specify_types, unused_field, unused_element
// ignore_for_file: camel_case_types
Expand Down
1 change: 0 additions & 1 deletion ios/Classes/array.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_ady_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_edy.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion_parser.c

This file was deleted.

16 changes: 0 additions & 16 deletions ios/Classes/dive_computer.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hdlc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_frog.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc3.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ihex.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_puck.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/serial_posix.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_petrel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/tecdiving_divecomputereu.c

This file was deleted.

Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e284550
Build from source (#1)
Ben1980 Jan 29, 2024
306fd94
Update dive_computer_ffi.dart
Ben1980 Jan 29, 2024
98ec792
Extracting hardware interfaces into own utility class
Ben1980 Jan 29, 2024
21e085a
usb.h and .c added. Bindings extended
Ben1980 Jan 29, 2024
3782658
Update dive_computer_ffi_bindings_generated.dart
Ben1980 Jan 29, 2024
41ca423
usbhid added
Ben1980 Jan 29, 2024
b60e629
Update CMakeLists.txt
Ben1980 Jan 29, 2024
220a724
backup
Ben1980 Jan 29, 2024
41a1ed6
Merge branch 'develop' into usb-support
Sese-Schneider Jan 29, 2024
1434aef
Merge branch 'usb-support' of https://github.com/Ben1980/dive_compute…
Ben1980 Jan 30, 2024
9dd3c6e
Update dive_computer_interfaces.dart
Ben1980 Jan 30, 2024
3f93792
adding defines
Ben1980 Feb 1, 2024
553e091
hidapi submodule added
Ben1980 Feb 2, 2024
08db24c
Update CMakeLists.txt
Ben1980 Feb 2, 2024
39e9c46
macos is creating usbhid iterator
Ben1980 Feb 2, 2024
a3ba3a1
libusb added as submodule
Ben1980 Feb 6, 2024
5aea268
Update pubspec.yaml
Ben1980 Feb 6, 2024
b3d22b9
getting macos compiling
Ben1980 Feb 6, 2024
9094209
ios classes added
Ben1980 Feb 12, 2024
f548774
ble added to libdive config
Ben1980 Feb 12, 2024
394519f
bluez submodule added
Ben1980 Feb 12, 2024
b3b46d3
ble
Ben1980 Feb 12, 2024
02adc84
Create bluez
Ben1980 Feb 12, 2024
4ff9362
cleanup
Ben1980 Feb 14, 2024
4a6a9b4
Update README.md
Ben1980 Feb 14, 2024
bf56213
Update config.h
Ben1980 Feb 14, 2024
bb8fd97
Update hid.c
Ben1980 Feb 14, 2024
d9a905a
Update Podfile.lock
Ben1980 Feb 14, 2024
d652784
fixing xcode project settings
Ben1980 Feb 14, 2024
72315eb
adding USB and USBHID
Ben1980 Feb 14, 2024
14195eb
small cleanup
Ben1980 Feb 14, 2024
1181727
config moved
Ben1980 Feb 14, 2024
6bf838c
formating fixed
Ben1980 Feb 15, 2024
25b2108
reverted changes
Ben1980 Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
[submodule "src/libdivecomputer"]
path = src/libdivecomputer
url = https://github.com/libdivecomputer/libdivecomputer.git
[submodule "src/hidapi"]
path = src/hidapi
url = https://github.com/libusb/hidapi.git
[submodule "src/libusb"]
path = src/libusb
url = https://github.com/libusb/libusb.git
8 changes: 8 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,14 @@ This plugin automatically spawns its own isolate for communication with the dive

Please refer to the example app for a minimalistic example usage.

# macOS

This plugin supports USB and Serial connection on macOS. On macOS you need to make sure the app has access to the USB connection granted. To do so add the following snippet to info.plist and make sure you grant USB access in xcode via `Signing & Capabilities -> Hardware -> USB`.
```
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
```

---

### Acknowledgements
Expand Down
2 changes: 2 additions & 0 deletions android/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@ add_library(dive_computer SHARED
"../src/libdivecomputer/src/timer.c"
"../src/libdivecomputer/src/parser.c"
"../src/libdivecomputer/src/serial_posix.c"
"../src/libdivecomputer/src/usb.c"
"../src/libdivecomputer/src/usbhid.c"

"../src/libdivecomputer/src/atomics_cobalt.c"
"../src/libdivecomputer/src/atomics_cobalt_parser.c"
Expand Down
4 changes: 2 additions & 2 deletions example/macos/Podfile.lock
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
dive_computer: d73377c895d5cc0bdb48eb85667b314cf47841d9
dive_computer: e512b5b2b343092ee9551c845b8f84ad38a019c7
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
12 changes: 7 additions & 5 deletions example/macos/Runner.xcodeproj/project.pbxproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,8 +29,8 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
CDF727C5C51DE46A62037ED3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */; };
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
D85A387C2B49ED9F0078351E /* (null) in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All@@ -57,7 +57,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */,
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
Expand DownExpand Up@@ -107,7 +107,7 @@
buildActionMask = 2147483647;
files = (
262E412DF37AA4627DE9CE94 /* Pods_Runner.framework in Frameworks */,
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */,
D85A387C2B49ED9F0078351E /* (null) in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand DownExpand Up@@ -205,7 +205,6 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */,
866168B11938ECFE46CFB139 /* Pods_Runner.framework */,
8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */,
);
Expand DownExpand Up@@ -574,6 +573,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand DownExpand Up@@ -703,6 +703,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand All@@ -726,6 +727,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/DebugProfile.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,8 @@
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/Info.plist
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,5 +28,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
</dict>
</plist>
2 changes: 2 additions & 0 deletions example/macos/Runner/Release.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ffigen.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,6 +11,8 @@ headers:
- 'src/libdivecomputer/include/libdivecomputer/iterator.h'
- 'src/libdivecomputer/include/libdivecomputer/serial.h'
- 'src/libdivecomputer/include/libdivecomputer/parser.h'
- 'src/libdivecomputer/include/libdivecomputer/usb.h'
- 'src/libdivecomputer/include/libdivecomputer/usbhid.h'
preamble: |
// ignore_for_file: always_specify_types, unused_field, unused_element
// ignore_for_file: camel_case_types
Expand Down
1 change: 0 additions & 1 deletion ios/Classes/array.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_ady_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_edy.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion_parser.c

This file was deleted.

16 changes: 0 additions & 16 deletions ios/Classes/dive_computer.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hdlc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_frog.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc3.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ihex.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_puck.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/serial_posix.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_petrel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/tecdiving_divecomputereu.c

This file was deleted.

Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e284550
Build from source (#1)
Ben1980 Jan 29, 2024
306fd94
Update dive_computer_ffi.dart
Ben1980 Jan 29, 2024
98ec792
Extracting hardware interfaces into own utility class
Ben1980 Jan 29, 2024
21e085a
usb.h and .c added. Bindings extended
Ben1980 Jan 29, 2024
3782658
Update dive_computer_ffi_bindings_generated.dart
Ben1980 Jan 29, 2024
41ca423
usbhid added
Ben1980 Jan 29, 2024
b60e629
Update CMakeLists.txt
Ben1980 Jan 29, 2024
220a724
backup
Ben1980 Jan 29, 2024
41a1ed6
Merge branch 'develop' into usb-support
Sese-Schneider Jan 29, 2024
1434aef
Merge branch 'usb-support' of https://github.com/Ben1980/dive_compute…
Ben1980 Jan 30, 2024
9dd3c6e
Update dive_computer_interfaces.dart
Ben1980 Jan 30, 2024
3f93792
adding defines
Ben1980 Feb 1, 2024
553e091
hidapi submodule added
Ben1980 Feb 2, 2024
08db24c
Update CMakeLists.txt
Ben1980 Feb 2, 2024
39e9c46
macos is creating usbhid iterator
Ben1980 Feb 2, 2024
a3ba3a1
libusb added as submodule
Ben1980 Feb 6, 2024
5aea268
Update pubspec.yaml
Ben1980 Feb 6, 2024
b3d22b9
getting macos compiling
Ben1980 Feb 6, 2024
9094209
ios classes added
Ben1980 Feb 12, 2024
f548774
ble added to libdive config
Ben1980 Feb 12, 2024
394519f
bluez submodule added
Ben1980 Feb 12, 2024
b3b46d3
ble
Ben1980 Feb 12, 2024
02adc84
Create bluez
Ben1980 Feb 12, 2024
4ff9362
cleanup
Ben1980 Feb 14, 2024
4a6a9b4
Update README.md
Ben1980 Feb 14, 2024
bf56213
Update config.h
Ben1980 Feb 14, 2024
bb8fd97
Update hid.c
Ben1980 Feb 14, 2024
d9a905a
Update Podfile.lock
Ben1980 Feb 14, 2024
d652784
fixing xcode project settings
Ben1980 Feb 14, 2024
72315eb
adding USB and USBHID
Ben1980 Feb 14, 2024
14195eb
small cleanup
Ben1980 Feb 14, 2024
1181727
config moved
Ben1980 Feb 14, 2024
6bf838c
formating fixed
Ben1980 Feb 15, 2024
25b2108
reverted changes
Ben1980 Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
[submodule "src/libdivecomputer"]
path = src/libdivecomputer
url = https://github.com/libdivecomputer/libdivecomputer.git
[submodule "src/hidapi"]
path = src/hidapi
url = https://github.com/libusb/hidapi.git
[submodule "src/libusb"]
path = src/libusb
url = https://github.com/libusb/libusb.git
8 changes: 8 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,14 @@ This plugin automatically spawns its own isolate for communication with the dive

Please refer to the example app for a minimalistic example usage.

# macOS

This plugin supports USB and Serial connection on macOS. On macOS you need to make sure the app has access to the USB connection granted. To do so add the following snippet to info.plist and make sure you grant USB access in xcode via `Signing & Capabilities -> Hardware -> USB`.
```
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
```

---

### Acknowledgements
Expand Down
2 changes: 2 additions & 0 deletions android/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@ add_library(dive_computer SHARED
"../src/libdivecomputer/src/timer.c"
"../src/libdivecomputer/src/parser.c"
"../src/libdivecomputer/src/serial_posix.c"
"../src/libdivecomputer/src/usb.c"
"../src/libdivecomputer/src/usbhid.c"

"../src/libdivecomputer/src/atomics_cobalt.c"
"../src/libdivecomputer/src/atomics_cobalt_parser.c"
Expand Down
4 changes: 2 additions & 2 deletions example/macos/Podfile.lock
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
dive_computer: d73377c895d5cc0bdb48eb85667b314cf47841d9
dive_computer: e512b5b2b343092ee9551c845b8f84ad38a019c7
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
12 changes: 7 additions & 5 deletions example/macos/Runner.xcodeproj/project.pbxproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,8 +29,8 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
CDF727C5C51DE46A62037ED3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */; };
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
D85A387C2B49ED9F0078351E /* (null) in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All@@ -57,7 +57,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */,
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
Expand DownExpand Up@@ -107,7 +107,7 @@
buildActionMask = 2147483647;
files = (
262E412DF37AA4627DE9CE94 /* Pods_Runner.framework in Frameworks */,
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */,
D85A387C2B49ED9F0078351E /* (null) in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand DownExpand Up@@ -205,7 +205,6 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */,
866168B11938ECFE46CFB139 /* Pods_Runner.framework */,
8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */,
);
Expand DownExpand Up@@ -574,6 +573,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand DownExpand Up@@ -703,6 +703,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand All@@ -726,6 +727,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/DebugProfile.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,8 @@
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/Info.plist
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,5 +28,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
</dict>
</plist>
2 changes: 2 additions & 0 deletions example/macos/Runner/Release.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ffigen.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,6 +11,8 @@ headers:
- 'src/libdivecomputer/include/libdivecomputer/iterator.h'
- 'src/libdivecomputer/include/libdivecomputer/serial.h'
- 'src/libdivecomputer/include/libdivecomputer/parser.h'
- 'src/libdivecomputer/include/libdivecomputer/usb.h'
- 'src/libdivecomputer/include/libdivecomputer/usbhid.h'
preamble: |
// ignore_for_file: always_specify_types, unused_field, unused_element
// ignore_for_file: camel_case_types
Expand Down
1 change: 0 additions & 1 deletion ios/Classes/array.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_ady_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_edy.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion_parser.c

This file was deleted.

16 changes: 0 additions & 16 deletions ios/Classes/dive_computer.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hdlc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_frog.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc3.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ihex.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_puck.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/serial_posix.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_petrel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/tecdiving_divecomputereu.c

This file was deleted.

Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e284550
Build from source (#1)
Ben1980 Jan 29, 2024
306fd94
Update dive_computer_ffi.dart
Ben1980 Jan 29, 2024
98ec792
Extracting hardware interfaces into own utility class
Ben1980 Jan 29, 2024
21e085a
usb.h and .c added. Bindings extended
Ben1980 Jan 29, 2024
3782658
Update dive_computer_ffi_bindings_generated.dart
Ben1980 Jan 29, 2024
41ca423
usbhid added
Ben1980 Jan 29, 2024
b60e629
Update CMakeLists.txt
Ben1980 Jan 29, 2024
220a724
backup
Ben1980 Jan 29, 2024
41a1ed6
Merge branch 'develop' into usb-support
Sese-Schneider Jan 29, 2024
1434aef
Merge branch 'usb-support' of https://github.com/Ben1980/dive_compute…
Ben1980 Jan 30, 2024
9dd3c6e
Update dive_computer_interfaces.dart
Ben1980 Jan 30, 2024
3f93792
adding defines
Ben1980 Feb 1, 2024
553e091
hidapi submodule added
Ben1980 Feb 2, 2024
08db24c
Update CMakeLists.txt
Ben1980 Feb 2, 2024
39e9c46
macos is creating usbhid iterator
Ben1980 Feb 2, 2024
a3ba3a1
libusb added as submodule
Ben1980 Feb 6, 2024
5aea268
Update pubspec.yaml
Ben1980 Feb 6, 2024
b3d22b9
getting macos compiling
Ben1980 Feb 6, 2024
9094209
ios classes added
Ben1980 Feb 12, 2024
f548774
ble added to libdive config
Ben1980 Feb 12, 2024
394519f
bluez submodule added
Ben1980 Feb 12, 2024
b3b46d3
ble
Ben1980 Feb 12, 2024
02adc84
Create bluez
Ben1980 Feb 12, 2024
4ff9362
cleanup
Ben1980 Feb 14, 2024
4a6a9b4
Update README.md
Ben1980 Feb 14, 2024
bf56213
Update config.h
Ben1980 Feb 14, 2024
bb8fd97
Update hid.c
Ben1980 Feb 14, 2024
d9a905a
Update Podfile.lock
Ben1980 Feb 14, 2024
d652784
fixing xcode project settings
Ben1980 Feb 14, 2024
72315eb
adding USB and USBHID
Ben1980 Feb 14, 2024
14195eb
small cleanup
Ben1980 Feb 14, 2024
1181727
config moved
Ben1980 Feb 14, 2024
6bf838c
formating fixed
Ben1980 Feb 15, 2024
25b2108
reverted changes
Ben1980 Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
[submodule "src/libdivecomputer"]
path = src/libdivecomputer
url = https://github.com/libdivecomputer/libdivecomputer.git
[submodule "src/hidapi"]
path = src/hidapi
url = https://github.com/libusb/hidapi.git
[submodule "src/libusb"]
path = src/libusb
url = https://github.com/libusb/libusb.git
8 changes: 8 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,14 @@ This plugin automatically spawns its own isolate for communication with the dive

Please refer to the example app for a minimalistic example usage.

# macOS

This plugin supports USB and Serial connection on macOS. On macOS you need to make sure the app has access to the USB connection granted. To do so add the following snippet to info.plist and make sure you grant USB access in xcode via `Signing & Capabilities -> Hardware -> USB`.
```
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
```

---

### Acknowledgements
Expand Down
2 changes: 2 additions & 0 deletions android/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@ add_library(dive_computer SHARED
"../src/libdivecomputer/src/timer.c"
"../src/libdivecomputer/src/parser.c"
"../src/libdivecomputer/src/serial_posix.c"
"../src/libdivecomputer/src/usb.c"
"../src/libdivecomputer/src/usbhid.c"

"../src/libdivecomputer/src/atomics_cobalt.c"
"../src/libdivecomputer/src/atomics_cobalt_parser.c"
Expand Down
4 changes: 2 additions & 2 deletions example/macos/Podfile.lock
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
dive_computer: d73377c895d5cc0bdb48eb85667b314cf47841d9
dive_computer: e512b5b2b343092ee9551c845b8f84ad38a019c7
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
12 changes: 7 additions & 5 deletions example/macos/Runner.xcodeproj/project.pbxproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,8 +29,8 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
CDF727C5C51DE46A62037ED3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */; };
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
D85A387C2B49ED9F0078351E /* (null) in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All@@ -57,7 +57,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */,
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
Expand DownExpand Up@@ -107,7 +107,7 @@
buildActionMask = 2147483647;
files = (
262E412DF37AA4627DE9CE94 /* Pods_Runner.framework in Frameworks */,
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */,
D85A387C2B49ED9F0078351E /* (null) in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand DownExpand Up@@ -205,7 +205,6 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */,
866168B11938ECFE46CFB139 /* Pods_Runner.framework */,
8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */,
);
Expand DownExpand Up@@ -574,6 +573,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand DownExpand Up@@ -703,6 +703,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand All@@ -726,6 +727,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/DebugProfile.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,8 @@
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/Info.plist
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,5 +28,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
</dict>
</plist>
2 changes: 2 additions & 0 deletions example/macos/Runner/Release.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ffigen.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,6 +11,8 @@ headers:
- 'src/libdivecomputer/include/libdivecomputer/iterator.h'
- 'src/libdivecomputer/include/libdivecomputer/serial.h'
- 'src/libdivecomputer/include/libdivecomputer/parser.h'
- 'src/libdivecomputer/include/libdivecomputer/usb.h'
- 'src/libdivecomputer/include/libdivecomputer/usbhid.h'
preamble: |
// ignore_for_file: always_specify_types, unused_field, unused_element
// ignore_for_file: camel_case_types
Expand Down
1 change: 0 additions & 1 deletion ios/Classes/array.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_ady_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_edy.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion_parser.c

This file was deleted.

16 changes: 0 additions & 16 deletions ios/Classes/dive_computer.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hdlc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_frog.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc3.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ihex.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_puck.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/serial_posix.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_petrel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/tecdiving_divecomputereu.c

This file was deleted.

Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e284550
Build from source (#1)
Ben1980 Jan 29, 2024
306fd94
Update dive_computer_ffi.dart
Ben1980 Jan 29, 2024
98ec792
Extracting hardware interfaces into own utility class
Ben1980 Jan 29, 2024
21e085a
usb.h and .c added. Bindings extended
Ben1980 Jan 29, 2024
3782658
Update dive_computer_ffi_bindings_generated.dart
Ben1980 Jan 29, 2024
41ca423
usbhid added
Ben1980 Jan 29, 2024
b60e629
Update CMakeLists.txt
Ben1980 Jan 29, 2024
220a724
backup
Ben1980 Jan 29, 2024
41a1ed6
Merge branch 'develop' into usb-support
Sese-Schneider Jan 29, 2024
1434aef
Merge branch 'usb-support' of https://github.com/Ben1980/dive_compute…
Ben1980 Jan 30, 2024
9dd3c6e
Update dive_computer_interfaces.dart
Ben1980 Jan 30, 2024
3f93792
adding defines
Ben1980 Feb 1, 2024
553e091
hidapi submodule added
Ben1980 Feb 2, 2024
08db24c
Update CMakeLists.txt
Ben1980 Feb 2, 2024
39e9c46
macos is creating usbhid iterator
Ben1980 Feb 2, 2024
a3ba3a1
libusb added as submodule
Ben1980 Feb 6, 2024
5aea268
Update pubspec.yaml
Ben1980 Feb 6, 2024
b3d22b9
getting macos compiling
Ben1980 Feb 6, 2024
9094209
ios classes added
Ben1980 Feb 12, 2024
f548774
ble added to libdive config
Ben1980 Feb 12, 2024
394519f
bluez submodule added
Ben1980 Feb 12, 2024
b3b46d3
ble
Ben1980 Feb 12, 2024
02adc84
Create bluez
Ben1980 Feb 12, 2024
4ff9362
cleanup
Ben1980 Feb 14, 2024
4a6a9b4
Update README.md
Ben1980 Feb 14, 2024
bf56213
Update config.h
Ben1980 Feb 14, 2024
bb8fd97
Update hid.c
Ben1980 Feb 14, 2024
d9a905a
Update Podfile.lock
Ben1980 Feb 14, 2024
d652784
fixing xcode project settings
Ben1980 Feb 14, 2024
72315eb
adding USB and USBHID
Ben1980 Feb 14, 2024
14195eb
small cleanup
Ben1980 Feb 14, 2024
1181727
config moved
Ben1980 Feb 14, 2024
6bf838c
formating fixed
Ben1980 Feb 15, 2024
25b2108
reverted changes
Ben1980 Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
[submodule "src/libdivecomputer"]
path = src/libdivecomputer
url = https://github.com/libdivecomputer/libdivecomputer.git
[submodule "src/hidapi"]
path = src/hidapi
url = https://github.com/libusb/hidapi.git
[submodule "src/libusb"]
path = src/libusb
url = https://github.com/libusb/libusb.git
8 changes: 8 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,14 @@ This plugin automatically spawns its own isolate for communication with the dive

Please refer to the example app for a minimalistic example usage.

# macOS

This plugin supports USB and Serial connection on macOS. On macOS you need to make sure the app has access to the USB connection granted. To do so add the following snippet to info.plist and make sure you grant USB access in xcode via `Signing & Capabilities -> Hardware -> USB`.
```
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
```

---

### Acknowledgements
Expand Down
2 changes: 2 additions & 0 deletions android/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@ add_library(dive_computer SHARED
"../src/libdivecomputer/src/timer.c"
"../src/libdivecomputer/src/parser.c"
"../src/libdivecomputer/src/serial_posix.c"
"../src/libdivecomputer/src/usb.c"
"../src/libdivecomputer/src/usbhid.c"

"../src/libdivecomputer/src/atomics_cobalt.c"
"../src/libdivecomputer/src/atomics_cobalt_parser.c"
Expand Down
4 changes: 2 additions & 2 deletions example/macos/Podfile.lock
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
dive_computer: d73377c895d5cc0bdb48eb85667b314cf47841d9
dive_computer: e512b5b2b343092ee9551c845b8f84ad38a019c7
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
12 changes: 7 additions & 5 deletions example/macos/Runner.xcodeproj/project.pbxproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,8 +29,8 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
CDF727C5C51DE46A62037ED3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */; };
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
D85A387C2B49ED9F0078351E /* (null) in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All@@ -57,7 +57,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */,
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
Expand DownExpand Up@@ -107,7 +107,7 @@
buildActionMask = 2147483647;
files = (
262E412DF37AA4627DE9CE94 /* Pods_Runner.framework in Frameworks */,
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */,
D85A387C2B49ED9F0078351E /* (null) in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand DownExpand Up@@ -205,7 +205,6 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */,
866168B11938ECFE46CFB139 /* Pods_Runner.framework */,
8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */,
);
Expand DownExpand Up@@ -574,6 +573,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand DownExpand Up@@ -703,6 +703,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand All@@ -726,6 +727,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/DebugProfile.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,8 @@
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/Info.plist
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,5 +28,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
</dict>
</plist>
2 changes: 2 additions & 0 deletions example/macos/Runner/Release.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ffigen.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,6 +11,8 @@ headers:
- 'src/libdivecomputer/include/libdivecomputer/iterator.h'
- 'src/libdivecomputer/include/libdivecomputer/serial.h'
- 'src/libdivecomputer/include/libdivecomputer/parser.h'
- 'src/libdivecomputer/include/libdivecomputer/usb.h'
- 'src/libdivecomputer/include/libdivecomputer/usbhid.h'
preamble: |
// ignore_for_file: always_specify_types, unused_field, unused_element
// ignore_for_file: camel_case_types
Expand Down
1 change: 0 additions & 1 deletion ios/Classes/array.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_ady_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_edy.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion_parser.c

This file was deleted.

16 changes: 0 additions & 16 deletions ios/Classes/dive_computer.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hdlc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_frog.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc3.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ihex.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_puck.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/serial_posix.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_petrel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/tecdiving_divecomputereu.c

This file was deleted.

Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e284550
Build from source (#1)
Ben1980 Jan 29, 2024
306fd94
Update dive_computer_ffi.dart
Ben1980 Jan 29, 2024
98ec792
Extracting hardware interfaces into own utility class
Ben1980 Jan 29, 2024
21e085a
usb.h and .c added. Bindings extended
Ben1980 Jan 29, 2024
3782658
Update dive_computer_ffi_bindings_generated.dart
Ben1980 Jan 29, 2024
41ca423
usbhid added
Ben1980 Jan 29, 2024
b60e629
Update CMakeLists.txt
Ben1980 Jan 29, 2024
220a724
backup
Ben1980 Jan 29, 2024
41a1ed6
Merge branch 'develop' into usb-support
Sese-Schneider Jan 29, 2024
1434aef
Merge branch 'usb-support' of https://github.com/Ben1980/dive_compute…
Ben1980 Jan 30, 2024
9dd3c6e
Update dive_computer_interfaces.dart
Ben1980 Jan 30, 2024
3f93792
adding defines
Ben1980 Feb 1, 2024
553e091
hidapi submodule added
Ben1980 Feb 2, 2024
08db24c
Update CMakeLists.txt
Ben1980 Feb 2, 2024
39e9c46
macos is creating usbhid iterator
Ben1980 Feb 2, 2024
a3ba3a1
libusb added as submodule
Ben1980 Feb 6, 2024
5aea268
Update pubspec.yaml
Ben1980 Feb 6, 2024
b3d22b9
getting macos compiling
Ben1980 Feb 6, 2024
9094209
ios classes added
Ben1980 Feb 12, 2024
f548774
ble added to libdive config
Ben1980 Feb 12, 2024
394519f
bluez submodule added
Ben1980 Feb 12, 2024
b3b46d3
ble
Ben1980 Feb 12, 2024
02adc84
Create bluez
Ben1980 Feb 12, 2024
4ff9362
cleanup
Ben1980 Feb 14, 2024
4a6a9b4
Update README.md
Ben1980 Feb 14, 2024
bf56213
Update config.h
Ben1980 Feb 14, 2024
bb8fd97
Update hid.c
Ben1980 Feb 14, 2024
d9a905a
Update Podfile.lock
Ben1980 Feb 14, 2024
d652784
fixing xcode project settings
Ben1980 Feb 14, 2024
72315eb
adding USB and USBHID
Ben1980 Feb 14, 2024
14195eb
small cleanup
Ben1980 Feb 14, 2024
1181727
config moved
Ben1980 Feb 14, 2024
6bf838c
formating fixed
Ben1980 Feb 15, 2024
25b2108
reverted changes
Ben1980 Feb 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
[submodule "src/libdivecomputer"]
path = src/libdivecomputer
url = https://github.com/libdivecomputer/libdivecomputer.git
[submodule "src/hidapi"]
path = src/hidapi
url = https://github.com/libusb/hidapi.git
[submodule "src/libusb"]
path = src/libusb
url = https://github.com/libusb/libusb.git
8 changes: 8 additions & 0 deletions README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,14 @@ This plugin automatically spawns its own isolate for communication with the dive

Please refer to the example app for a minimalistic example usage.

# macOS

This plugin supports USB and Serial connection on macOS. On macOS you need to make sure the app has access to the USB connection granted. To do so add the following snippet to info.plist and make sure you grant USB access in xcode via `Signing & Capabilities -> Hardware -> USB`.
```
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
```

---

### Acknowledgements
Expand Down
2 changes: 2 additions & 0 deletions android/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@ add_library(dive_computer SHARED
"../src/libdivecomputer/src/timer.c"
"../src/libdivecomputer/src/parser.c"
"../src/libdivecomputer/src/serial_posix.c"
"../src/libdivecomputer/src/usb.c"
"../src/libdivecomputer/src/usbhid.c"

"../src/libdivecomputer/src/atomics_cobalt.c"
"../src/libdivecomputer/src/atomics_cobalt_parser.c"
Expand Down
4 changes: 2 additions & 2 deletions example/macos/Podfile.lock
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral

SPEC CHECKSUMS:
dive_computer: d73377c895d5cc0bdb48eb85667b314cf47841d9
dive_computer: e512b5b2b343092ee9551c845b8f84ad38a019c7
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
12 changes: 7 additions & 5 deletions example/macos/Runner.xcodeproj/project.pbxproj
Original file line numberDiff line numberDiff line change
Expand Up@@ -29,8 +29,8 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
CDF727C5C51DE46A62037ED3 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */; };
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
D85A387C2B49ED9F0078351E /* (null) in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Weak, ); }; };
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All@@ -57,7 +57,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
D85A387D2B49EDA50078351E /* libdivecomputer.0.dylib in Bundle Framework */,
D85A387D2B49EDA50078351E /* (null) in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
Expand DownExpand Up@@ -107,7 +107,7 @@
buildActionMask = 2147483647;
files = (
262E412DF37AA4627DE9CE94 /* Pods_Runner.framework in Frameworks */,
D85A387C2B49ED9F0078351E /* libdivecomputer.0.dylib in Frameworks */,
D85A387C2B49ED9F0078351E /* (null) in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand DownExpand Up@@ -205,7 +205,6 @@
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
D85A387B2B49ED9F0078351E /* libdivecomputer.0.dylib */,
866168B11938ECFE46CFB139 /* Pods_Runner.framework */,
8833DC8D350DF77B2F889694 /* Pods_RunnerTests.framework */,
);
Expand DownExpand Up@@ -574,6 +573,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand DownExpand Up@@ -703,6 +703,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand All@@ -726,6 +727,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = "";
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited)";
LIBRARY_SEARCH_PATHS = (
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/DebugProfile.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,8 @@
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
</dict>
Expand Down
2 changes: 2 additions & 0 deletions example/macos/Runner/Info.plist
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,5 +28,7 @@
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSUSBPeripheralUsageDescription</key>
<string>Your explanation here</string>
</dict>
</plist>
2 changes: 2 additions & 0 deletions example/macos/Runner/Release.entitlements
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,5 +4,7 @@
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.usb</key>
<true/>
</dict>
</plist>
2 changes: 2 additions & 0 deletions ffigen.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -11,6 +11,8 @@ headers:
- 'src/libdivecomputer/include/libdivecomputer/iterator.h'
- 'src/libdivecomputer/include/libdivecomputer/serial.h'
- 'src/libdivecomputer/include/libdivecomputer/parser.h'
- 'src/libdivecomputer/include/libdivecomputer/usb.h'
- 'src/libdivecomputer/include/libdivecomputer/usbhid.h'
preamble: |
// ignore_for_file: always_specify_types, unused_field, unused_element
// ignore_for_file: camel_case_types
Expand Down
1 change: 0 additions & 1 deletion ios/Classes/array.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/atomics_cobalt_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/citizen_aqualand_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cochran_commander_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_ady_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_edy.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_goa_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/cressi_leonardo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepblu_cosmiq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/deepsix_excursion_parser.c

This file was deleted.

16 changes: 0 additions & 16 deletions ios/Classes/dive_computer.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/diverite_nitekq_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesoft_freedom_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/divesystem_idive_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hdlc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_frog.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc3.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/hw_ostc_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ihex.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/liquivision_lynx_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_darwin_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_iconhd_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_nemo_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mares_puck.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/mclean_extreme_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_atom2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceanic_veo250_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/oceans_s1_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/ocenic_vtpro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensus_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensuspro_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/reefnet_sensusultra_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/seac_screen_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/serial_posix.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_petrel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/shearwater_predator_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/sporasub_sp2_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_common2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_d9_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eon_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_eonsteel_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_solution_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper2.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/suunto_vyper_parser.c

This file was deleted.

1 change: 0 additions & 1 deletion ios/Classes/tecdiving_divecomputereu.c

This file was deleted.

Loading