कान में पहने जाने वाले डिवाइस के कंट्रोल

Fast Pair पर उपलब्ध हियरबल कंट्रोल का मकसद, Android पर हियरबल की ज़रूरी सुविधाओं के लिए बेहतर ऐक्सेस कंट्रोल उपलब्ध कराना है. इसके लिए, मैसेज स्ट्रीम में Hearable कंट्रोल का नया मैसेज ग्रुप जोड़ा गया है.

मैसेज ग्रुप का नाम मान
कान में पहने जाने वाले डिवाइस को कंट्रोल करने की सुविधा 0x08

शोर को कंट्रोल करने की सुविधा

शोर को कंट्रोल करने की सुविधा, प्रीमियम हेडफ़ोन के लिए एक अहम सुविधा बन गई है. डिवाइस ढूंढने वाले डिवाइस पर, फ़ास्ट पेयर की सुविधा के लिए यूज़र इंटरफ़ेस (यूआई) और लॉजिक मौजूद होगा. इससे डिवाइस की स्थिति को सेट, हासिल, और सेव किया जा सकेगा. साथ ही, डिवाइस की स्थिति को डिवाइस उपलब्ध कराने वाले डिवाइस पर सेव किया जाएगा. इवेंट स्ट्रीम कनेक्ट होने पर, सेवा देने वाली कंपनी के लिए Session Nonce भेजना ज़रूरी है. इसके लिए, यहां दिए गए मैसेज कोड तय किए गए हैं:

मैसेज का कोड नेम मान प्रेषक जवाब देने वाला व्यक्ति MAC ACK
ANC की स्थिति पता करना 0x11 Seeker सेवा देने वाली कंपनी नहीं नहीं
ANC की स्थिति सेट करना 0x12 Seeker सेवा देने वाली कंपनी Y Y
एएनसी की स्थिति के बारे में सूचना दें 0x13 सेवा देने वाली कंपनी Seeker नहीं नहीं

जब कोई सीज़र, प्रोवाइडर से कनेक्ट होता है या जब प्रोवाइडर को "Get ANC state" मैसेज मिलता है, तो प्रोवाइडर, एएनसी की स्थिति के बारे में सूचना दे सकता है. इससे सीज़र को एएनसी की सुविधा और उसकी सेव की गई स्थिति के बारे में पता चल सकता है. मैसेज यहां दिया गया है:

बाइट डेटा टाइप ब्यौरा मान
0 uint8 कान में पहने जाने वाले डिवाइस को कंट्रोल करने की सुविधा 0x08
1 uint8 एएनसी की स्थिति के बारे में सूचना दें 0x13
2 - 3 uint16 अतिरिक्त डेटा का साइज़ 0x04
4 - 7 एएनसी कंट्रोल का डेटा अलग-अलग होती है
एएनसी कंट्रोल डेटा
बाइट डेटा टाइप ब्यौरा मान
0 uint8 वर्शन का कोड इस वर्शन के लिए अलग-अलग है, 0x02
1 झंडे यूज़र इंटरफ़ेस (यूआई) टॉगल
हर मोड को उसके फ़्लैग बिट की वैल्यू के हिसाब से चालू (1) या बंद (0) किया जाता है. जैसे:
बिट 0 (एमएसबी): ट्रांसपैरेंट
बिट 1: अडैप्टिव (अगर यह सुविधा काम नहीं करती, तो 0)
बिट 2: बंद
बिट 3: रिज़र्व (बिट को 0 पर सेट करें)
बिट 4: एएनसी
अलग-अलग होती है
2 झंडे सेट किए जा सकने वाले टॉगल
ऊपर दिए गए यूज़र इंटरफ़ेस (यूआई) के किसी भी या सभी टॉगल बिट को यहां भी सेट किया जा सकता है. इससे यह पता चलता है कि फ़िलहाल कौनसे टॉगल चालू हैं.
अलग-अलग होती है
3 झंडे मौजूदा स्थिति
सिर्फ़ एक बिट सेट की जा सकती है और इस बाइट की वैल्यू शून्य नहीं होनी चाहिए.
अलग-अलग होती है

सीकर, एएनसी कंट्रोल डेटा के हिसाब से टॉगल यूज़र इंटरफ़ेस (यूआई) दिखाएगा.

