Controles auditivos

O objetivo dos controles auditivos no Pareamento rápido é fornecer controles de acesso melhores para recursos auditivos importantes no Android. Para isso, adicionamos um novo grupo de mensagens "Controles auditivos" no stream de mensagens.

Nome do grupo de mensagens Valor
Controle auditivo 0x08

Controle ativo de ruído

O Controle ativo de ruído está se tornando um recurso de destaque dos fones de ouvido premium. No lado dos usuários, o Pareamento rápido vai ter a interface e a lógica para definir, receber e salvar o estado, que será armazenado no lado do provedor. É obrigatório que o provedor envie o valor de uso único da sessão quando o stream de eventos estiver conectado. Para isso, são definidos os códigos de mensagem abaixo:

Nome do código da mensagem Valor Remetente Participante MAC CONF
Acessar estado de cancelamento de ruído 0x11 Buscador Provedor N N
Definir estado de cancelamento de ruído 0x12 Buscador Provedor S S
Notificar estado de cancelamento de ruído 0x13 Provedor Buscador N N

Quando um buscador se conecta a um provedor ou quando um provedor recebe uma mensagem "Receber estado de cancelamento de ruído", o provedor pode notificar o estado de cancelamento para que o usuário saiba a capacidade do cancelamento e o estado armazenado. A mensagem é a seguinte:

Byte Tipo de dados Descrição Valor
0 uint8 Controle auditivo 0x08
1 uint8 Notificar estado de cancelamento de ruído 0x13
2 a 3 uint16 Comprimento de dados adicional 0x04
4 a 7 Dados de controle de cancelamento de ruído varia
Dados de controle do cancelamento de ruído
Byte Tipo de dados Descrição Valor
0 uint8 Código da versão varia,0x02 para esta versão
1 Sinalizações Alternâncias de interface
Cada modo é ativado (1) ou desativado (0) de acordo com o valor do bit de flag, da seguinte maneira:
Bit 0 (MSB): transparente
Bit 1: Reservado (Defina bit como 0)
Bit 2: desativado
Bit 3: Reservado (Defina bit como 0)
Bit 4: ANC
varia
2 Sinalizações Alternâncias configuráveis
Qualquer ou todos os bits de alternância da interface acima também podem ser definidos aqui, para indicar quais estão ativados.
varia
3 Sinalizações Estado atual
Apenas um bit pode ser definido
varia

O Seeker mostrará a interface de alternância de acordo com os dados de controle de cancelamento de ruído.

Exemplo 1: o provedor oferece suporte a Cancelamento ativo de ruído de três vias: transparente - desativado - cancelamento de ruído e fones de ouvido na cabeça, todos os modos são configuráveis agora e o estado atual está desativado:

Byte Tipo de dados Descrição Valor
0 uint8 Código da versão 0x01
1 Sinalizações Alternâncias de interface 0b10101000
2 Sinalizações Alternâncias configuráveis 0b10101000
3 Sinalizações Estado atual 0b00100000

Exemplo 2: o provedor oferece suporte a Cancelamento ativo de ruído de três vias: transparente - desativado - cancelamento de ruído, apenas um fone está na cabeça ou nenhum fone está na cabeça. Portanto, nenhum modo pode ser configurado, e o estado atual está desativado:

Byte Tipo de dados Descrição Valor
0 uint8 Código da versão 0x01
1 Sinalizações Alternar interface 0b10101000
2 Sinalizações Alternância configurável 0b00000000
3 Sinalizações Estado atual 0b00100000

Se o usuário alternar o botão de alternância, o Seeker definirá o estado atual como o provedor da seguinte maneira:

Byte Tipo de dados Descrição Valor
0 uint8 Controle auditivo 0x08
1 uint8 Definir estado de cancelamento de ruído 0x12
2 a 3 uint16 Comprimento de dados adicional varia, 0x04 ou 0x14
4 uint8 Código da versão do Seeker varia, 0x01 ou 0x02
5 Sinalizações Modos configuráveis de cancelamento de ruído (alternar interface) varia
6 Sinalizações Modos ativados por cancelamento de ruído (alternância configurável) varia
7 Sinalizações Novo índice do modo ANC (novo estado) varia
8 a 23 Reservados varia

Os bytes 4 a 7 são, na verdade, dados de controle de cancelamento de ruído (link em inglês) enviados do lado do buscador. Se o valor de tamanho adicional for definido como 0x14, os bytes reservados de 8 a 23 estarão presentes e, ao receber esses bytes, o provedor deverá ignorá-los. Se o valor de comprimento adicional for definido como 0x04, não haverá bytes reservados.

Quando um provedor recebe uma mensagem "Definir estado de cancelamento de ruído", ele precisa reconhecer e notificar o estado de cancelamento de ruído para todos os Seekers conectados. Se o usuário mudar a configuração usando um gesto de fone de ouvido ou um aplicativo complementar, o provedor também vai precisar enviar uma notificação para todos os Seekers conectados.