Android 14 से, ऑडियो एचएएल इंटरफ़ेस को स्टैबल एआईडीएल का इस्तेमाल करके तय किया जाता है. पार्टनर और SoC वेंडर को एआईडीएल इंटरफ़ेस उपलब्ध कराने के लिए, अपने ऑडियो एचएएल को फिर से लागू करने का सुझाव दिया जाता है.
libaudiohal
लाइब्रेरी को बड़ा करने से, AIDL HAL के लिए फ़्रेमवर्क का सपोर्ट जुड़ जाता है.
AIDL लागू करने के बाद, ऑडियो नीति के कॉन्फ़िगरेशन की खास जानकारी को AIDL HAL में ले जाया गया है. इस बदलाव के बाद, ऑडियो नीति मैनेजर (एपीएम) को वेंडर की दी गई एक्सएमएल फ़ाइल से कॉन्फ़िगरेशन पाने के बजाय, एचएएल से कॉन्फ़िगरेशन मिलता है.
Audio AIDL HAL API
इस सेक्शन में, AIDL के लिए कोर, इफ़ेक्ट, और सामान्य एचएएल एपीआई के बारे में बताया गया है.
kernel ड्राइवर के साथ इंटरैक्ट करने वाले ऑडियो एचएएल के नए वर्शन लागू करते समय, /hardware/interfaces/audio/aidl/default/
पर एआईडीएल एपीआई के डिफ़ॉल्ट तौर पर लागू होने वाले वर्शन का रेफ़रंस लें.
एआईडीएल के लिए, ऑडियो एचएएल डायरेक्ट्री के स्ट्रक्चर के बारे में जानने के लिए, ऑडियो एचएएल की 'रीड मी फ़ाइल' देखें.
कोर HAL
एआईडीएल का इस्तेमाल करने वाले कोर एचएएल के मुख्य इंटरफ़ेस में से कुछ यहां दिए गए हैं:
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/
में मौजूद है.
इफ़ेक्ट एचएएल
एआईडीएल का इस्तेमाल करने वाले इफ़ेक्ट एचएएल के कुछ मुख्य इंटरफ़ेस यहां दिए गए हैं:
IFactory.aidl
, एपीआई का एंट्री पॉइंट है.Descriptor.aidl
में, इफ़ेक्ट लागू करने के लिए सभी जानकारी होती है. जैसे, क्षमताएं और एट्रिब्यूट.Capability.aidl
, इफ़ेक्ट की उन सुविधाओं के बारे में बताता है जो रनटाइम के दौरान नहीं बदलती हैं.Parameter.aidl
, इफ़ेक्ट इंस्टेंस के साथ काम करने वाले सभी पैरामीटर तय करता है.IEffect.aidl
का इस्तेमाल, किसी खास इफ़ेक्ट इंस्टेंस को कॉन्फ़िगर और कंट्रोल करने के लिए किया जाता है.इफ़ेक्ट के हिसाब से पार्सल किए जा सकने वाले आइटम, जिनका नाम इफ़ेक्ट के नाम पर रखा जाता है.
Effects 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 की जांच करना
एआईडीएल इंटरफ़ेस के लिए, नए वीटीएस टेस्ट उपलब्ध कराए गए हैं.
HAL के नए वर्शन में कोई ऐसा बदलाव नहीं किया गया है जिससे सुरक्षा पर असर पड़े.