פקדי שמיעה

מטרת הפקדים לשמיעה בתכונה 'התאמה מהירה' היא לספק פקדי גישה טובים יותר לתכונות חשובות שניתנות לשמיעה ב-Android. כדי להשיג את הערך הזה, נוספה לקבוצת הודעות חדשה אמצעי בקרה 'שמיעים' בתוך Message Stream.

השם של קבוצת ההודעות ערך
בקרת שמיעה 0x08

בקרת רעש פעילה

התכונה 'בקרת רעש פעילה' הופכת לתכונה בולטת באוזניות פרימיום. בצד המחפש, התכונה 'התאמה מהירה' כוללת את ממשק המשתמש והלוגיקה להגדרה, קבלה ושמירה של המצב, והמצב יאוחסן אצל הספק. הספק חייב לשלוח את Session Nonce אל השידור של האירוע כשהוא מחובר. כדי לעשות את זה, צריך להגדיר את קודי ההודעות הבאים:

שם קוד ההודעה ערך השולח משיב/ה MAC ACK
אחזור של מצב ANC 0x11 מחפש ספק לא לא
הגדרת מצב ANC 0x12 מחפש ספק כן כן
שליחת הודעה למצב ANC 0x13 ספק מחפש לא לא

כשמחפש מתחבר לספק, או כשספק מקבל את ההודעה 'קבלת ANC', הספק יכול לשלוח התראה למצב ANC כדי ליידע את המחפש את יכולות ה-ANC ואת המצב השמור שלו. ההודעה הבאה:

בייט סוג הנתונים תיאור ערך
0 uint8 בקרת שמיעה 0x08
1 uint8 שליחת הודעה למצב ANC 0x13
3 - 2 uint16 אורך הנתונים הנוסף 0x04
4 - 7 נתוני בקרה של ANC משתנה
נתוני הבקרה של ANC
בייט סוג הנתונים תיאור ערך
0 uint8 קוד גרסה משתנה,0x02 בגרסה הזו
1 דגלים החלפת מצב בממשק המשתמש
כל מצב מופעל (1) או מושבת (0) בהתאם לערך של ביט הסימון שלו, באופן הבא:
ביט 0 (MSB): שקוף
ביט 1: שמור (הגדרת ביט ל-0)
ביט 2: כבוי
ביט 3: שמור (הגדרת ביט כ-0)
ביט 4: ANC
משתנה
2 דגלים מתגים שניתנים לעריכה
ניתן להגדיר כאן גם את כל הביטים של החלפת המצב של ממשק המשתמש שלמעלה, או את כולם, כדי לציין אילו מהם מופעלים כרגע.
משתנה
3 דגלים המצב הנוכחי
ניתן להגדיר ביט אחד בלבד
משתנה

המחפש יציג את לחצן החלפת המצב בהתאם לנתוני הבקרה של ANC.

דוגמה 1: הספק תומך ב-ANC דו-כיווני: שקופים – כבויים – ANC ואוזניות הכפתור, כל המצבים ניתנים להגדרה עכשיו והמצב הנוכחי כבוי:

בייט סוג הנתונים תיאור ערך
0 uint8 קוד גרסה 0x01
1 דגלים מתגים בממשק המשתמש 0b10101000
2 דגלים מתגים שניתן לערוך 0b10101000
3 דגלים המצב הקיים 0b00100000

דוגמה 2: הספק תומך ב-ANC דו-כיווני: שקוף – כבוי – ANC, רק עכשיו אוזנייה אחת נמצאת על הראש או שאף אוזנייה לא מחוברת לראש, כך שלא ניתן להגדיר מצבים והמצב הנוכחי כבוי:

בייט סוג הנתונים תיאור ערך
0 uint8 קוד גרסה 0x01
1 דגלים החלפת המצב של ממשק המשתמש 0b10101000
2 דגלים מתג לשינוי המצב של השולחן 0b00000000
3 דגלים המצב הקיים 0b00100000

אם המשתמש מעביר את המתג, המחפש יגדיר את המצב הנוכחי ל-Provider באופן הבא:

בייט סוג הנתונים תיאור ערך
0 uint8 בקרת שמיעה 0x08
1 uint8 הגדרת מצב ANC 0x12
3 - 2 uint16 אורך הנתונים הנוסף משתנה, 0x04 או 0x14
4 uint8 קוד גרסה של מחפש משתנה, 0x01 או 0x02
5 דגלים מצבי ANC Settable (החלפת ממשק משתמש) משתנה
6 דגלים מצבים מופעלים של ANC (מתג שניתן להגדיר) משתנה
7 דגלים אינדקס חדש של מצב ANC (מצב חדש) משתנה
8 - 23 בוצעה הזמנה משתנה

בייט 4 עד 7 הוא למעשה נתוני בקרת ANC שנשלחים מהצד המחפש. אם הערך של אורך נוסף מוגדר כ-0x14, הבייטים השמורים (8-23) יופיעו ולאחר קבלת הבייטים האלה, הספק צריך להתעלם מהם. אם הערך של האורך הנוסף מוגדר כ-0x04, לא קיימים בייטים שמורים.

כשהספק מקבל את ההודעה 'Set ANC state', הוא צריך לאשר את המצב של ANC ולהודיע על מצב ה-ANC לכל המשתמשים המחוברים. אם המשתמש משנה את ההגדרה באמצעות תנועה של אוזניות או אפליקציה נלווית, הספק צריך גם לשלוח התראה לכל המשתמשים המחוברים.