کنترلهای شنیداری
کنترلهای شنیداری در Fast Pair با هدف ارائه کنترلهای دسترسی بهتر برای ویژگیهای مهم شنیداری در اندروید طراحی شدهاند. برای دستیابی به این هدف، یک گروه پیام جدید با کنترلهای شنیداری در Message Stream اضافه شده است.
| نام گروه پیام | ارزش |
|---|---|
| کنترل شنیداری | 0x08 |
کنترل فعال نویز
کنترل فعال نویز در حال تبدیل شدن به یک ویژگی برجسته برای هدفونهای پریمیوم است. در سمت Seeker، Fast Pair رابط کاربری و منطق لازم برای تنظیم، دریافت و ذخیره وضعیت را خواهد داشت و وضعیت در سمت Provider ذخیره میشود. ارسال Session Nonce توسط Provider هنگام اتصال جریان رویداد الزامی است. برای دستیابی به این هدف، کدهای پیام زیر تعریف شدهاند:
| نام کد پیام | ارزش | فرستنده | پاسخگو | مک | تایید |
|---|---|---|---|---|---|
| دریافت وضعیت ANC | 0x11 | جستجوگر | ارائه دهنده | ن | ن |
| تنظیم حالت ANC | 0x12 | جستجوگر | ارائه دهنده | ی | ی |
| به ایالت ANC اطلاع دهید | 0x13 | ارائه دهنده | جستجوگر | ن | ن |
وقتی یک جستجوگر به یک ارائهدهنده متصل میشود، یا وقتی یک ارائهدهنده پیام "دریافت وضعیت ANC" را دریافت میکند، ارائهدهنده میتواند وضعیت ANC را اطلاع دهد تا جستجوگر از قابلیت ANC و وضعیت ذخیرهشده خود مطلع شود. این پیام به شرح زیر است:
| بایت | نوع داده | توضیحات | ارزش |
|---|---|---|---|
| 0 | uint8 | کنترل شنیداری | 0x08 |
| ۱ | uint8 | به ایالت ANC اطلاع دهید | 0x13 |
| ۲ - ۳ | واحد۱۶ | طول داده اضافی | 0x04 |
| ۴ - ۷ | دادههای کنترل ANC | متغیر است |
دادههای کنترل ANC
| بایت | نوع داده | توضیحات | ارزش |
|---|---|---|---|
| 0 | uint8 | کد نسخه | متفاوت است ، 0x02 برای این نسخه |
| ۱ | پرچمها | رابط کاربری تغییر میکند هر حالت با توجه به مقدار بیت پرچم خود، فعال (1) یا غیرفعال (0) میشود، به شرح زیر: بیت ۰ (MSB): شفاف بیت ۱: تطبیقی (یا ۰ اگر پشتیبانی نمیشود) بیت ۲: خاموش بیت ۳: رزرو شده (بیت را روی ۰ تنظیم کنید) بیت ۴: ANC | متغیر است |
| ۲ | پرچمها | ضامنهای قابل تنظیم هر یک یا همه بخشهای تغییر وضعیت رابط کاربری بالا را میتوان در اینجا نیز تنظیم کرد تا مشخص شود کدام یک در حال حاضر فعال هستند. | متغیر است |
| ۳ | پرچمها | وضعیت فعلی فقط یک بیت میتواند تنظیم شود و مقدار این بایت باید غیر صفر باشد. | متغیر است |
جستجوگر، رابط کاربریِ ضامن را مطابق با دادههای کنترل ANC نشان میدهد.
مثال ۱: ارائه دهنده از ANC سه طرفه پشتیبانی میکند: شفاف - خاموش - ANC و هدفونها روی سر هستند، اکنون همه حالتها قابل تنظیم هستند و وضعیت فعلی خاموش است:
| بایت | نوع داده | توضیحات | ارزش |
|---|---|---|---|
| 0 | uint8 | کد نسخه | 0x02 |
| ۱ | پرچمها | رابط کاربری تغییر میکند | 0b10101000 |
| ۲ | پرچمها | ضامنهای قابل تنظیم | 0b10101000 |
| ۳ | پرچمها | وضعیت فعلی | 0b00100000 |
مثال ۲: ارائهدهنده از ANC سهطرفه پشتیبانی میکند: شفاف - خاموش - ANC، در حال حاضر فقط یک هدفون روی سر است یا هیچ هدفونی روی سر نیست، بنابراین هیچ حالتی قابل تنظیم نیست و وضعیت فعلی خاموش است:
| بایت | نوع داده | توضیحات | ارزش |
|---|---|---|---|
| 0 | uint8 | کد نسخه | 0x02 |
| ۱ | پرچمها | رابط کاربری را تغییر دهید | 0b10101000 |
| ۲ | پرچمها | ضامن قابل تنظیم | ۰ب۰۰۰۰۰۰۰۰ |
| ۳ | پرچمها | وضعیت فعلی | 0b00100000 |
اگر کاربر این گزینه را تغییر دهد، جستجوگر وضعیت فعلی را به صورت زیر روی Provider تنظیم میکند:
| بایت | نوع داده | توضیحات | ارزش |
|---|---|---|---|
| 0 | uint8 | کنترل شنیداری | 0x08 |
| ۱ | uint8 | تنظیم حالت ANC | 0x12 |
| ۲ - ۳ | واحد۱۶ | طول داده اضافی | متغیر است ، 0x04 یا 0x14 |
| ۴ | uint8 | کد نسخه جستجوگر | متغیر است ، 0x01 یا 0x02 |
| ۵ | پرچمها | حالتهای قابل تنظیم ANC (تغییر وضعیت رابط کاربری) | متغیر است |
| ۶ | پرچمها | حالتهای فعال ANC (قابل تنظیم) | متغیر است |
| ۷ | پرچمها | شاخص حالت ANC جدید (وضعیت جدید) | متغیر است |
| ۸ - ۲۳ | رزرو شده | متغیر است |
بایتهای ۴ تا ۷ در واقع دادههای کنترل ANC هستند که از سمت جستجوگر ارسال میشوند. اگر مقدار طول اضافی روی ۰x۱۴ تنظیم شود، بایتهای رزرو شده ۸ تا ۲۳ وجود خواهند داشت و در هنگام دریافت این بایتها، ارائه دهنده باید آنها را نادیده بگیرد. اگر مقدار طول اضافی روی ۰x۰۴ تنظیم شود، هیچ بایت رزرو شدهای وجود ندارد.
وقتی یک ارائهدهنده پیام "تنظیم وضعیت ANC" را دریافت میکند، باید وضعیت ANC را تأیید و به همه جویندگان متصل اطلاع دهد. اگر کاربر تنظیمات را از طریق ژست هدست یا برنامه همراه تغییر دهد، ارائهدهنده نیز باید به همه جویندگان متصل اعلان ارسال کند.
مثال ۳: ارائهدهنده از ANC چهارطرفه پشتیبانی میکند: شفاف - تطبیقی - خاموش - ANC، هدفونها روی سر هستند، اکنون همه حالتها قابل تنظیم هستند و وضعیت فعلی تطبیقی است:
| بایت | نوع داده | توضیحات | ارزش |
|---|---|---|---|
| 0 | uint8 | کد نسخه | 0x02 |
| ۱ | پرچمها | رابط کاربری را تغییر دهید | 0b11101000 |
| ۲ | پرچمها | ضامن قابل تنظیم | 0b11101000 |
| ۳ | پرچمها | وضعیت فعلی | 0b01000000 |