پشتیبانی از خط مشی صوتی قابل تنظیم در AIDL HAL

با شروع اندروید 16، رابط AIDL Audio HAL به طور کامل از سیاست صوتی قابل تنظیم (CAP) پشتیبانی می کند.

این صفحه زمینه فنی لازم را برای کمک به شرکا و فروشندگان SoC در انتقال تنظیمات خط مشی صوتی خود فراهم می کند.

چارچوب پارامتر

اجرای CAP بر اساس چارچوب پارامتر اینتل است. CAP در اندروید 6 معرفی شد. چارچوب پارامتر (PfW) اجازه می دهد تا یک سیستم را از نظر پارامترها توصیف کنید. با استفاده از یک فایل پیکربندی XML، PfW پارامترها را به اقدامات با استفاده از افزونه ها متصل می کند و قوانینی را برای تغییر پارامترها بر اساس معیارهای فعلی ارائه می دهد.

ساختار CAP در HIDL

در HIDL، تمام تنظیمات برای CAP در XML مشخص شده است. برای اطلاعات بیشتر به چارچوب پارامتر و پیکربندی با استفاده از چارچوب پارامتر مراجعه کنید. از فایل های XML برای تعیین موارد زیر استفاده شد:

  • شرح ساختار پارامترها (یعنی شرح دامنه صوتی برای PfW)
  • تعاریف معیارها
  • قوانین راهبردهای مسیریابی (انتخاب دستگاه ورودی و خروجی)
  • مشخصات جداول حجمی

با HIDL، فریم ورک اندروید قادر بود این فایل‌های XML را مستقیماً از پارتیشن فروشنده بارگیری کند. این اجازه داده شد زیرا یک طرحواره XSD به عنوان بخشی از HAL API برای این فایل‌های XML تعریف شده بود. هر نسخه اصلی HIDL HAL دارای یک طرح XSD متناظر بود. نسخه های اصلی به سازگاری با عقب نیازی نداشتند.

ساختار CAP در AIDL

با انتقال به AIDL، نسخه‌های API HAL باید سازگار با عقب باقی بمانند. طرحواره‌های XSD دیگر نمی‌توانند به‌عنوان بخشی از APIهای HAL مورد استفاده قرار گیرند، زیرا هیچ روش ثابتی برای تعریف به‌روزرسانی‌های سازگار با عقب برای طرحواره‌ها وجود ندارد. از این رو، پیکربندی که قبلاً در فایل‌های XML تعریف شده بود، اکنون باید توسط HAL با استفاده از APIهای AIDL ارائه شود. برای تسهیل این امر، ساختار پیکربندی CAP به AIDL تبدیل شده است، شبیه به XML های پیکربندی خط مشی صوتی در AIDL Audio HAL برای Android 15.

ساختارهای داده برای CAP به انواع داده‌های پایدار مشترک اضافه می‌شوند و شامل قطعات زیر می‌شوند:

نقطه ورود برای پیکربندی CAP در ساختار AudioHalEngineConfig.CapSpecificConfig است. برای مشاهده نمودار ساختارهای داده CAP به نظرات در AudioHalCapConfiguration.aidl مراجعه کنید.

اجرای پیش‌فرض AIDL HAL شامل یک کلاس کمکی است که بسته‌بندی‌های AIDL را بر اساس محتویات فایل‌های قدیمی CAP XML پر می‌کند تا مهاجرت برای شرکا را ساده کند.

سناریوهای مهاجرت

شرکا ممکن است گزینه های فهرست شده در این بخش را بر اساس اینکه آیا این اولین راه اندازی محصولی است که قبلاً از CAP استفاده نمی کرد یا تغییر یک محصول موجود، در نظر بگیرند.

محصول جدید

برای یک محصول جدید که شروع به استفاده از CAP برای اجرای سیاست صوتی می کند، OEM می تواند استفاده از XML را برای ذخیره پیکربندی CAP در سمت فروشنده انتخاب کند.

مزیت استفاده از XML این است که مجموعه ای از ابزارهای اسکریپت نویسی وجود دارد که تولید پیکربندی را از توضیحات سطح بالا تسهیل می کند.

اگر OEM تصمیم گرفت از XML برای ذخیره پیکربندی CAP در پارتیشن فروشنده استفاده کند، توصیه می شود از پیاده سازی پیش فرض تجزیه کننده XML برای تبدیل پیکربندی به AIDL استفاده کند.

به روز رسانی برای محصول موجود

اگر محصول قبلاً از CAP استفاده می‌کند و بنابراین پیکربندی XML را دارد، می‌توانید از CAP موجود با نسخه AIDL HAL استفاده کنید.

قرارداد نامگذاری برای استراتژی های محصول در نسخه های HIDL و AIDL پیکربندی CAP متفاوت است. در HIDL، استراتژی‌های داخلی ("میراث") از نام‌های کوتاه با حروف کوچک مانند media استفاده می‌کنند، در حالی که در AIDL، استراتژی‌های داخلی از نام‌هایی با پیشوند STRATEGY_ استفاده می‌کنند، برای مثال STRATEGY_MEDIA . لیست استراتژی های داخلی را در CapProductStrategies.xml ببینید. همان فایل شناسه‌های «از پیش تخصیص‌یافته» را برای استراتژی‌های OEM خاص تعریف می‌کند که از الگوی نام‌گذاری vx_10xx با اعداد از 1000 تا 1039 پیروی می‌کنند.

محصول قدیمی

اگر محصولی که به CAP متکی است پارتیشن فروشنده خود را به‌روزرسانی نمی‌کند و روی HIDL باقی می‌ماند، می‌توانید پارتیشن سیستم را به Android 16 به‌روزرسانی کنید. این چارچوب با پیکربندی CAP قدیمی سازگار است.

اجرای نمونه

برای کمک به شرکا در پیاده سازی CAP برای پلتفرم های خود، AOSP نمونه ای از طعم "خودرویی" دستگاه مجازی Cuttlefish را دارد که از CAP با AIDL HAL استفاده می کند. پیکربندی مخصوص دستگاه در device/google/cuttlefish/shared/auto/audio/policy/engine با نام هدف lunch aosp_cf_x86_64_auto قرار دارد. فایل Android.bp می تواند به عنوان مرجعی برای تولید مجموعه کامل فایل های فروشنده CAP استفاده شود.