diff options
author | Sven Gothel <[email protected]> | 2020-04-20 07:21:35 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2020-04-20 07:21:35 +0200 |
commit | 6fdcdb13db5e13f11c44f0f9bba088252d9ffa18 (patch) | |
tree | 8c9c321dd2064eb53438544f0faba91306629c8c /java/tinyb/dbus/DBusAdapter.java | |
parent | 6505f49b63db200d817817d1d01a14005a3d732c (diff) |
Initial working Java binding for the direct_bt C++ module
Example ScannerTinyB01 demonstrates efficient scanning devices using the new BluetoothDeviceDiscoveryListener interface.
The C++ HCIObject extends JavaUplink, which handles the java object references
via 'std::shared_ptr<JavaAnonObj>', where JavaAnonObj relies on later polymorph specialization.
JavaAnonObj gets derived in the java/jni of direct_bt, where the JNI header + libraries are available.
+++
The java inplementing NativeDownlink implementations
store the nativeInstance to the C++ instances
as well as handle their java references within the native instances.
The C++ JavaUplink and Java NativeDownlink interfaces are complete
the cross referencing java <-> native.
+++
Native libraries are now split into pairs:
- tinyb + javatinyb
- direct_bt + javadirect_bt
TODO: BluetoothFactory must chose the proper bundle!
+++
The Java Adapter received a BluetoothDeviceDiscoveryListener hook,
matching C++ Adapter's HCIDeviceDiscoveryListener.
Since the Java Adapter implements its own discovery thread,
using the BluetoothDeviceDiscoveryListener is more efficient then polling
over a list of Devices fetched.
++++
TODO: Align Java and C++ class names, foremost in the C++ direct_bt space.
TODO: Bind the whole C++ GATT functionality
More testing.
Diffstat (limited to 'java/tinyb/dbus/DBusAdapter.java')
-rw-r--r-- | java/tinyb/dbus/DBusAdapter.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/java/tinyb/dbus/DBusAdapter.java b/java/tinyb/dbus/DBusAdapter.java index 695677fe..973d3e8d 100644 --- a/java/tinyb/dbus/DBusAdapter.java +++ b/java/tinyb/dbus/DBusAdapter.java @@ -35,6 +35,7 @@ import java.util.UUID; import org.tinyb.BluetoothAdapter; import org.tinyb.BluetoothDevice; +import org.tinyb.BluetoothDeviceDiscoveryListener; import org.tinyb.BluetoothException; import org.tinyb.BluetoothManager; import org.tinyb.BluetoothNotification; @@ -148,6 +149,11 @@ public class DBusAdapter extends DBusObject implements BluetoothAdapter public native boolean getDiscovering(); @Override + public void setDeviceDiscoveryListener(final BluetoothDeviceDiscoveryListener l) { + throw new UnsupportedOperationException(); // FIXME + } + + @Override public native void enableDiscoveringNotifications(BluetoothNotification<Boolean> callback); @Override |