Android 14 से, ऑडियो एचएएल इंटरफ़ेस को स्टैबल एआईडीएल का इस्तेमाल करके तय किया गया है. पार्टनर और SoC वेंडर को हमारा सुझाव है कि वे अपना ऑडियो एचएएल फिर से लागू करें, ताकि एआईडीएल इंटरफ़ेस उपलब्ध कराया जा सके.
libaudiohal
लाइब्रेरी को बड़ा करने से, AIDL HAL के लिए फ़्रेमवर्क का सपोर्ट जुड़ जाता है.
AIDL लागू करने के बाद, ऑडियो नीति के कॉन्फ़िगरेशन की खास जानकारी को AIDL HAL में ले जाया गया है. इस बदलाव के बाद, ऑडियो पॉलिसी मैनेजर (एपीएम) को वेंडर की दी गई एक्सएमएल फ़ाइल से एचएएल का इस्तेमाल करने के बजाय, एचएएल से कॉन्फ़िगरेशन मिलता है.
Audio AIDL HAL API
इस सेक्शन में, AIDL के लिए कोर, इफ़ेक्ट, और सामान्य एचएएल एपीआई के बारे में बताया गया है.
kernel ड्राइवर के साथ इंटरैक्ट करने वाले ऑडियो एचएएल के नए वर्शन लागू करते समय, /hardware/interfaces/audio/aidl/default/
पर मौजूद AIDL API के डिफ़ॉल्ट तरीके को रेफ़रंस के तौर पर इस्तेमाल करें.
AIDL के लिए, ऑडियो एचएएल डायरेक्ट्री के स्ट्रक्चर के बारे में जानने के लिए, ऑडियो एचएएल की रीडमी फ़ाइल देखें.
कोर एचएएल
कुछ मुख्य एचएएल के मुख्य इंटरफ़ेस यहां दिए गए हैं, जो एआईडीएल का इस्तेमाल करते हैं:
IModule.aidl
, एपीआई का एंट्री पॉइंट है.- स्ट्रीम एकतरफ़ा होती हैं और AudioFlinger इनका इस्तेमाल एचएएल से
IStreamOut.aidl
औरIStreamIn.aidl
तक ऑडियो भेजने या पाने के लिए करता है. ITelephony.aidl
, टेलीफ़ोन की सुविधाओं को कंट्रोल करने की सुविधा देता है.IBluetooth.aidl
, BT SCO और HFP कंट्रोल उपलब्ध कराता है. ये कंट्रोल, HIDL API मेंIPrimaryModule
पर मौजूद थे.IConfig.aidl
, सिस्टम के लिए कॉन्फ़िगरेशन पैरामीटर उपलब्ध कराता है.ISoundDose.aidl
आवाज़ के डोज़ की सुविधा देता है. ज़्यादा जानकारी के लिए, आवाज़ की खुराक देखें.- अभी चल रहे Core HAL API का सबसे नया वर्शन अब
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
पर उपलब्ध है. - Core HAL API का रिलीज़ किया गया सबसे नया वर्शन,
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
में उपलब्ध है.
इफ़ेक्ट एचएएल
AIDL का इस्तेमाल करने वाले, इफ़ेक्ट एचएएल के कुछ मुख्य इंटरफ़ेस यहां दिए गए हैं:
IFactory.aidl
, एपीआई का एंट्री पॉइंट है.Descriptor.aidl
में, इफ़ेक्ट लागू करने के लिए सभी जानकारी होती है. जैसे, क्षमताएं और एट्रिब्यूट.Capability.aidl
इफ़ेक्ट की उन क्षमताओं के बारे में बताता है जो रनटाइम के दौरान नहीं बदलती.Parameter.aidl
, इफ़ेक्ट इंस्टेंस के साथ काम करने वाले सभी पैरामीटर तय करता है.IEffect.aidl
का इस्तेमाल, इफ़ेक्ट के खास इंस्टेंस को कॉन्फ़िगर और कंट्रोल करने के लिए किया जाता है.इफ़ेक्ट के हिसाब से पार्सल किए जा सकने वाले आइटम, जिनका नाम इफ़ेक्ट के नाम पर रखा जाता है.
इफ़ेक्ट HAL API का नया वर्शन जिस पर काम किया जा रहा है वह
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
में उपलब्ध है.Effects HAL API का रिलीज़ किया गया सबसे नया वर्शन,
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
में है.
ज़्यादा जानकारी के लिए, ऑडियो इफ़ेक्ट देखें.
कॉमन एचएएल
कई एचएएल, जैसे कि बीटी एचएएल, कोर और इफ़ेक्ट के बीच शेयर किए गए डेटा स्ट्रक्चर और इंटरफ़ेस कॉमन एचएएल में शामिल हैं.
Common AIDL HAL का नया वर्शन बनाने की प्रोसेस में है. यह वर्शन
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
में उपलब्ध है.Common HAL API का रिलीज़ किया गया सबसे नया वर्शन,
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
में है.
सामान्य स्थिर डेटा टाइप
स्थायी डेटा स्ट्रक्चर की परिभाषाओं का इस्तेमाल, एचएएल और फ़्रेमवर्क, दोनों में किया जाता है.
डेवलपमेंट में, डेटा टाइप के सबसे नए वर्शन का इस्तेमाल करने के लिए,
/system/hardware/interfaces/media/aidl/android/media/audio/common/
का इस्तेमाल करें.डेटा टाइप के स्थिर वर्शन का रिलीज़ किया गया नया वर्शन,
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
में मौजूद है.
Audio AIDL HAL API की जांच करना
AIDL इंटरफ़ेस के लिए, नए VTS टेस्ट उपलब्ध कराए गए हैं.
HAL के नए वर्शन में कोई ऐसा बदलाव नहीं किया गया है जिससे सुरक्षा पर असर पड़े.