forked from auracaster/bumble_mirror
Merge branch 'google:main' into main
This commit is contained in:
@@ -618,8 +618,8 @@ class Controller:
|
||||
cis_sync_delay=0,
|
||||
transport_latency_c_to_p=0,
|
||||
transport_latency_p_to_c=0,
|
||||
phy_c_to_p=0,
|
||||
phy_p_to_c=0,
|
||||
phy_c_to_p=1,
|
||||
phy_p_to_c=1,
|
||||
nse=0,
|
||||
bn_c_to_p=0,
|
||||
bn_p_to_c=0,
|
||||
|
||||
@@ -1710,6 +1710,8 @@ class Connection(utils.CompositeEventEmitter):
|
||||
pairing_peer_authentication_requirements: Optional[int]
|
||||
cs_configs: dict[int, ChannelSoundingConfig] # Config ID to Configuration
|
||||
cs_procedures: dict[int, ChannelSoundingProcedure] # Config ID to Procedures
|
||||
classic_mode: int = hci.HCI_Mode_Change_Event.Mode.ACTIVE
|
||||
classic_interval: int = 0
|
||||
|
||||
EVENT_CONNECTION_ATT_MTU_UPDATE = "connection_att_mtu_update"
|
||||
EVENT_DISCONNECTION = "disconnection"
|
||||
@@ -1736,6 +1738,8 @@ class Connection(utils.CompositeEventEmitter):
|
||||
EVENT_CHANNEL_SOUNDING_CONFIG_REMOVED = "channel_sounding_config_removed"
|
||||
EVENT_CHANNEL_SOUNDING_PROCEDURE_FAILURE = "channel_sounding_procedure_failure"
|
||||
EVENT_CHANNEL_SOUNDING_PROCEDURE = "channel_sounding_procedure"
|
||||
EVENT_MODE_CHANGE = "mode_change"
|
||||
EVENT_MODE_CHANGE_FAILURE = "mode_change_failure"
|
||||
EVENT_ROLE_CHANGE = "role_change"
|
||||
EVENT_ROLE_CHANGE_FAILURE = "role_change_failure"
|
||||
EVENT_CLASSIC_PAIRING = "classic_pairing"
|
||||
@@ -5888,7 +5892,7 @@ class Device(utils.CompositeEventEmitter):
|
||||
connection.classic_interval = interval
|
||||
connection.emit(connection.EVENT_MODE_CHANGE)
|
||||
else:
|
||||
connection.emit(connection.EVENT_MODE_CHANGE_FAILURE)
|
||||
connection.emit(connection.EVENT_MODE_CHANGE_FAILURE, status)
|
||||
|
||||
# [Classic only]
|
||||
@host_event_handler
|
||||
|
||||
@@ -4990,7 +4990,9 @@ class HCI_LE_Set_Privacy_Mode_Command(HCI_Command):
|
||||
NETWORK_PRIVACY_MODE = 0x00
|
||||
DEVICE_PRIVACY_MODE = 0x01
|
||||
|
||||
peer_identity_address_type: int = field(metadata=Address.ADDRESS_TYPE_SPEC)
|
||||
peer_identity_address_type: int = field(
|
||||
metadata=metadata(Address.ADDRESS_TYPE_SPEC)
|
||||
)
|
||||
peer_identity_address: Address = field(
|
||||
metadata=metadata(Address.parse_address_preceded_by_type)
|
||||
)
|
||||
|
||||
@@ -1392,6 +1392,15 @@ class Host(utils.EventEmitter):
|
||||
def on_hci_synchronous_connection_changed_event(self, event):
|
||||
pass
|
||||
|
||||
def on_hci_mode_change_event(self, event: hci.HCI_Mode_Change_Event):
|
||||
self.emit(
|
||||
'mode_change',
|
||||
event.connection_handle,
|
||||
event.status,
|
||||
event.current_mode,
|
||||
event.interval,
|
||||
)
|
||||
|
||||
def on_hci_role_change_event(self, event):
|
||||
if event.status == hci.HCI_SUCCESS:
|
||||
logger.debug(
|
||||
|
||||
@@ -8,7 +8,7 @@ dynamic = ["version"]
|
||||
description = "Bluetooth Stack for Apps, Emulation, Test and Experimentation"
|
||||
readme = "README.md"
|
||||
authors = [{ name = "Google", email = "bumble-dev@google.com" }]
|
||||
requires-python = ">=3.8"
|
||||
requires-python = ">=3.9"
|
||||
dependencies = [
|
||||
"aiohttp ~= 3.8; platform_system!='Emscripten'",
|
||||
"appdirs >= 1.4; platform_system!='Emscripten'",
|
||||
|
||||
@@ -581,8 +581,12 @@ async def test_enter_and_exit_sniff_mode():
|
||||
devices = TwoDevices()
|
||||
await devices.setup_connection()
|
||||
|
||||
m = mock.Mock()
|
||||
devices.connections[0].on(Connection.EVENT_MODE_CHANGE, m)
|
||||
q = asyncio.Queue()
|
||||
|
||||
def on_mode_change():
|
||||
q.put_nowait(lambda: None)
|
||||
|
||||
devices.connections[0].on(Connection.EVENT_MODE_CHANGE, on_mode_change)
|
||||
|
||||
await devices[0].send_command(
|
||||
hci.HCI_Sniff_Mode_Command(
|
||||
@@ -594,7 +598,7 @@ async def test_enter_and_exit_sniff_mode():
|
||||
),
|
||||
)
|
||||
|
||||
m.assert_called_once()
|
||||
await asyncio.wait_for(q.get(), _TIMEOUT)
|
||||
assert devices.connections[0].classic_mode == hci.HCI_Mode_Change_Event.Mode.SNIFF
|
||||
assert devices.connections[0].classic_interval == 2
|
||||
|
||||
@@ -602,6 +606,7 @@ async def test_enter_and_exit_sniff_mode():
|
||||
hci.HCI_Exit_Sniff_Mode_Command(connection_handle=devices.connections[0].handle)
|
||||
)
|
||||
|
||||
await asyncio.wait_for(q.get(), _TIMEOUT)
|
||||
assert devices.connections[0].classic_mode == hci.HCI_Mode_Change_Event.Mode.ACTIVE
|
||||
assert devices.connections[0].classic_interval == 2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user