ヒアラブルの操作
ファスト ペアリングのヒアラブル コントロールは、Android の重要なヒアラブル機能へのアクセス制御を改善することを目的としています。これを実現するため、メッセージ ストリーム内に新しいメッセージ グループ「ヒアラブル コントロール」を追加しました。
メッセージ グループ名 | 値 |
---|---|
ヒアラブルの操作 | 0x08 |
アクティブ ノイズ コントロール
アクティブ ノイズ コントロールは、プレミアム ヘッドフォンの重要な機能になりつつあります。シーカー側では、ファスト ペアリングに状態の設定、取得、保存を行う UI とロジックがあり、状態はプロバイダ側に保存されます。イベント ストリームが接続されたときに、プロバイダが セッション ノンスを送信することは必須です。このため、次のメッセージ コードが定義されています。
メッセージ コード名 | 値 | ギフトの送り主 | 回答者 | MAC | ACK |
---|---|---|---|---|---|
ANC の状態を取得する | 0x11 | Seeker | プロバイダ | N | N |
ANC の状態を設定する | 0x12 | Seeker | プロバイダ | Y | Y |
ANC の状態を通知する | 0x13 | プロバイダ | Seeker | N | N |
シーカーがプロバイダに接続したとき、またはプロバイダが「ANC 状態を取得」メッセージを受信したとき、プロバイダは ANC 状態を通知して、シーカーに ANC 機能と保存された状態を知らせることができます。メッセージは次のとおりです。
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | ヒアラブルの操作 | 0x08 |
1 | uint8 | ANC の状態を通知する | 0x13 |
2 ~ 3 | uint16 | 追加データ長 | 0x04 |
4 ~ 7 | ANC 制御データ | varies |
ANC 制御データ
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | バージョン コード | 、このバージョンでは 0x02 |
1 | フラグ | UI 切り替え 各モードは、フラグビットの値に応じて有効(1)または無効(0)になります。 ビット 0(MSB): 透明 ビット 1: アダプティブ(サポートされていない場合は 0) ビット 2: オフ ビット 3: 予約済み(ビットを 0 に設定) ビット 4: ANC |
varies |
2 | フラグ | 設定可能な切り替え 上記の UI 切り替えビットのいずれかまたはすべてをここで設定して、現在有効になっているものを示すこともできます。 |
varies |
3 | フラグ | 現在の状態 設定できるビットは 1 つのみで、このバイトの値は 0 以外でなければなりません。 |
varies |
Seeker は、ANC 制御データに従って切り替え UI を表示します。
例 1: プロバイダが 3 ウェイ ANC(外部音取り込み - オフ - ANC)をサポートしており、イヤホンが頭に装着されていて、すべてのモードが設定可能で、現在の状態がオフの場合:
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | バージョン コード | 0x01 |
1 | フラグ | UI の切り替え | 0b10101000 |
2 | フラグ | 設定可能な切り替え | 0b10101000 |
3 | フラグ | 現在の状態 | 0b00100000 |
例 2: プロバイダが 3 ウェイ ANC(外部音取り込み - オフ - ANC)をサポートしており、現在ヘッドホンを装着しているのは片方のみ、または両方とも装着していないため、モードを設定できず、現在の状態はオフです。
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | バージョン コード | 0x01 |
1 | フラグ | UI 切り替え | 0b10101000 |
2 | フラグ | 設定可能な切り替え | 0b00000000 |
3 | フラグ | 現在の状態 | 0b00100000 |
ユーザーが切り替えボタンを切り替えると、シーカーは次のように現在の状態をプロバイダに設定します。
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | ヒアラブルの操作 | 0x08 |
1 | uint8 | ANC の状態を設定する | 0x12 |
2 ~ 3 | uint16 | 追加データ長 | varies、0x04 または 0x14 |
4 | uint8 | Seeker のバージョン コード | 可変、0x01 または 0x02 |
5 | フラグ | ANC の設定可能なモード(UI 切り替え) | varies |
6 | フラグ | ANC 有効モード(切り替え可能) | varies |
7 | フラグ | 新しい ANC モードのインデックス(新しい状態) | varies |
8 - 23 | 予約済み | varies |
バイト 4 ~ 7 は、実際には Seeker 側から送信された ANC 制御データです。追加の長さの値が 0x14 に設定されている場合、予約済みのバイト 8 ~ 23 が存在し、これらのバイトを受信すると、プロバイダはそれらを無視する必要があります。追加の長さの値が 0x04 に設定されている場合、予約済みのバイトは存在しません。
プロバイダが「ANC 状態の設定」メッセージを受信した場合、確認応答を行い、接続されているすべてのシーカーに ANC 状態を通知する必要があります。ユーザーがヘッドセットのジェスチャーまたはコンパニオン アプリケーションで設定を変更した場合、プロバイダは接続されているすべてのシーカーにも通知を送信する必要があります。
例 3: プロバイダが 4 ウェイ ANC(透明 - アダプティブ - オフ - ANC)をサポートし、イヤホンが装着され、すべてのモードが設定可能で、現在の状態がアダプティブの場合:
バイト | データ型 | 説明 | 値 |
---|---|---|---|
0 | uint8 | バージョン コード | 0x01 |
1 | フラグ | UI 切り替え | 0b11101000 |
2 | フラグ | 設定可能な切り替え | 0b11101000 |
3 | フラグ | 現在の状態 | 0b01000000 |