bumble 0.0.208__tar.gz → 0.0.210__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.208 → bumble-0.0.210}/PKG-INFO +3 -2
- {bumble-0.0.208 → bumble-0.0.210}/apps/auracast.py +37 -29
- {bumble-0.0.208 → bumble-0.0.210}/apps/bench.py +9 -7
- {bumble-0.0.208 → bumble-0.0.210}/apps/console.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/apps/lea_unicast/app.py +6 -2
- {bumble-0.0.208 → bumble-0.0.210}/apps/pair.py +4 -3
- {bumble-0.0.208 → bumble-0.0.210}/apps/player/player.py +3 -3
- {bumble-0.0.208 → bumble-0.0.210}/apps/rfcomm_bridge.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/apps/speaker/speaker.py +4 -2
- {bumble-0.0.208 → bumble-0.0.210}/bumble/_version.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/bumble/a2dp.py +7 -7
- {bumble-0.0.208 → bumble-0.0.210}/bumble/att.py +12 -5
- {bumble-0.0.208 → bumble-0.0.210}/bumble/avc.py +5 -5
- {bumble-0.0.208 → bumble-0.0.210}/bumble/avdtp.py +9 -10
- {bumble-0.0.208 → bumble-0.0.210}/bumble/avrcp.py +18 -19
- {bumble-0.0.208 → bumble-0.0.210}/bumble/bridge.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/bumble/controller.py +13 -15
- {bumble-0.0.208 → bumble-0.0.210}/bumble/core.py +61 -60
- {bumble-0.0.208 → bumble-0.0.210}/bumble/device.py +193 -162
- {bumble-0.0.208 → bumble-0.0.210}/bumble/drivers/__init__.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/bumble/gap.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/gatt.py +16 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/gatt_adapters.py +3 -3
- {bumble-0.0.208 → bumble-0.0.210}/bumble/gatt_client.py +27 -21
- {bumble-0.0.208 → bumble-0.0.210}/bumble/gatt_server.py +9 -10
- {bumble-0.0.208 → bumble-0.0.210}/bumble/hci.py +109 -90
- {bumble-0.0.208 → bumble-0.0.210}/bumble/hfp.py +3 -3
- {bumble-0.0.208 → bumble-0.0.210}/bumble/hid.py +4 -3
- {bumble-0.0.208 → bumble-0.0.210}/bumble/host.py +30 -19
- {bumble-0.0.208 → bumble-0.0.210}/bumble/keys.py +3 -3
- {bumble-0.0.208 → bumble-0.0.210}/bumble/l2cap.py +21 -19
- {bumble-0.0.208 → bumble-0.0.210}/bumble/link.py +5 -6
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pairing.py +3 -3
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pandora/__init__.py +5 -5
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pandora/host.py +30 -23
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pandora/l2cap.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pandora/security.py +17 -19
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pandora/utils.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/aics.py +6 -6
- bumble-0.0.210/bumble/profiles/ancs.py +513 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/ascs.py +17 -10
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/asha.py +5 -5
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/bass.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/csip.py +10 -10
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/gatt_service.py +12 -12
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/hap.py +16 -16
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/mcp.py +26 -24
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/pacs.py +6 -6
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/pbp.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/vcs.py +6 -4
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/vocs.py +3 -3
- {bumble-0.0.208 → bumble-0.0.210}/bumble/rfcomm.py +8 -8
- {bumble-0.0.208 → bumble-0.0.210}/bumble/sdp.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/smp.py +39 -33
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/__init__.py +24 -19
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/android_emulator.py +8 -4
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/android_netsim.py +8 -5
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/common.py +5 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/file.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/hci_socket.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/pty.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/pyusb.py +3 -3
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/serial.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/tcp_client.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/tcp_server.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/udp.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/unix.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/usb.py +1 -3
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/vhci.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/ws_client.py +6 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/ws_server.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/bumble/utils.py +89 -76
- {bumble-0.0.208 → bumble-0.0.210}/bumble.egg-info/PKG-INFO +3 -2
- {bumble-0.0.208 → bumble-0.0.210}/bumble.egg-info/SOURCES.txt +3 -0
- bumble-0.0.210/docs/mkdocs/src/apps_and_tools/auracast.md +202 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/scanner/scanner.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210/docs/mkdocs/src/hive}/web/speaker/speaker.py +4 -2
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_a2dp_info.py +4 -2
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_a2dp_sink.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_a2dp_source.py +2 -2
- bumble-0.0.210/examples/run_ancs_client.py +215 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_avrcp.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_channel_sounding.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_cig_setup.py +5 -7
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_classic_connect.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_esco_connection.py +4 -3
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_hfp_gateway.py +2 -4
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_hfp_handsfree.py +3 -1
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_hid_device.py +2 -2
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_hid_host.py +7 -5
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_mcp_client.py +2 -1
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_rfcomm_client.py +4 -2
- {bumble-0.0.208 → bumble-0.0.210}/tests/a2dp_test.py +3 -3
- {bumble-0.0.208 → bumble-0.0.210}/tests/avrcp_test.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/tests/device_test.py +14 -14
- {bumble-0.0.208 → bumble-0.0.210}/tests/hfp_test.py +1 -1
- {bumble-0.0.208 → bumble-0.0.210}/tests/self_test.py +5 -4
- {bumble-0.0.208 → bumble-0.0.210}/web/scanner/scanner.py +2 -2
- {bumble-0.0.208/docs/mkdocs/src/hive → bumble-0.0.210}/web/speaker/speaker.py +4 -2
- {bumble-0.0.208 → bumble-0.0.210}/.devcontainer/devcontainer.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/.git-blame-ignore-revs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/.github/workflows/code-check.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/.github/workflows/codeql-analysis.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/.github/workflows/python-avatar.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/.github/workflows/python-build-test.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/.github/workflows/python-publish.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/.gitignore +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/.vscode/settings.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/CONTRIBUTING.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/LICENSE +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/README.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/README.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/ble_rpa_tool.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/controller_info.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/controller_loopback.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/controllers.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/device_info.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/gatt_dump.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/gg_bridge.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/hci_bridge.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/l2cap_bridge.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/lea_unicast/index.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/link_relay/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/link_relay/link_relay.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/link_relay/logging.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/pandora_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/scan.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/show.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/speaker/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/speaker/logo.svg +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/speaker/speaker.css +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/speaker/speaker.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/speaker/speaker.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/unbond.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/apps/usb_probe.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/at.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/audio/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/audio/io.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/avctp.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/codecs.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/colors.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/company_ids.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/crypto.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/decoder.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/drivers/common.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/drivers/intel.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/drivers/rtk.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/helpers.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pandora/config.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pandora/device.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/pandora/py.typed +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/bap.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/battery_service.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/cap.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/device_information_service.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/gap.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/gmap.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/heart_rate_service.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/le_audio.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/py.typed +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/profiles/tmap.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/py.typed +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/rtp.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/snoop.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_packets_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_packets_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_packets_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_vhci_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_vhci_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/emulated_bluetooth_vhci_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/common_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/common_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/common_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/hci_packet_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/model_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/model_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/model_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/startup_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/startup_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/netsim/startup_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/rootcanal/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.pyi +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/grpc_protobuf/rootcanal/configuration_pb2_grpc.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/transport/py.typed +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/vendor/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/vendor/android/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/vendor/android/hci.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/vendor/zephyr/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble/vendor/zephyr/hci.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble.egg-info/dependency_links.txt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble.egg-info/entry_points.txt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble.egg-info/requires.txt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/bumble.egg-info/top_level.txt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/README.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/favicon.ico +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo.svg +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo.vectornator/Artboard0.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo.vectornator/Document.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo.vectornator/Manifest.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo.vectornator/Thumbnail.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo.vectornator/UndoHistory.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo_framed.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo_framed.svg +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo_framed.vectornator/Artboard0.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo_framed.vectornator/Document.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo_framed.vectornator/Manifest.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo_framed.vectornator/Thumbnail.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/images/logo_framed.vectornator/UndoHistory.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/mkdocs.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/requirements.txt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/api/examples.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/api/guide.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/api/reference.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/bench.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/console.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/gatt_dump.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/gg_bridge.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/hci_bridge.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/link_relay.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/pair.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/show.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/speaker.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/unbond.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/apps_and_tools/usb_probe.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/components/controller.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/components/gatt.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/components/host.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/components/security_manager.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/development/code_style.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/development/contributing.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/development/python_environments.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/downloads/zephyr/hci_usb.zip +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/drivers/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/drivers/intel.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/drivers/realtek.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/examples/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/extras/android_bt_bench.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/extras/android_remote_hci.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/extras/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/getting_started.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hardware/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/index.toml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/bumble.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/heart_rate_monitor/heart_rate_monitor.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/heart_rate_monitor/heart_rate_monitor.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/heart_rate_monitor/heart_rate_monitor.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/scanner/scanner.css +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/scanner/scanner.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/scanner/scanner.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/speaker/logo.svg +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/speaker/speaker.css +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/speaker/speaker.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/speaker/speaker.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/hive/web/ui.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/images/bumble_layers.svg +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/images/console_screenshot.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/images/favicon.ico +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/images/logo.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/images/logo_framed.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/images/speaker_screenshot.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/platforms/android.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/platforms/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/platforms/linux.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/platforms/macos.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/platforms/windows.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/platforms/winusb_driver.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/platforms/zephyr.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/android_emulator.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/file.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/hci_socket.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/pty.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/serial.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/tcp_client.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/tcp_server.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/udp.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/usb.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/vhci.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/ws_client.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/transports/ws_server.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/use_cases/index.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/use_cases/use_case_1.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/use_cases/use_case_2.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/use_cases/use_case_3.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/use_cases/use_case_4.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/use_cases/use_case_5.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/src/use_cases/use_case_6.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/docs/mkdocs/theme/partials/footer.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/environment.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/README.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/a2dp_sink1.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/asha_sink.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/asha_sink1.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/asha_sink2.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/async_runner.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/avrcp_as_sink.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/battery_client.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/battery_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/classic1.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/classic2.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/cs_initiator.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/cs_reflector.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/device1.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/device2.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/device3.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/device_information_client.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/device_information_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/device_with_rpa.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/heart_rate_client.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/heart_rate_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/hfp_gateway.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/hfp_gateway.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/hfp_handsfree.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/hfp_handsfree.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/hid_key_map.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/hid_keyboard.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/hid_report_parser.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/keyboard.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/keyboard.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/keyboard.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/leaudio.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/leaudio_with_classic.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/mcp_server.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/mobly/bench/one_device_bench_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/mobly/bench/sample_config.yml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/mobly/bench/two_devices_bench_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_advertiser.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_asha_sink.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_classic_discoverable.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_classic_discovery.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_connect_and_encrypt.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_controller.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_controller_with_scanner.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_csis_servers.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_device_with_snooper.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_extended_advertiser.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_extended_advertiser_2.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_gatt_client.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_gatt_client_and_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_gatt_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_gatt_with_adapters.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_hap_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_notifier.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_rfcomm_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_scanner.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_unicast_server.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/run_vcp_renderer.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/speaker.json +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/examples/vcp_renderer.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/.gitignore +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/.gitignore +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/build.gradle.kts +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/proguard-rules.pro +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/AndroidManifest.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/ic_launcher-playstore.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Advertiser.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/AutomationSnippet.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Connection.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Gatt.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/GattClient.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/GattServer.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/IoClient.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/L2capClient.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/L2capServer.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/MainActivity.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Mode.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Model.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Packet.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Pinger.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Ponger.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Receiver.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/RfcommClient.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/RfcommServer.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Scan.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/Sender.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/SocketClient.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/SocketServer.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/ui/theme/Color.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/ui/theme/Theme.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/java/com/github/google/bumble/btbench/ui/theme/Type.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/drawable/ic_launcher_background.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/drawable/ic_launcher_foreground.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/values/colors.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/values/ic_launcher_background.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/values/strings.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/values/themes.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/xml/backup_rules.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/app/src/main/res/xml/data_extraction_rules.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/build.gradle.kts +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/gradle/libs.versions.toml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/gradle/wrapper/gradle-wrapper.jar +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/gradle/wrapper/gradle-wrapper.properties +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/gradle.properties +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/gradlew +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/gradlew.bat +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/BtBench/settings.gradle.kts +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/.gitignore +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/.gitignore +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/build.gradle.kts +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/proguard-rules.pro +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/AndroidManifest.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/aidl/android/hardware/bluetooth/IBluetoothHci.aidl +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/aidl/android/hardware/bluetooth/IBluetoothHciCallbacks.aidl +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/aidl/android/hardware/bluetooth/Status.aidl +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/hidl/bluetooth/1.1/IBluetoothHci.hal +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/hidl/bluetooth/1.1/IBluetoothHciCallbacks.hal +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/ic_launcher-playstore.png +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/IBluetoothHci.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/IBluetoothHciCallbacks.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/Status.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_0/IBluetoothHci.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_0/IBluetoothHciCallbacks.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_0/Status.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_1/IBluetoothHci.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/android/hardware/bluetooth/V1_1/IBluetoothHciCallbacks.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/CommandLineInterface.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciHal.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciHalCallback.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciPacket.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciParser.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciProxy.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/HciServer.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/MainActivity.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/ui/theme/Color.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/ui/theme/Theme.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/java/com/github/google/bumble/remotehci/ui/theme/Type.kt +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/values/colors.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/values/ic_launcher_background.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/values/strings.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/values/themes.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/xml/backup_rules.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/app/src/main/res/xml/data_extraction_rules.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/build.gradle.kts +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/gradle/libs.versions.toml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/gradle/wrapper/gradle-wrapper.jar +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/gradle/wrapper/gradle-wrapper.properties +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/gradle.properties +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/gradlew +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/gradlew.bat +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/.gitignore +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/build.gradle.kts +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/consumer-rules.pro +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/proguard-rules.pro +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/AndroidManifest.xml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/internal/hidl/base/V1_0/DebugInfo.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/internal/hidl/base/V1_0/IBase.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/os/HidlSupport.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/os/HwBinder.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/os/HwBlob.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/os/HwParcel.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/os/IHwBinder.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/os/IHwInterface.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/os/NativeHandle.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/lib/src/main/java/android/os/ServiceManager.java +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/scripts/generate_java_from_aidl.sh +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/extras/android/RemoteHCI/settings.gradle.kts +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/noxfile.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/pyproject.toml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/.gitignore +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/CHANGELOG.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/Cargo.lock +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/Cargo.toml +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/README.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/examples/battery_client.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/examples/broadcast.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/examples/scanner.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/pytests/assigned_numbers.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/pytests/pytests.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/pytests/wrapper/drivers.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/pytests/wrapper/hci.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/pytests/wrapper/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/pytests/wrapper/transport.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/resources/test/firmware/realtek/README.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/resources/test/firmware/realtek/rtl8723b_fw_structure.bin +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/resources/test/firmware/realtek/rtl8761bu_fw_structure.bin +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/adv.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/cli/firmware/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/cli/firmware/rtk.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/cli/l2cap/client_bridge.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/cli/l2cap/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/cli/l2cap/server_bridge.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/cli/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/cli/usb/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/internal/drivers/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/internal/drivers/rtk.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/internal/hci/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/internal/hci/packets.pdl +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/internal/hci/tests.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/internal/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/lib.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/main.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/assigned_numbers/company_ids.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/assigned_numbers/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/assigned_numbers/services.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/common.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/controller.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/core.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/device/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/device/tests.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/drivers/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/drivers/rtk.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/gatt_client.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/hci.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/host.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/l2cap.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/link.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/logging.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/mod.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/profile.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/src/wrapper/transport.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/tools/file_header.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/rust/tools/gen_assigned_numbers.rs +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/scripts/process_android_emulator_protos.sh +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/scripts/process_android_netsim_protos.sh +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/setup.cfg +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tasks.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/aics_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/asha_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/at_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/avdtp_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/bap_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/bass_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/cap_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/codecs_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/core_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/csip_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/decoder_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/g722_sample.g722 +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/gatt_service_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/gatt_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/gmap_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/hap_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/hci_data_001.bin +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/hci_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/host_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/import_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/keystore_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/l2cap_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/le_audio_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/mcp_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/pytest.ini +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/rfcomm_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/sdp_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/smp_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/test_utils.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/transport_tcp_server_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/transport_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/utils_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/vcp_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tests/vocs_test.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tools/__init__.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tools/generate_company_id_list.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tools/intel_fw_download.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tools/intel_util.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tools/rtk_fw_download.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/tools/rtk_util.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/.gitignore +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/README.md +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/bumble.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/favicon.ico +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/heart_rate_monitor/heart_rate_monitor.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/heart_rate_monitor/heart_rate_monitor.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/heart_rate_monitor/heart_rate_monitor.py +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/scanner/scanner.css +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/scanner/scanner.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/scanner/scanner.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/speaker/logo.svg +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/speaker/speaker.css +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/speaker/speaker.html +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/speaker/speaker.js +0 -0
- {bumble-0.0.208 → bumble-0.0.210}/web/ui.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: bumble
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.210
|
|
4
4
|
Summary: Bluetooth Stack for Apps, Emulation, Test and Experimentation
|
|
5
5
|
Author-email: Google <bumble-dev@google.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/google/bumble
|
|
@@ -57,6 +57,7 @@ Requires-Dist: mkdocstrings[python]>=0.27.0; extra == "documentation"
|
|
|
57
57
|
Provides-Extra: auracast
|
|
58
58
|
Requires-Dist: lc3py>=1.1.3; (python_version >= "3.10" and ((platform_system == "Linux" and platform_machine == "x86_64") or (platform_system == "Darwin" and platform_machine == "arm64"))) and extra == "auracast"
|
|
59
59
|
Requires-Dist: sounddevice>=0.5.1; extra == "auracast"
|
|
60
|
+
Dynamic: license-file
|
|
60
61
|
|
|
61
62
|
|
|
62
63
|
_ _ _
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
from __future__ import annotations
|
|
19
19
|
|
|
20
20
|
import asyncio
|
|
21
|
-
import asyncio.subprocess
|
|
22
21
|
import collections
|
|
23
22
|
import contextlib
|
|
24
23
|
import dataclasses
|
|
@@ -36,7 +35,6 @@ from typing import (
|
|
|
36
35
|
)
|
|
37
36
|
|
|
38
37
|
import click
|
|
39
|
-
import pyee
|
|
40
38
|
|
|
41
39
|
try:
|
|
42
40
|
import lc3 # type: ignore # pylint: disable=E0401
|
|
@@ -99,12 +97,31 @@ def codec_config_string(
|
|
|
99
97
|
return '\n'.join(indent + line for line in lines)
|
|
100
98
|
|
|
101
99
|
|
|
100
|
+
def broadcast_code_bytes(broadcast_code: str) -> bytes:
|
|
101
|
+
"""
|
|
102
|
+
Convert a broadcast code string to a 16-byte value.
|
|
103
|
+
|
|
104
|
+
If `broadcast_code` is `0x` followed by 32 hex characters, it is interpreted as a
|
|
105
|
+
raw 16-byte raw broadcast code in big-endian byte order.
|
|
106
|
+
Otherwise, `broadcast_code` is converted to a 16-byte value as specified in
|
|
107
|
+
BLUETOOTH CORE SPECIFICATION Version 6.0 | Vol 3, Part C , section 3.2.6.3
|
|
108
|
+
"""
|
|
109
|
+
if broadcast_code.startswith("0x") and len(broadcast_code) == 34:
|
|
110
|
+
return bytes.fromhex(broadcast_code[2:])[::-1]
|
|
111
|
+
|
|
112
|
+
broadcast_code_utf8 = broadcast_code.encode("utf-8")
|
|
113
|
+
if len(broadcast_code_utf8) > 16:
|
|
114
|
+
raise ValueError("broadcast code must be <= 16 bytes in utf-8 encoding")
|
|
115
|
+
padding = bytes(16 - len(broadcast_code_utf8))
|
|
116
|
+
return broadcast_code_utf8 + padding
|
|
117
|
+
|
|
118
|
+
|
|
102
119
|
# -----------------------------------------------------------------------------
|
|
103
120
|
# Scan For Broadcasts
|
|
104
121
|
# -----------------------------------------------------------------------------
|
|
105
|
-
class BroadcastScanner(
|
|
122
|
+
class BroadcastScanner(bumble.utils.EventEmitter):
|
|
106
123
|
@dataclasses.dataclass
|
|
107
|
-
class Broadcast(
|
|
124
|
+
class Broadcast(bumble.utils.EventEmitter):
|
|
108
125
|
name: str | None
|
|
109
126
|
sync: bumble.device.PeriodicAdvertisingSync
|
|
110
127
|
broadcast_id: int
|
|
@@ -234,22 +251,14 @@ class BroadcastScanner(pyee.EventEmitter):
|
|
|
234
251
|
|
|
235
252
|
if self.biginfo:
|
|
236
253
|
print(color(' BIG:', 'cyan'))
|
|
237
|
-
print(
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
)
|
|
241
|
-
print(
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
)
|
|
245
|
-
print(
|
|
246
|
-
color(' Framed: ', 'magenta'),
|
|
247
|
-
self.biginfo.framed,
|
|
248
|
-
)
|
|
249
|
-
print(
|
|
250
|
-
color(' Encrypted: ', 'magenta'),
|
|
251
|
-
self.biginfo.encrypted,
|
|
252
|
-
)
|
|
254
|
+
print(color(' Number of BIS:', 'magenta'), self.biginfo.num_bis)
|
|
255
|
+
print(color(' ISO Interval: ', 'magenta'), self.biginfo.iso_interval)
|
|
256
|
+
print(color(' Max PDU: ', 'magenta'), self.biginfo.max_pdu)
|
|
257
|
+
print(color(' SDU Interval: ', 'magenta'), self.biginfo.sdu_interval)
|
|
258
|
+
print(color(' Max SDU: ', 'magenta'), self.biginfo.max_sdu)
|
|
259
|
+
print(color(' PHY: ', 'magenta'), self.biginfo.phy.name)
|
|
260
|
+
print(color(' Framed: ', 'magenta'), self.biginfo.framed)
|
|
261
|
+
print(color(' Encrypted: ', 'magenta'), self.biginfo.encrypted)
|
|
253
262
|
|
|
254
263
|
def on_sync_establishment(self) -> None:
|
|
255
264
|
self.emit('sync_establishment')
|
|
@@ -365,7 +374,7 @@ class BroadcastScanner(pyee.EventEmitter):
|
|
|
365
374
|
self.emit('broadcast_loss', broadcast)
|
|
366
375
|
|
|
367
376
|
|
|
368
|
-
class PrintingBroadcastScanner(
|
|
377
|
+
class PrintingBroadcastScanner(bumble.utils.EventEmitter):
|
|
369
378
|
def __init__(
|
|
370
379
|
self, device: bumble.device.Device, filter_duplicates: bool, sync_timeout: float
|
|
371
380
|
) -> None:
|
|
@@ -702,14 +711,13 @@ async def run_receive(
|
|
|
702
711
|
|
|
703
712
|
def on_change() -> None:
|
|
704
713
|
if (
|
|
705
|
-
broadcast.basic_audio_announcement
|
|
706
|
-
|
|
707
|
-
):
|
|
714
|
+
broadcast.basic_audio_announcement and broadcast.biginfo
|
|
715
|
+
) and not basic_audio_announcement_scanned.is_set():
|
|
708
716
|
basic_audio_announcement_scanned.set()
|
|
709
717
|
|
|
710
718
|
broadcast.on('change', on_change)
|
|
711
|
-
if not broadcast.basic_audio_announcement:
|
|
712
|
-
print('Wait for Basic Audio Announcement...')
|
|
719
|
+
if not broadcast.basic_audio_announcement or not broadcast.biginfo:
|
|
720
|
+
print('Wait for Basic Audio Announcement and BIG Info...')
|
|
713
721
|
await basic_audio_announcement_scanned.wait()
|
|
714
722
|
print('Basic Audio Announcement found')
|
|
715
723
|
broadcast.print()
|
|
@@ -730,7 +738,7 @@ async def run_receive(
|
|
|
730
738
|
big_sync_timeout=0x4000,
|
|
731
739
|
bis=[bis.index for bis in subgroup.bis],
|
|
732
740
|
broadcast_code=(
|
|
733
|
-
|
|
741
|
+
broadcast_code_bytes(broadcast_code) if broadcast_code else None
|
|
734
742
|
),
|
|
735
743
|
),
|
|
736
744
|
)
|
|
@@ -944,7 +952,7 @@ async def run_transmit(
|
|
|
944
952
|
max_transport_latency=65,
|
|
945
953
|
rtn=4,
|
|
946
954
|
broadcast_code=(
|
|
947
|
-
|
|
955
|
+
broadcast_code_bytes(broadcast_code) if broadcast_code else None
|
|
948
956
|
),
|
|
949
957
|
),
|
|
950
958
|
)
|
|
@@ -1088,7 +1096,7 @@ def pair(ctx, transport, address):
|
|
|
1088
1096
|
'--broadcast-code',
|
|
1089
1097
|
metavar='BROADCAST_CODE',
|
|
1090
1098
|
type=str,
|
|
1091
|
-
help='Broadcast encryption code
|
|
1099
|
+
help='Broadcast encryption code (string or raw hex format prefixed with 0x)',
|
|
1092
1100
|
)
|
|
1093
1101
|
@click.option(
|
|
1094
1102
|
'--sync-timeout',
|
|
@@ -28,8 +28,7 @@ import click
|
|
|
28
28
|
|
|
29
29
|
from bumble import l2cap
|
|
30
30
|
from bumble.core import (
|
|
31
|
-
|
|
32
|
-
BT_LE_TRANSPORT,
|
|
31
|
+
PhysicalTransport,
|
|
33
32
|
BT_L2CAP_PROTOCOL_ID,
|
|
34
33
|
BT_RFCOMM_PROTOCOL_ID,
|
|
35
34
|
UUID,
|
|
@@ -42,8 +41,7 @@ from bumble.hci import (
|
|
|
42
41
|
HCI_LE_1M_PHY,
|
|
43
42
|
HCI_LE_2M_PHY,
|
|
44
43
|
HCI_LE_CODED_PHY,
|
|
45
|
-
|
|
46
|
-
HCI_PERIPHERAL_ROLE,
|
|
44
|
+
Role,
|
|
47
45
|
HCI_Constant,
|
|
48
46
|
HCI_Error,
|
|
49
47
|
HCI_StatusError,
|
|
@@ -113,7 +111,7 @@ def print_connection_phy(phy):
|
|
|
113
111
|
|
|
114
112
|
def print_connection(connection):
|
|
115
113
|
params = []
|
|
116
|
-
if connection.transport ==
|
|
114
|
+
if connection.transport == PhysicalTransport.LE:
|
|
117
115
|
params.append(
|
|
118
116
|
'DL=('
|
|
119
117
|
f'TX:{connection.data_length[0]}/{connection.data_length[1]},'
|
|
@@ -189,7 +187,7 @@ def log_stats(title, stats, precision=2):
|
|
|
189
187
|
|
|
190
188
|
|
|
191
189
|
async def switch_roles(connection, role):
|
|
192
|
-
target_role =
|
|
190
|
+
target_role = Role.CENTRAL if role == "central" else Role.PERIPHERAL
|
|
193
191
|
if connection.role != target_role:
|
|
194
192
|
logging.info(f'{color("### Switching roles to:", "cyan")} {role}')
|
|
195
193
|
try:
|
|
@@ -1275,7 +1273,11 @@ class Central(Connection.Listener):
|
|
|
1275
1273
|
self.connection = await self.device.connect(
|
|
1276
1274
|
self.peripheral_address,
|
|
1277
1275
|
connection_parameters_preferences=self.connection_parameter_preferences,
|
|
1278
|
-
transport=
|
|
1276
|
+
transport=(
|
|
1277
|
+
PhysicalTransport.BR_EDR
|
|
1278
|
+
if self.classic
|
|
1279
|
+
else PhysicalTransport.LE
|
|
1280
|
+
),
|
|
1279
1281
|
)
|
|
1280
1282
|
except CommandTimeoutError:
|
|
1281
1283
|
logging.info(color('!!! Connection timed out', 'red'))
|
|
@@ -55,7 +55,7 @@ from prompt_toolkit.layout import (
|
|
|
55
55
|
from bumble import __version__
|
|
56
56
|
import bumble.core
|
|
57
57
|
from bumble import colors
|
|
58
|
-
from bumble.core import UUID, AdvertisingData,
|
|
58
|
+
from bumble.core import UUID, AdvertisingData, PhysicalTransport
|
|
59
59
|
from bumble.device import (
|
|
60
60
|
ConnectionParametersPreferences,
|
|
61
61
|
ConnectionPHY,
|
|
@@ -37,6 +37,7 @@ import click
|
|
|
37
37
|
import aiohttp.web
|
|
38
38
|
|
|
39
39
|
import bumble
|
|
40
|
+
from bumble import utils
|
|
40
41
|
from bumble.core import AdvertisingData
|
|
41
42
|
from bumble.colors import color
|
|
42
43
|
from bumble.device import Device, DeviceConfiguration, AdvertisingParameters, CisLink
|
|
@@ -359,7 +360,9 @@ class Speaker:
|
|
|
359
360
|
pcm = decoder.decode(
|
|
360
361
|
pdu.iso_sdu_fragment, bit_depth=DEFAULT_PCM_BYTES_PER_SAMPLE * 8
|
|
361
362
|
)
|
|
362
|
-
|
|
363
|
+
utils.cancel_on_event(
|
|
364
|
+
self.device, 'disconnection', self.ui_server.send_audio(pcm)
|
|
365
|
+
)
|
|
363
366
|
|
|
364
367
|
def on_ase_state_change(ase: ascs.AseStateMachine) -> None:
|
|
365
368
|
codec_config = ase.codec_specific_configuration
|
|
@@ -373,7 +376,8 @@ class Speaker:
|
|
|
373
376
|
or codec_config.codec_frames_per_sdu is None
|
|
374
377
|
):
|
|
375
378
|
return
|
|
376
|
-
|
|
379
|
+
utils.cancel_on_event(
|
|
380
|
+
ase.cis_link,
|
|
377
381
|
'disconnection',
|
|
378
382
|
lc3_source_task(
|
|
379
383
|
filename=self.lc3_input_file_path,
|
|
@@ -31,8 +31,7 @@ from bumble.keys import JsonKeyStore
|
|
|
31
31
|
from bumble.core import (
|
|
32
32
|
AdvertisingData,
|
|
33
33
|
ProtocolError,
|
|
34
|
-
|
|
35
|
-
BT_BR_EDR_TRANSPORT,
|
|
34
|
+
PhysicalTransport,
|
|
36
35
|
)
|
|
37
36
|
from bumble.gatt import (
|
|
38
37
|
GATT_DEVICE_NAME_CHARACTERISTIC,
|
|
@@ -422,7 +421,9 @@ async def pair(
|
|
|
422
421
|
print(color(f'=== Connecting to {address_or_name}...', 'green'))
|
|
423
422
|
connection = await device.connect(
|
|
424
423
|
address_or_name,
|
|
425
|
-
transport=
|
|
424
|
+
transport=(
|
|
425
|
+
PhysicalTransport.LE if mode == 'le' else PhysicalTransport.BR_EDR
|
|
426
|
+
),
|
|
426
427
|
)
|
|
427
428
|
|
|
428
429
|
if not request:
|
|
@@ -56,7 +56,7 @@ from bumble.core import (
|
|
|
56
56
|
AdvertisingData,
|
|
57
57
|
ConnectionError as BumbleConnectionError,
|
|
58
58
|
DeviceClass,
|
|
59
|
-
|
|
59
|
+
PhysicalTransport,
|
|
60
60
|
)
|
|
61
61
|
from bumble.device import Connection, Device, DeviceConfiguration
|
|
62
62
|
from bumble.hci import Address, HCI_CONNECTION_ALREADY_EXISTS_ERROR, HCI_Constant
|
|
@@ -286,7 +286,7 @@ class Player:
|
|
|
286
286
|
|
|
287
287
|
async def connect(self, device: Device, address: str) -> Connection:
|
|
288
288
|
print(color(f"Connecting to {address}...", "green"))
|
|
289
|
-
connection = await device.connect(address, transport=
|
|
289
|
+
connection = await device.connect(address, transport=PhysicalTransport.BR_EDR)
|
|
290
290
|
|
|
291
291
|
# Request authentication
|
|
292
292
|
if self.authenticate:
|
|
@@ -402,7 +402,7 @@ class Player:
|
|
|
402
402
|
|
|
403
403
|
async def pair(self, device: Device, address: str) -> None:
|
|
404
404
|
print(color(f"Connecting to {address}...", "green"))
|
|
405
|
-
connection = await device.connect(address, transport=
|
|
405
|
+
connection = await device.connect(address, transport=PhysicalTransport.BR_EDR)
|
|
406
406
|
|
|
407
407
|
print(color("Pairing...", "magenta"))
|
|
408
408
|
await connection.authenticate()
|
|
@@ -271,7 +271,7 @@ class ClientBridge:
|
|
|
271
271
|
print(color(f"@@@ Connecting to Bluetooth {self.address}", "blue"))
|
|
272
272
|
assert self.device
|
|
273
273
|
self.connection = await self.device.connect(
|
|
274
|
-
self.address, transport=core.
|
|
274
|
+
self.address, transport=core.PhysicalTransport.BR_EDR
|
|
275
275
|
)
|
|
276
276
|
print(color(f"@@@ Bluetooth connection: {self.connection}", "blue"))
|
|
277
277
|
self.connection.on("disconnection", self.on_disconnection)
|
|
@@ -34,7 +34,7 @@ from aiohttp import web
|
|
|
34
34
|
|
|
35
35
|
import bumble
|
|
36
36
|
from bumble.colors import color
|
|
37
|
-
from bumble.core import
|
|
37
|
+
from bumble.core import PhysicalTransport, CommandTimeoutError
|
|
38
38
|
from bumble.device import Connection, Device, DeviceConfiguration
|
|
39
39
|
from bumble.hci import HCI_StatusError
|
|
40
40
|
from bumble.pairing import PairingConfig
|
|
@@ -568,7 +568,9 @@ class Speaker:
|
|
|
568
568
|
async def connect(self, address):
|
|
569
569
|
# Connect to the source
|
|
570
570
|
print(f'=== Connecting to {address}...')
|
|
571
|
-
connection = await self.device.connect(
|
|
571
|
+
connection = await self.device.connect(
|
|
572
|
+
address, transport=PhysicalTransport.BR_EDR
|
|
573
|
+
)
|
|
572
574
|
print(f'=== Connected to {connection.peer_address}')
|
|
573
575
|
|
|
574
576
|
# Request authentication
|
|
@@ -26,9 +26,9 @@ from typing import Awaitable, Callable
|
|
|
26
26
|
from typing_extensions import ClassVar, Self
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
from .codecs import AacAudioRtpPacket
|
|
30
|
-
from .company_ids import COMPANY_IDENTIFIERS
|
|
31
|
-
from .sdp import (
|
|
29
|
+
from bumble.codecs import AacAudioRtpPacket
|
|
30
|
+
from bumble.company_ids import COMPANY_IDENTIFIERS
|
|
31
|
+
from bumble.sdp import (
|
|
32
32
|
DataElement,
|
|
33
33
|
ServiceAttribute,
|
|
34
34
|
SDP_PUBLIC_BROWSE_ROOT,
|
|
@@ -38,7 +38,7 @@ from .sdp import (
|
|
|
38
38
|
SDP_PROTOCOL_DESCRIPTOR_LIST_ATTRIBUTE_ID,
|
|
39
39
|
SDP_BLUETOOTH_PROFILE_DESCRIPTOR_LIST_ATTRIBUTE_ID,
|
|
40
40
|
)
|
|
41
|
-
from .core import (
|
|
41
|
+
from bumble.core import (
|
|
42
42
|
BT_L2CAP_PROTOCOL_ID,
|
|
43
43
|
BT_AUDIO_SOURCE_SERVICE,
|
|
44
44
|
BT_AUDIO_SINK_SERVICE,
|
|
@@ -46,7 +46,7 @@ from .core import (
|
|
|
46
46
|
BT_ADVANCED_AUDIO_DISTRIBUTION_SERVICE,
|
|
47
47
|
name_or_number,
|
|
48
48
|
)
|
|
49
|
-
from .rtp import MediaPacket
|
|
49
|
+
from bumble.rtp import MediaPacket
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
# -----------------------------------------------------------------------------
|
|
@@ -155,7 +155,7 @@ def flags_to_list(flags, values):
|
|
|
155
155
|
# -----------------------------------------------------------------------------
|
|
156
156
|
def make_audio_source_service_sdp_records(service_record_handle, version=(1, 3)):
|
|
157
157
|
# pylint: disable=import-outside-toplevel
|
|
158
|
-
from .avdtp import AVDTP_PSM
|
|
158
|
+
from bumble.avdtp import AVDTP_PSM
|
|
159
159
|
|
|
160
160
|
version_int = version[0] << 8 | version[1]
|
|
161
161
|
return [
|
|
@@ -209,7 +209,7 @@ def make_audio_source_service_sdp_records(service_record_handle, version=(1, 3))
|
|
|
209
209
|
# -----------------------------------------------------------------------------
|
|
210
210
|
def make_audio_sink_service_sdp_records(service_record_handle, version=(1, 3)):
|
|
211
211
|
# pylint: disable=import-outside-toplevel
|
|
212
|
-
from .avdtp import AVDTP_PSM
|
|
212
|
+
from bumble.avdtp import AVDTP_PSM
|
|
213
213
|
|
|
214
214
|
version_int = version[0] << 8 | version[1]
|
|
215
215
|
return [
|
|
@@ -41,7 +41,6 @@ from typing import (
|
|
|
41
41
|
TYPE_CHECKING,
|
|
42
42
|
)
|
|
43
43
|
|
|
44
|
-
from pyee import EventEmitter
|
|
45
44
|
|
|
46
45
|
from bumble import utils
|
|
47
46
|
from bumble.core import UUID, name_or_number, InvalidOperationError, ProtocolError
|
|
@@ -223,7 +222,12 @@ UUID_2_FIELD_SPEC = lambda x, y: UUID.parse_uuid_2(x, y) # noqa: E731
|
|
|
223
222
|
# Exceptions
|
|
224
223
|
# -----------------------------------------------------------------------------
|
|
225
224
|
class ATT_Error(ProtocolError):
|
|
226
|
-
|
|
225
|
+
error_code: int
|
|
226
|
+
att_handle: int
|
|
227
|
+
|
|
228
|
+
def __init__(
|
|
229
|
+
self, error_code: int, att_handle: int = 0x0000, message: str = ''
|
|
230
|
+
) -> None:
|
|
227
231
|
super().__init__(
|
|
228
232
|
error_code,
|
|
229
233
|
error_namespace='att',
|
|
@@ -233,7 +237,10 @@ class ATT_Error(ProtocolError):
|
|
|
233
237
|
self.message = message
|
|
234
238
|
|
|
235
239
|
def __str__(self):
|
|
236
|
-
return
|
|
240
|
+
return (
|
|
241
|
+
f'ATT_Error(error={self.error_name}, '
|
|
242
|
+
f'handle={self.att_handle:04X}): {self.message}'
|
|
243
|
+
)
|
|
237
244
|
|
|
238
245
|
|
|
239
246
|
# -----------------------------------------------------------------------------
|
|
@@ -790,7 +797,7 @@ class AttributeValue(Generic[_T]):
|
|
|
790
797
|
|
|
791
798
|
|
|
792
799
|
# -----------------------------------------------------------------------------
|
|
793
|
-
class Attribute(EventEmitter, Generic[_T]):
|
|
800
|
+
class Attribute(utils.EventEmitter, Generic[_T]):
|
|
794
801
|
class Permissions(enum.IntFlag):
|
|
795
802
|
READABLE = 0x01
|
|
796
803
|
WRITEABLE = 0x02
|
|
@@ -837,7 +844,7 @@ class Attribute(EventEmitter, Generic[_T]):
|
|
|
837
844
|
permissions: Union[str, Attribute.Permissions],
|
|
838
845
|
value: Union[AttributeValue[_T], _T, None] = None,
|
|
839
846
|
) -> None:
|
|
840
|
-
EventEmitter.__init__(self)
|
|
847
|
+
utils.EventEmitter.__init__(self)
|
|
841
848
|
self.handle = 0
|
|
842
849
|
self.end_group_handle = 0
|
|
843
850
|
if isinstance(permissions, str):
|
|
@@ -21,7 +21,7 @@ import struct
|
|
|
21
21
|
from typing import Dict, Type, Union, Tuple
|
|
22
22
|
|
|
23
23
|
from bumble import core
|
|
24
|
-
from bumble
|
|
24
|
+
from bumble import utils
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# -----------------------------------------------------------------------------
|
|
@@ -43,7 +43,7 @@ class Frame:
|
|
|
43
43
|
EXTENDED = 0x1E
|
|
44
44
|
UNIT = 0x1F
|
|
45
45
|
|
|
46
|
-
class OperationCode(OpenIntEnum):
|
|
46
|
+
class OperationCode(utils.OpenIntEnum):
|
|
47
47
|
# 0x00 - 0x0F: Unit and subunit commands
|
|
48
48
|
VENDOR_DEPENDENT = 0x00
|
|
49
49
|
RESERVE = 0x01
|
|
@@ -204,7 +204,7 @@ class Frame:
|
|
|
204
204
|
|
|
205
205
|
# -----------------------------------------------------------------------------
|
|
206
206
|
class CommandFrame(Frame):
|
|
207
|
-
class CommandType(OpenIntEnum):
|
|
207
|
+
class CommandType(utils.OpenIntEnum):
|
|
208
208
|
# AV/C Digital Interface Command Set General Specification Version 4.1
|
|
209
209
|
# Table 7.1
|
|
210
210
|
CONTROL = 0x00
|
|
@@ -240,7 +240,7 @@ class CommandFrame(Frame):
|
|
|
240
240
|
|
|
241
241
|
# -----------------------------------------------------------------------------
|
|
242
242
|
class ResponseFrame(Frame):
|
|
243
|
-
class ResponseCode(OpenIntEnum):
|
|
243
|
+
class ResponseCode(utils.OpenIntEnum):
|
|
244
244
|
# AV/C Digital Interface Command Set General Specification Version 4.1
|
|
245
245
|
# Table 7.2
|
|
246
246
|
NOT_IMPLEMENTED = 0x08
|
|
@@ -368,7 +368,7 @@ class PassThroughFrame:
|
|
|
368
368
|
PRESSED = 0
|
|
369
369
|
RELEASED = 1
|
|
370
370
|
|
|
371
|
-
class OperationId(OpenIntEnum):
|
|
371
|
+
class OperationId(utils.OpenIntEnum):
|
|
372
372
|
SELECT = 0x00
|
|
373
373
|
UP = 0x01
|
|
374
374
|
DOWN = 0x01
|
|
@@ -37,16 +37,15 @@ from typing import (
|
|
|
37
37
|
cast,
|
|
38
38
|
)
|
|
39
39
|
|
|
40
|
-
from pyee import EventEmitter
|
|
41
40
|
|
|
42
|
-
from .core import (
|
|
41
|
+
from bumble.core import (
|
|
43
42
|
BT_ADVANCED_AUDIO_DISTRIBUTION_SERVICE,
|
|
44
43
|
InvalidStateError,
|
|
45
44
|
ProtocolError,
|
|
46
45
|
InvalidArgumentError,
|
|
47
46
|
name_or_number,
|
|
48
47
|
)
|
|
49
|
-
from .a2dp import (
|
|
48
|
+
from bumble.a2dp import (
|
|
50
49
|
A2DP_CODEC_TYPE_NAMES,
|
|
51
50
|
A2DP_MPEG_2_4_AAC_CODEC_TYPE,
|
|
52
51
|
A2DP_NON_A2DP_CODEC_TYPE,
|
|
@@ -56,9 +55,9 @@ from .a2dp import (
|
|
|
56
55
|
SbcMediaCodecInformation,
|
|
57
56
|
VendorSpecificMediaCodecInformation,
|
|
58
57
|
)
|
|
59
|
-
from .rtp import MediaPacket
|
|
60
|
-
from
|
|
61
|
-
from .colors import color
|
|
58
|
+
from bumble.rtp import MediaPacket
|
|
59
|
+
from bumble import sdp, device, l2cap, utils
|
|
60
|
+
from bumble.colors import color
|
|
62
61
|
|
|
63
62
|
|
|
64
63
|
# -----------------------------------------------------------------------------
|
|
@@ -1194,7 +1193,7 @@ class DelayReport_Reject(Simple_Reject):
|
|
|
1194
1193
|
|
|
1195
1194
|
|
|
1196
1195
|
# -----------------------------------------------------------------------------
|
|
1197
|
-
class Protocol(EventEmitter):
|
|
1196
|
+
class Protocol(utils.EventEmitter):
|
|
1198
1197
|
local_endpoints: List[LocalStreamEndPoint]
|
|
1199
1198
|
remote_endpoints: Dict[int, DiscoveredStreamEndPoint]
|
|
1200
1199
|
streams: Dict[int, Stream]
|
|
@@ -1680,7 +1679,7 @@ class Protocol(EventEmitter):
|
|
|
1680
1679
|
|
|
1681
1680
|
|
|
1682
1681
|
# -----------------------------------------------------------------------------
|
|
1683
|
-
class Listener(EventEmitter):
|
|
1682
|
+
class Listener(utils.EventEmitter):
|
|
1684
1683
|
servers: Dict[int, Protocol]
|
|
1685
1684
|
|
|
1686
1685
|
@staticmethod
|
|
@@ -2063,7 +2062,7 @@ class DiscoveredStreamEndPoint(StreamEndPoint, StreamEndPointProxy):
|
|
|
2063
2062
|
|
|
2064
2063
|
|
|
2065
2064
|
# -----------------------------------------------------------------------------
|
|
2066
|
-
class LocalStreamEndPoint(StreamEndPoint, EventEmitter):
|
|
2065
|
+
class LocalStreamEndPoint(StreamEndPoint, utils.EventEmitter):
|
|
2067
2066
|
stream: Optional[Stream]
|
|
2068
2067
|
|
|
2069
2068
|
def __init__(
|
|
@@ -2076,7 +2075,7 @@ class LocalStreamEndPoint(StreamEndPoint, EventEmitter):
|
|
|
2076
2075
|
configuration: Optional[Iterable[ServiceCapabilities]] = None,
|
|
2077
2076
|
):
|
|
2078
2077
|
StreamEndPoint.__init__(self, seid, media_type, tsep, 0, capabilities)
|
|
2079
|
-
EventEmitter.__init__(self)
|
|
2078
|
+
utils.EventEmitter.__init__(self)
|
|
2080
2079
|
self.protocol = protocol
|
|
2081
2080
|
self.configuration = configuration if configuration is not None else []
|
|
2082
2081
|
self.stream = None
|