उदाहरण 1: मान लें कि सेवा देने वाली कंपनी, तीन तरह के एएनसी मोड उपलब्ध कराती है: ट्रांसपैरेंट - बंद - एएनसी. साथ ही, ईयरबड कान में लगे हैं, सभी मोड सेट किए जा सकते हैं, और फ़िलहाल एएनसी मोड बंद है:

बाइट डेटा टाइप ब्यौरा मान
0 uint8 वर्शन का कोड 0x01
1 झंडे यूज़र इंटरफ़ेस (यूआई) टॉगल 0b10101000
2 झंडे सेट किए जा सकने वाले टॉगल 0b10101000
3 झंडे मौजूदा स्थिति 0b00100000

दूसरा उदाहरण: मान लें कि सेवा देने वाली कंपनी, एएनसी के तीन मोड उपलब्ध कराती है: ट्रांसपैरेंट - बंद - एएनसी. फ़िलहाल, सिर्फ़ एक ईयरबड कान में लगा है या कोई भी ईयरबड कान में नहीं लगा है. इसलिए, कोई भी मोड सेट नहीं किया जा सकता. साथ ही, मौजूदा स्थिति बंद है:

बाइट डेटा टाइप ब्यौरा मान
0 uint8 वर्शन का कोड 0x01
1 झंडे यूज़र इंटरफ़ेस (यूआई) टॉगल 0b10101000
2 झंडे सेट किया जा सकने वाला टॉगल 0b00000000
3 झंडे मौजूदा स्थिति 0b00100000

अगर उपयोगकर्ता टॉगल को स्विच करता है, तो Seeker, Provider के लिए मौजूदा स्थिति को इस तरह सेट करेगा:

बाइट डेटा टाइप ब्यौरा मान
0 uint8 कान में पहने जाने वाले डिवाइस को कंट्रोल करने की सुविधा 0x08
1 uint8 ANC की स्थिति सेट करना 0x12
2 - 3 uint16 अतिरिक्त डेटा का साइज़ varies, 0x04 या 0x14
4 uint8 प्रज़ेंटर का वर्शन कोड अलग-अलग, 0x01 या 0x02
5 झंडे एएनसी के लिए सेट किए जा सकने वाले मोड (यूज़र इंटरफ़ेस टॉगल) अलग-अलग होती है
6 झंडे एएनसी की सुविधा वाले मोड (टॉगल सेट किया जा सकता है) अलग-अलग होती है
7 झंडे एएनसी मोड का नया इंडेक्स (नई स्थिति) अलग-अलग होती है
8 - 23 बुकिंग की गई अलग-अलग होती है

बाइट 4 से 7, असल में एएनसी कंट्रोल डेटा होता है. इसे सीक करने वाले डिवाइस से भेजा जाता है. अगर अतिरिक्त लंबाई की वैल्यू 0x14 पर सेट है, तो रिज़र्व किए गए बाइट 8-23 मौजूद होंगे. साथ ही, इन बाइट को पाने के बाद, सेवा देने वाली कंपनी को इन्हें अनदेखा करना चाहिए. अगर लंबाई की अतिरिक्त वैल्यू 0x04 पर सेट है, तो कोई भी रिज़र्व बाइट मौजूद नहीं है.

जब किसी सेवा देने वाली कंपनी को "Set ANC state" मैसेज मिलता है, तो उसे पुष्टि करनी चाहिए और कनेक्ट किए गए सभी उपयोगकर्ताओं को एएनसी की स्थिति के बारे में सूचना देनी चाहिए. अगर उपयोगकर्ता हेडसेट के जेस्चर या कंपैनियन ऐप्लिकेशन के ज़रिए सेटिंग बदलता है, तो सेवा देने वाली कंपनी को कनेक्ट किए गए सभी सीकर्स को भी सूचना भेजनी चाहिए.

तीसरा उदाहरण: सेवा देने वाली कंपनी, चार तरह के एएनसी मोड के साथ काम करती है: पारदर्शी - अडैप्टिव - बंद - एएनसी, कान में ईयरबड लगे हैं, अब सभी मोड सेट किए जा सकते हैं, और मौजूदा स्थिति अडैप्टिव है:

बाइट डेटा टाइप ब्यौरा मान
0 uint8 वर्शन का कोड 0x01
1 झंडे यूज़र इंटरफ़ेस (यूआई) टॉगल 0b11101000
2 झंडे सेट किया जा सकने वाला टॉगल 0b11101000
3 झंडे मौजूदा स्थिति 0b01000000