פקדי שמיעה
מטרת הפקדים לשמיעה בתכונה 'התאמה מהירה' היא לספק פקדי גישה טובים יותר לתכונות חשובות שניתנות לשמיעה ב-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 לכל המשתמשים המחוברים. אם המשתמש משנה את ההגדרה באמצעות תנועה של אוזניות או אפליקציה נלווית, הספק צריך גם לשלוח התראה לכל המשתמשים המחוברים.