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.