एआईडीएल ऑडियो एचएएल

Android 14 से, ऑडियो एचएएल इंटरफ़ेस को स्टैबल एआईडीएल का इस्तेमाल करके तय किया गया है. पार्टनर और SoC वेंडर को हमारा सुझाव है कि वे अपना ऑडियो एचएएल फिर से लागू करें, ताकि एआईडीएल इंटरफ़ेस उपलब्ध कराया जा सके.

libaudiohal लाइब्रेरी को बड़ा करने से, AIDL HAL के लिए फ़्रेमवर्क का सपोर्ट जुड़ जाता है. AIDL लागू करने के बाद, ऑडियो नीति के कॉन्फ़िगरेशन की खास जानकारी को AIDL HAL में ले जाया गया है. इस बदलाव के बाद, ऑडियो नीति मैनेजर (एपीएम) को वेंडर की दी गई एक्सएमएल फ़ाइल से कॉन्फ़िगरेशन पाने के बजाय, एचएएल से कॉन्फ़िगरेशन मिलता है.

Audio AIDL HAL API

इस सेक्शन में, AIDL के लिए कोर, इफ़ेक्ट, और सामान्य एचएएल एपीआई के बारे में बताया गया है.

kernel ड्राइवर के साथ इंटरैक्ट करने वाले ऑडियो एचएएल के नए वर्शन लागू करते समय, /hardware/interfaces/audio/aidl/default/ पर मौजूद AIDL API के डिफ़ॉल्ट तरीके का इस्तेमाल, रेफ़रंस के तौर पर करें.

AIDL के लिए, ऑडियो एचएएल डायरेक्ट्री के स्ट्रक्चर के बारे में जानने के लिए, ऑडियो एचएएल की रीडमी फ़ाइल देखें.

कोर HAL

AIDL का इस्तेमाल करने वाले Core 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/ में मौजूद है.

इफ़ेक्ट एचएएल

AIDL का इस्तेमाल करने वाले, इफ़ेक्ट एचएएल के कुछ मुख्य इंटरफ़ेस यहां दिए गए हैं:

  • 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 में मौजूद है.

ज़्यादा जानकारी के लिए, ऑडियो इफ़ेक्ट देखें.

कॉमन एचएएल

BT HAL, कोर, और इफ़ेक्ट ऑडियो HAL जैसे अलग-अलग एचएएल के बीच शेयर किए गए डेटा स्ट्रक्चर और इंटरफ़ेस, कॉमन एचएएल में होते हैं.

सामान्य और स्थिर डेटा टाइप

डेटा स्ट्रक्चर की स्थिर परिभाषाओं का इस्तेमाल, एचएएल और फ़्रेमवर्क, दोनों में किया जाता है.

Audio AIDL HAL API की जांच करना

AIDL इंटरफ़ेस के लिए, नए VTS टेस्ट उपलब्ध कराए गए हैं.

HAL के नए वर्शन में कोई ऐसा बदलाव नहीं किया गया है जिससे सुरक्षा पर असर पड़े.