bumble 0.0.216__tar.gz → 0.0.217__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bumble-0.0.216 → bumble-0.0.217}/PKG-INFO +1 -1
- {bumble-0.0.216 → bumble-0.0.217}/bumble/_version.py +3 -3
- {bumble-0.0.216 → bumble-0.0.217}/bumble/device.py +5 -9
- {bumble-0.0.216 → bumble-0.0.217}/bumble/host.py +1 -1
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/hap.py +33 -4
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/android_netsim.py +5 -1
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/serial.py +56 -2
- {bumble-0.0.216 → bumble-0.0.217}/bumble.egg-info/PKG-INFO +1 -1
- bumble-0.0.217/docs/mkdocs/src/transports/serial.md +21 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/device_test.py +28 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/hap_test.py +3 -1
- bumble-0.0.216/docs/mkdocs/src/transports/serial.md +0 -12
- {bumble-0.0.216 → bumble-0.0.217}/.devcontainer/devcontainer.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.git-blame-ignore-revs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.github/ci-gradle.properties +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.github/workflows/code-check.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.github/workflows/codeql-analysis.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.github/workflows/gradle-btbench.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.github/workflows/python-avatar.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.github/workflows/python-build-test.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.github/workflows/python-publish.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.gitignore +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/.vscode/settings.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/CONTRIBUTING.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/LICENSE +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/README.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/README.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/auracast.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/bench.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/ble_rpa_tool.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/console.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/controller_info.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/controller_loopback.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/controllers.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/device_info.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/gatt_dump.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/gg_bridge.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/hci_bridge.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/l2cap_bridge.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/lea_unicast/app.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/lea_unicast/index.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/pair.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/pandora_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/player/player.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/rfcomm_bridge.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/scan.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/show.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/speaker/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/speaker/logo.svg +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/speaker/speaker.css +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/speaker/speaker.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/speaker/speaker.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/speaker/speaker.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/unbond.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/apps/usb_probe.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/a2dp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/at.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/att.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/audio/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/audio/io.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/avc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/avctp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/avdtp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/avrcp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/bridge.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/codecs.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/colors.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/company_ids.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/controller.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/core.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/crypto/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/crypto/builtin.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/crypto/cryptography.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/data_types.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/decoder.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/drivers/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/drivers/common.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/drivers/intel.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/drivers/rtk.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/gap.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/gatt.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/gatt_adapters.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/gatt_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/gatt_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/hci.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/helpers.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/hfp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/hid.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/keys.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/l2cap.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/link.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/logging.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pairing.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pandora/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pandora/config.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pandora/device.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pandora/host.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pandora/l2cap.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pandora/py.typed +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pandora/security.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/pandora/utils.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/aics.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/ams.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/ancs.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/ascs.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/asha.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/bap.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/bass.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/battery_service.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/cap.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/csip.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/device_information_service.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/gap.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/gatt_service.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/gmap.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/heart_rate_service.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/le_audio.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/mcp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/pacs.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/pbp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/py.typed +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/tmap.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/vcs.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/profiles/vocs.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/py.typed +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/rfcomm.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/rtp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/sdp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/smp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/snoop.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/android_emulator.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/common.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/file.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_packets_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_packets_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_packets_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_vhci_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_vhci_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/emulated_bluetooth_vhci_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/common_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/common_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/common_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/hci_packet_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/model_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/model_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/model_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/startup_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/startup_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/netsim/startup_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/rootcanal/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.pyi +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/grpc_protobuf/rootcanal/configuration_pb2_grpc.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/hci_socket.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/pty.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/py.typed +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/pyusb.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/tcp_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/tcp_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/udp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/unix.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/usb.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/vhci.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/ws_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/transport/ws_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/utils.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/vendor/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/vendor/android/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/vendor/android/hci.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/vendor/zephyr/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble/vendor/zephyr/hci.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble.egg-info/SOURCES.txt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble.egg-info/dependency_links.txt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble.egg-info/entry_points.txt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble.egg-info/requires.txt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/bumble.egg-info/top_level.txt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/README.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/favicon.ico +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo.svg +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo.vectornator/Artboard0.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo.vectornator/Document.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo.vectornator/Manifest.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo.vectornator/Thumbnail.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo.vectornator/UndoHistory.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo_framed.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo_framed.svg +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo_framed.vectornator/Artboard0.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo_framed.vectornator/Document.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo_framed.vectornator/Manifest.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo_framed.vectornator/Thumbnail.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/images/logo_framed.vectornator/UndoHistory.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/mkdocs.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/requirements.txt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/api/examples.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/api/guide.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/api/reference.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/auracast.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/bench.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/console.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/gatt_dump.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/gg_bridge.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/hci_bridge.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/pair.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/show.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/speaker.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/unbond.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/apps_and_tools/usb_probe.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/components/controller.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/components/gatt.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/components/host.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/components/security_manager.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/development/code_style.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/development/contributing.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/development/python_environments.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/downloads/zephyr/hci_usb.zip +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/drivers/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/drivers/intel.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/drivers/realtek.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/examples/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/extras/android_bt_bench.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/extras/android_remote_hci.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/extras/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/getting_started.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hardware/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/index.toml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/bumble.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/heart_rate_monitor/heart_rate_monitor.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/heart_rate_monitor/heart_rate_monitor.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/heart_rate_monitor/heart_rate_monitor.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/scanner/scanner.css +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/scanner/scanner.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/scanner/scanner.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/scanner/scanner.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/speaker/logo.svg +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/speaker/speaker.css +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/speaker/speaker.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/speaker/speaker.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/speaker/speaker.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/hive/web/ui.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/images/bumble_layers.svg +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/images/console_screenshot.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/images/favicon.ico +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/images/logo.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/images/logo_framed.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/images/speaker_screenshot.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/platforms/android.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/platforms/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/platforms/linux.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/platforms/macos.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/platforms/windows.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/platforms/winusb_driver.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/platforms/zephyr.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/android_emulator.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/file.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/hci_socket.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/pty.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/tcp_client.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/tcp_server.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/udp.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/usb.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/vhci.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/ws_client.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/transports/ws_server.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/use_cases/index.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/use_cases/use_case_1.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/use_cases/use_case_2.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/use_cases/use_case_3.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/use_cases/use_case_4.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/use_cases/use_case_5.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/src/use_cases/use_case_6.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/docs/mkdocs/theme/partials/footer.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/environment.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/README.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/a2dp_sink1.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/asha_sink.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/asha_sink1.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/asha_sink2.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/async_runner.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/avrcp_as_sink.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/battery_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/battery_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/classic1.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/classic2.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/cs_initiator.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/cs_reflector.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/device1.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/device2.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/device3.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/device_information_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/device_information_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/device_with_rpa.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/heart_rate_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/heart_rate_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/hfp_gateway.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/hfp_gateway.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/hfp_handsfree.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/hfp_handsfree.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/hid_key_map.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/hid_keyboard.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/hid_report_parser.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/keyboard.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/keyboard.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/keyboard.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/leaudio.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/leaudio_with_classic.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/mcp_server.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/mobly/bench/one_device_bench_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/mobly/bench/sample_config.yml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/mobly/bench/two_devices_bench_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_a2dp_info.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_a2dp_sink.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_a2dp_source.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_advertiser.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_ams_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_ancs_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_asha_sink.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_avrcp.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_channel_sounding.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_cig_setup.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_classic_connect.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_classic_discoverable.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_classic_discovery.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_connect_and_encrypt.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_controller.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_controller_with_scanner.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_csis_servers.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_device_with_snooper.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_esco_connection.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_extended_advertiser.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_extended_advertiser_2.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_gatt_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_gatt_client_and_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_gatt_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_gatt_server_with_pairing_delegate.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_gatt_with_adapters.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_hap_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_hfp_gateway.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_hfp_handsfree.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_hid_device.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_hid_host.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_mcp_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_notifier.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_rfcomm_client.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_rfcomm_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_scanner.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_unicast_server.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/run_vcp_renderer.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/speaker.json +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/examples/vcp_renderer.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/.gitignore +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/.gitignore +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/build.gradle.kts +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/proguard-rules.pro +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/AndroidManifest.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/ic_launcher-playstore.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Advertiser.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/AutomationSnippet.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Connection.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Gatt.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/GattClient.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/GattServer.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/IoClient.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/L2capClient.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/L2capServer.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/MainActivity.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Mode.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Model.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Packet.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Pinger.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Ponger.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Receiver.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/RfcommClient.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/RfcommServer.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Scan.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Sender.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/SocketClient.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/SocketServer.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/ui/theme/Color.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/ui/theme/Theme.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/ui/theme/Type.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/drawable/ic_launcher_background.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/drawable/ic_launcher_foreground.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/values/colors.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/values/ic_launcher_background.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/values/strings.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/values/themes.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/xml/backup_rules.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/app/src/main/res/xml/data_extraction_rules.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/build.gradle.kts +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/gradle/libs.versions.toml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/gradle/wrapper/gradle-wrapper.jar +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/gradle/wrapper/gradle-wrapper.properties +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/gradle.properties +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/gradlew +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/gradlew.bat +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/BtBench/settings.gradle.kts +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/.gitignore +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/.gitignore +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/build.gradle.kts +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/proguard-rules.pro +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/AndroidManifest.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/aidl/android/hardware/bluetooth/IBluetoothHci.aidl +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/aidl/android/hardware/bluetooth/IBluetoothHciCallbacks.aidl +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/aidl/android/hardware/bluetooth/Status.aidl +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/hidl/bluetooth/1.1/IBluetoothHci.hal +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/hidl/bluetooth/1.1/IBluetoothHciCallbacks.hal +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/ic_launcher-playstore.png +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/IBluetoothHci.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/IBluetoothHciCallbacks.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/Status.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_0/IBluetoothHci.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_0/IBluetoothHciCallbacks.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_0/Status.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_1/IBluetoothHci.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_1/IBluetoothHciCallbacks.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/CommandLineInterface.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciHal.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciHalCallback.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciPacket.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciParser.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciProxy.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciServer.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/MainActivity.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/ui/theme/Color.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/ui/theme/Theme.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/ui/theme/Type.kt +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/values/colors.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/values/ic_launcher_background.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/values/strings.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/values/themes.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/xml/backup_rules.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/app/src/main/res/xml/data_extraction_rules.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/build.gradle.kts +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/gradle/libs.versions.toml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/gradle/wrapper/gradle-wrapper.jar +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/gradle/wrapper/gradle-wrapper.properties +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/gradle.properties +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/gradlew +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/gradlew.bat +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/.gitignore +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/build.gradle.kts +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/consumer-rules.pro +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/proguard-rules.pro +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/AndroidManifest.xml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/internal/hidl/base/V1_0/DebugInfo.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/internal/hidl/base/V1_0/IBase.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/os/HidlSupport.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/os/HwBinder.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/os/HwBlob.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/os/HwParcel.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/os/IHwBinder.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/os/IHwInterface.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/os/NativeHandle.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/lib/src/main/java/android/os/ServiceManager.java +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/scripts/generate_java_from_aidl.sh +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/extras/android/RemoteHCI/settings.gradle.kts +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/noxfile.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/pyproject.toml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/.gitignore +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/CHANGELOG.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/Cargo.lock +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/Cargo.toml +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/README.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/examples/battery_client.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/examples/broadcast.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/examples/scanner.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/pytests/assigned_numbers.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/pytests/pytests.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/pytests/wrapper/drivers.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/pytests/wrapper/hci.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/pytests/wrapper/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/pytests/wrapper/transport.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/resources/test/firmware/realtek/README.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/resources/test/firmware/realtek/rtl8723b_fw_structure.bin +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/resources/test/firmware/realtek/rtl8761bu_fw_structure.bin +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/adv.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/cli/firmware/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/cli/firmware/rtk.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/cli/l2cap/client_bridge.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/cli/l2cap/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/cli/l2cap/server_bridge.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/cli/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/cli/usb/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/internal/drivers/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/internal/drivers/rtk.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/internal/hci/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/internal/hci/packets.pdl +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/internal/hci/tests.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/internal/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/lib.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/main.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/assigned_numbers/company_ids.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/assigned_numbers/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/assigned_numbers/services.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/common.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/controller.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/core.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/device/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/device/tests.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/drivers/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/drivers/rtk.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/gatt_client.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/hci.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/host.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/l2cap.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/link.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/logging.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/mod.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/profile.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/src/wrapper/transport.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/tools/file_header.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/rust/tools/gen_assigned_numbers.rs +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/scripts/process_android_emulator_protos.sh +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/scripts/process_android_netsim_protos.sh +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/setup.cfg +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tasks.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/a2dp_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/aics_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/asha_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/at_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/avdtp_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/avrcp_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/bap_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/bass_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/cap_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/codecs_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/core_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/csip_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/decoder_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/g722_sample.g722 +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/gatt_service_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/gatt_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/gmap_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/hci_data_001.bin +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/hci_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/hfp_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/host_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/import_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/keystore_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/l2cap_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/le_audio_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/mcp_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/pytest.ini +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/rfcomm_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/sdp_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/self_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/smp_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/test_utils.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/transport_tcp_server_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/transport_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/utils_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/vcp_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tests/vocs_test.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tools/__init__.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tools/generate_company_id_list.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tools/intel_fw_download.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tools/intel_util.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tools/rtk_fw_download.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/tools/rtk_util.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/.gitignore +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/README.md +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/bumble.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/favicon.ico +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/heart_rate_monitor/heart_rate_monitor.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/heart_rate_monitor/heart_rate_monitor.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/heart_rate_monitor/heart_rate_monitor.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/scanner/scanner.css +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/scanner/scanner.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/scanner/scanner.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/scanner/scanner.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/speaker/logo.svg +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/speaker/speaker.css +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/speaker/speaker.html +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/speaker/speaker.js +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/speaker/speaker.py +0 -0
- {bumble-0.0.216 → bumble-0.0.217}/web/ui.js +0 -0
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.0.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 0,
|
|
31
|
+
__version__ = version = '0.0.217'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 0, 217)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gaec50ac61'
|
|
@@ -2171,7 +2171,7 @@ def with_connection_from_address(function):
|
|
|
2171
2171
|
@functools.wraps(function)
|
|
2172
2172
|
def wrapper(device: Device, address: hci.Address, *args, **kwargs):
|
|
2173
2173
|
if connection := device.pending_connections.get(address):
|
|
2174
|
-
return function(device, connection,
|
|
2174
|
+
return function(device, connection, *args, **kwargs)
|
|
2175
2175
|
for connection in device.connections.values():
|
|
2176
2176
|
if connection.peer_address == address:
|
|
2177
2177
|
return function(device, connection, *args, **kwargs)
|
|
@@ -6443,18 +6443,14 @@ class Device(utils.CompositeEventEmitter):
|
|
|
6443
6443
|
|
|
6444
6444
|
# [Classic only]
|
|
6445
6445
|
@host_event_handler
|
|
6446
|
-
@
|
|
6446
|
+
@with_connection_from_address
|
|
6447
6447
|
def on_role_change(
|
|
6448
6448
|
self,
|
|
6449
|
-
connection:
|
|
6450
|
-
peer_address: hci.Address,
|
|
6449
|
+
connection: Connection,
|
|
6451
6450
|
new_role: hci.Role,
|
|
6452
6451
|
):
|
|
6453
|
-
|
|
6454
|
-
|
|
6455
|
-
connection.emit(connection.EVENT_ROLE_CHANGE, new_role)
|
|
6456
|
-
else:
|
|
6457
|
-
logger.warning("Role change to unknown connection %s", peer_address)
|
|
6452
|
+
connection.role = new_role
|
|
6453
|
+
connection.emit(connection.EVENT_ROLE_CHANGE, new_role)
|
|
6458
6454
|
|
|
6459
6455
|
# [Classic only]
|
|
6460
6456
|
@host_event_handler
|
|
@@ -550,7 +550,7 @@ class Host(utils.EventEmitter):
|
|
|
550
550
|
logger.debug(
|
|
551
551
|
'HCI LE flow control: '
|
|
552
552
|
f'le_acl_data_packet_length={le_acl_data_packet_length},'
|
|
553
|
-
f'total_num_le_acl_data_packets={total_num_le_acl_data_packets}'
|
|
553
|
+
f'total_num_le_acl_data_packets={total_num_le_acl_data_packets},'
|
|
554
554
|
f'iso_data_packet_length={iso_data_packet_length},'
|
|
555
555
|
f'total_num_iso_data_packets={total_num_iso_data_packets}'
|
|
556
556
|
)
|
|
@@ -273,12 +273,19 @@ class HearingAccessService(gatt.TemplateService):
|
|
|
273
273
|
def on_disconnection(_reason) -> None:
|
|
274
274
|
self.currently_connected_clients.discard(connection)
|
|
275
275
|
|
|
276
|
+
@connection.on(connection.EVENT_CONNECTION_ATT_MTU_UPDATE)
|
|
277
|
+
def on_mtu_update(*_: Any) -> None:
|
|
278
|
+
self.on_incoming_connection(connection)
|
|
279
|
+
|
|
280
|
+
@connection.on(connection.EVENT_CONNECTION_ENCRYPTION_CHANGE)
|
|
281
|
+
def on_encryption_change(*_: Any) -> None:
|
|
282
|
+
self.on_incoming_connection(connection)
|
|
283
|
+
|
|
276
284
|
@connection.on(connection.EVENT_PAIRING)
|
|
277
285
|
def on_pairing(*_: Any) -> None:
|
|
278
|
-
self.
|
|
286
|
+
self.on_incoming_connection(connection)
|
|
279
287
|
|
|
280
|
-
|
|
281
|
-
self.on_incoming_paired_connection(connection)
|
|
288
|
+
self.on_incoming_connection(connection)
|
|
282
289
|
|
|
283
290
|
self.hearing_aid_features_characteristic = gatt.Characteristic(
|
|
284
291
|
uuid=gatt.GATT_HEARING_AID_FEATURES_CHARACTERISTIC,
|
|
@@ -315,9 +322,30 @@ class HearingAccessService(gatt.TemplateService):
|
|
|
315
322
|
]
|
|
316
323
|
)
|
|
317
324
|
|
|
318
|
-
def
|
|
325
|
+
def on_incoming_connection(self, connection: Connection):
|
|
319
326
|
'''Setup initial operations to handle a remote bonded HAP device'''
|
|
320
327
|
# TODO Should we filter on HAP device only ?
|
|
328
|
+
|
|
329
|
+
if not connection.is_encrypted:
|
|
330
|
+
logging.debug(f'HAS: {connection.peer_address} is not encrypted')
|
|
331
|
+
return
|
|
332
|
+
|
|
333
|
+
if not connection.peer_resolvable_address:
|
|
334
|
+
logging.debug(f'HAS: {connection.peer_address} is not paired')
|
|
335
|
+
return
|
|
336
|
+
|
|
337
|
+
if connection.att_mtu < 49:
|
|
338
|
+
logging.debug(
|
|
339
|
+
f'HAS: {connection.peer_address} invalid MTU={connection.att_mtu}'
|
|
340
|
+
)
|
|
341
|
+
return
|
|
342
|
+
|
|
343
|
+
if connection.peer_address in self.currently_connected_clients:
|
|
344
|
+
logging.debug(
|
|
345
|
+
f'HAS: Already connected to {connection.peer_address} nothing to do'
|
|
346
|
+
)
|
|
347
|
+
return
|
|
348
|
+
|
|
321
349
|
self.currently_connected_clients.add(connection)
|
|
322
350
|
if (
|
|
323
351
|
connection.peer_address
|
|
@@ -457,6 +485,7 @@ class HearingAccessService(gatt.TemplateService):
|
|
|
457
485
|
connection,
|
|
458
486
|
self.hearing_aid_preset_control_point,
|
|
459
487
|
value=op_list[0].to_bytes(len(op_list) == 1),
|
|
488
|
+
force=True, # TODO GATT notification subscription should be persistent
|
|
460
489
|
)
|
|
461
490
|
# Remove item once sent, and keep the non sent item in the list
|
|
462
491
|
op_list.pop(0)
|
|
@@ -131,7 +131,11 @@ def publish_grpc_port(grpc_port: int, instance_number: int) -> bool:
|
|
|
131
131
|
|
|
132
132
|
def cleanup():
|
|
133
133
|
logger.debug("removing .ini file")
|
|
134
|
-
|
|
134
|
+
try:
|
|
135
|
+
ini_file.unlink()
|
|
136
|
+
except OSError as error:
|
|
137
|
+
# Don't log at exception level, since this may happen normally.
|
|
138
|
+
logger.debug(f'failed to remove .ini file ({error})')
|
|
135
139
|
|
|
136
140
|
atexit.register(cleanup)
|
|
137
141
|
return True
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
# -----------------------------------------------------------------------------
|
|
18
18
|
import asyncio
|
|
19
19
|
import logging
|
|
20
|
+
from typing import Optional
|
|
20
21
|
|
|
21
22
|
import serial_asyncio
|
|
22
23
|
|
|
@@ -28,25 +29,56 @@ from bumble.transport.common import StreamPacketSink, StreamPacketSource, Transp
|
|
|
28
29
|
logger = logging.getLogger(__name__)
|
|
29
30
|
|
|
30
31
|
|
|
32
|
+
# -----------------------------------------------------------------------------
|
|
33
|
+
# Constants
|
|
34
|
+
# -----------------------------------------------------------------------------
|
|
35
|
+
DEFAULT_POST_OPEN_DELAY = 0.5 # in seconds
|
|
36
|
+
|
|
37
|
+
# -----------------------------------------------------------------------------
|
|
38
|
+
# Classes and Functions
|
|
39
|
+
# -----------------------------------------------------------------------------
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# -----------------------------------------------------------------------------
|
|
43
|
+
class SerialPacketSource(StreamPacketSource):
|
|
44
|
+
def __init__(self) -> None:
|
|
45
|
+
super().__init__()
|
|
46
|
+
self._ready = asyncio.Event()
|
|
47
|
+
|
|
48
|
+
async def wait_until_ready(self) -> None:
|
|
49
|
+
await self._ready.wait()
|
|
50
|
+
|
|
51
|
+
def connection_made(self, transport: asyncio.BaseTransport) -> None:
|
|
52
|
+
logger.debug('connection made')
|
|
53
|
+
self._ready.set()
|
|
54
|
+
|
|
55
|
+
def connection_lost(self, exc: Optional[Exception]) -> None:
|
|
56
|
+
logger.debug('connection lost')
|
|
57
|
+
self.on_transport_lost()
|
|
58
|
+
|
|
59
|
+
|
|
31
60
|
# -----------------------------------------------------------------------------
|
|
32
61
|
async def open_serial_transport(spec: str) -> Transport:
|
|
33
62
|
'''
|
|
34
63
|
Open a serial port transport.
|
|
35
64
|
The parameter string has this syntax:
|
|
36
|
-
<device-path>[,<speed>][,rtscts][,dsrdtr]
|
|
65
|
+
<device-path>[,<speed>][,rtscts][,dsrdtr][,delay]
|
|
37
66
|
When <speed> is omitted, the default value of 1000000 is used
|
|
38
67
|
When "rtscts" is specified, RTS/CTS hardware flow control is enabled
|
|
39
68
|
When "dsrdtr" is specified, DSR/DTR hardware flow control is enabled
|
|
69
|
+
When "delay" is specified, a short delay is added after opening the port
|
|
40
70
|
|
|
41
71
|
Examples:
|
|
42
72
|
/dev/tty.usbmodem0006839912172
|
|
43
73
|
/dev/tty.usbmodem0006839912172,1000000
|
|
44
74
|
/dev/tty.usbmodem0006839912172,rtscts
|
|
75
|
+
/dev/tty.usbmodem0006839912172,rtscts,delay
|
|
45
76
|
'''
|
|
46
77
|
|
|
47
78
|
speed = 1000000
|
|
48
79
|
rtscts = False
|
|
49
80
|
dsrdtr = False
|
|
81
|
+
delay = 0.0
|
|
50
82
|
if ',' in spec:
|
|
51
83
|
parts = spec.split(',')
|
|
52
84
|
device = parts[0]
|
|
@@ -55,13 +87,16 @@ async def open_serial_transport(spec: str) -> Transport:
|
|
|
55
87
|
rtscts = True
|
|
56
88
|
elif part == 'dsrdtr':
|
|
57
89
|
dsrdtr = True
|
|
90
|
+
elif part == 'delay':
|
|
91
|
+
delay = DEFAULT_POST_OPEN_DELAY
|
|
58
92
|
elif part.isnumeric():
|
|
59
93
|
speed = int(part)
|
|
60
94
|
else:
|
|
61
95
|
device = spec
|
|
96
|
+
|
|
62
97
|
serial_transport, packet_source = await serial_asyncio.create_serial_connection(
|
|
63
98
|
asyncio.get_running_loop(),
|
|
64
|
-
|
|
99
|
+
SerialPacketSource,
|
|
65
100
|
device,
|
|
66
101
|
baudrate=speed,
|
|
67
102
|
rtscts=rtscts,
|
|
@@ -69,4 +104,23 @@ async def open_serial_transport(spec: str) -> Transport:
|
|
|
69
104
|
)
|
|
70
105
|
packet_sink = StreamPacketSink(serial_transport)
|
|
71
106
|
|
|
107
|
+
logger.debug('waiting for the port to be ready')
|
|
108
|
+
await packet_source.wait_until_ready()
|
|
109
|
+
logger.debug('port is ready')
|
|
110
|
+
|
|
111
|
+
# Try to assert DTR
|
|
112
|
+
assert serial_transport.serial is not None
|
|
113
|
+
try:
|
|
114
|
+
serial_transport.serial.dtr = True
|
|
115
|
+
logger.debug(
|
|
116
|
+
f"DSR={serial_transport.serial.dsr}, DTR={serial_transport.serial.dtr}"
|
|
117
|
+
)
|
|
118
|
+
except Exception as e:
|
|
119
|
+
logger.warning(f'could not assert DTR: {e}')
|
|
120
|
+
|
|
121
|
+
# Wait a bit after opening the port, if requested
|
|
122
|
+
if delay > 0.0:
|
|
123
|
+
logger.debug(f'waiting {delay} seconds after opening the port')
|
|
124
|
+
await asyncio.sleep(delay)
|
|
125
|
+
|
|
72
126
|
return Transport(packet_source, packet_sink)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
SERIAL TRANSPORT
|
|
2
|
+
================
|
|
3
|
+
|
|
4
|
+
The serial transport implements sending/receiving HCI packets over a UART (a.k.a serial port).
|
|
5
|
+
|
|
6
|
+
## Moniker
|
|
7
|
+
The moniker syntax for a serial transport is:
|
|
8
|
+
`<device-path>[,<speed>][,rtscts][,dsrdtr][,delay]`
|
|
9
|
+
|
|
10
|
+
When `<speed>` is omitted, the default value of 1000000 is used.
|
|
11
|
+
When `rtscts` is specified, RTS/CTS hardware flow control is enabled.
|
|
12
|
+
When `dsrdtr` is specified, DSR/DTR hardware flow control is enabled.
|
|
13
|
+
When `delay` is specified, a short delay is added after opening the port.
|
|
14
|
+
|
|
15
|
+
!!! example
|
|
16
|
+
```
|
|
17
|
+
/dev/tty.usbmodem0006839912172
|
|
18
|
+
/dev/tty.usbmodem0006839912172,1000000
|
|
19
|
+
/dev/tty.usbmodem0006839912172,rtscts
|
|
20
|
+
/dev/tty.usbmodem0006839912172,rtscts,delay
|
|
21
|
+
```
|
|
@@ -761,6 +761,34 @@ async def test_inquiry_result_with_rssi():
|
|
|
761
761
|
m.assert_called_with(hci.Address("00:11:22:33:44:55/P"), 3, mock.ANY, 5)
|
|
762
762
|
|
|
763
763
|
|
|
764
|
+
# -----------------------------------------------------------------------------
|
|
765
|
+
@pytest.mark.parametrize(
|
|
766
|
+
"roles",
|
|
767
|
+
(
|
|
768
|
+
(hci.Role.PERIPHERAL, hci.Role.CENTRAL),
|
|
769
|
+
(hci.Role.CENTRAL, hci.Role.PERIPHERAL),
|
|
770
|
+
),
|
|
771
|
+
)
|
|
772
|
+
@pytest.mark.asyncio
|
|
773
|
+
async def test_accept_classic_connection(roles: tuple[hci.Role, hci.Role]):
|
|
774
|
+
devices = TwoDevices()
|
|
775
|
+
devices[0].classic_enabled = True
|
|
776
|
+
devices[1].classic_enabled = True
|
|
777
|
+
await devices[0].power_on()
|
|
778
|
+
await devices[1].power_on()
|
|
779
|
+
|
|
780
|
+
accept_task = asyncio.create_task(devices[1].accept(role=roles[1]))
|
|
781
|
+
await devices[0].connect(
|
|
782
|
+
devices[1].public_address, transport=PhysicalTransport.BR_EDR
|
|
783
|
+
)
|
|
784
|
+
await accept_task
|
|
785
|
+
|
|
786
|
+
assert devices.connections[0]
|
|
787
|
+
assert devices.connections[0].role == roles[0]
|
|
788
|
+
assert devices.connections[1]
|
|
789
|
+
assert devices.connections[1].role == roles[1]
|
|
790
|
+
|
|
791
|
+
|
|
764
792
|
# -----------------------------------------------------------------------------
|
|
765
793
|
async def run_test_device():
|
|
766
794
|
await test_device_connect_parallel()
|
|
@@ -82,7 +82,6 @@ async def hap_client():
|
|
|
82
82
|
)
|
|
83
83
|
|
|
84
84
|
await devices.setup_connection()
|
|
85
|
-
# TODO negotiate MTU > 49 to not truncate preset names
|
|
86
85
|
|
|
87
86
|
# Mock encryption.
|
|
88
87
|
devices.connections[0].encryption = 1 # type: ignore
|
|
@@ -93,6 +92,9 @@ async def hap_client():
|
|
|
93
92
|
)
|
|
94
93
|
|
|
95
94
|
peer = device.Peer(devices.connections[1]) # type: ignore
|
|
95
|
+
await peer.request_mtu(49)
|
|
96
|
+
peer2 = device.Peer(devices.connections[0]) # type: ignore
|
|
97
|
+
await peer2.request_mtu(49)
|
|
96
98
|
hap_client = await peer.discover_service_and_create_proxy(
|
|
97
99
|
hap.HearingAccessServiceProxy
|
|
98
100
|
)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
SERIAL TRANSPORT
|
|
2
|
-
================
|
|
3
|
-
|
|
4
|
-
The serial transport implements sending/receiving HCI packets over a UART (a.k.a serial port).
|
|
5
|
-
|
|
6
|
-
## Moniker
|
|
7
|
-
The moniker syntax for a serial transport is: `serial:<device-path>[,<speed>]`
|
|
8
|
-
When `<speed>` is omitted, the default value of 1000000 is used
|
|
9
|
-
|
|
10
|
-
!!! example
|
|
11
|
-
`serial:/dev/tty.usbmodem0006839912172,1000000`
|
|
12
|
-
Opens the serial port `/dev/tty.usbmodem0006839912172` at `1000000`bps
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|