From 6fa857ad138efde15e23ee64d9a46e9a72ab3e12 Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Tue, 21 Mar 2023 15:38:29 -0700 Subject: [PATCH 1/2] Add ASHA event emitter --- bumble/profiles/asha_service.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bumble/profiles/asha_service.py b/bumble/profiles/asha_service.py index fabaa281..6c586ea4 100644 --- a/bumble/profiles/asha_service.py +++ b/bumble/profiles/asha_service.py @@ -55,13 +55,13 @@ class AshaService(TemplateService): self.hisyncid = hisyncid self.capability = capability # Device Capabilities [Left, Monaural] self.device = device - self.emitted_data_name = 'ASHA_data_' + str(self.capability) self.audio_out_data = b'' self.psm = psm # a non-zero psm is mainly for testing purpose # Handler for volume control def on_volume_write(_connection, value): logger.info(f'--- VOLUME Write:{value[0]}') + self.emit('volume', str(value[0]).encode()) # Handler for audio control commands def on_audio_control_point_write(_connection, value): @@ -76,8 +76,10 @@ class AshaService(TemplateService): f'volume={value[3]}, ' f'otherstate={value[4]}' ) + self.emit('start', str(value[0]).encode()) elif opcode == AshaService.OPCODE_STOP: logger.info('### STOP') + self.emit('stop', str(value[0]).encode()) elif opcode == AshaService.OPCODE_STATUS: logger.info(f'### STATUS: connected={value[1]}') @@ -126,7 +128,7 @@ class AshaService(TemplateService): def on_data(data): logging.debug(f'<<< data received:{data}') - self.emit(self.emitted_data_name, data) + self.emit('data', data) self.audio_out_data += data channel.sink = on_data From 77e5618ce772cab1f7a839b82fe65efb427b7367 Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Tue, 21 Mar 2023 15:38:29 -0700 Subject: [PATCH 2/2] Add ASHA event emitter --- bumble/profiles/asha_service.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/bumble/profiles/asha_service.py b/bumble/profiles/asha_service.py index 6c586ea4..ec234af6 100644 --- a/bumble/profiles/asha_service.py +++ b/bumble/profiles/asha_service.py @@ -61,7 +61,7 @@ class AshaService(TemplateService): # Handler for volume control def on_volume_write(_connection, value): logger.info(f'--- VOLUME Write:{value[0]}') - self.emit('volume', str(value[0]).encode()) + self.emit('volume', value[0]) # Handler for audio control commands def on_audio_control_point_write(_connection, value): @@ -76,10 +76,18 @@ class AshaService(TemplateService): f'volume={value[3]}, ' f'otherstate={value[4]}' ) - self.emit('start', str(value[0]).encode()) + self.emit( + 'start', + { + 'codec': value[1], + 'audiotype': value[2], + 'volume': value[3], + 'otherstate': value[4], + }, + ) elif opcode == AshaService.OPCODE_STOP: logger.info('### STOP') - self.emit('stop', str(value[0]).encode()) + self.emit('stop') elif opcode == AshaService.OPCODE_STATUS: logger.info(f'### STATUS: connected={value[1]}')