Android 14 ও এর পরের যেকোনও ভার্সনে, অডিও HAL ইন্টারফেসকে Stable AIDL ব্যবহার করে সংজ্ঞায়িত করা হয়। পার্টনার ও SoC ভেন্ডরদের AIDL ইন্টারফেস প্রদান করতে তাদের অডিও HAL আবার প্রয়োগ করার জন্য উৎসাহিত করা হয়।
libaudiohal লাইব্রেরি এক্সটেন্ড করলে AIDL HAL-এর জন্য ফ্রেমওয়ার্ক সাপোর্ট যোগ হয়।
AIDL প্রয়োগের মাধ্যমে, অডিও নীতি কনফিগারেশন স্পেসিফিকেশন
AIDL HAL-এ সরানো হয়েছে। এই পরিবর্তনের ফলে, অডিও পলিসি ম্যানেজার (APM) ভেন্ডর-প্রদান করা XML
ফাইল থেকে কনফিগারেশন না নিয়ে HAL থেকে
কনফিগারেশন পায়।
Audio AIDL HAL API
এই বিভাগে AIDL-এর জন্য Core, Effects ও Common HAL API সম্পর্কে বর্ণনা করা হয়েছে।
যেসব অডিও HAL কার্নেল ড্রাইভারের সাথে
ইন্টার্যাক্ট করে সেগুলির নতুন ভার্সন প্রয়োগ করার সময়
রেফারেন্স হিসেবে AIDL API-এর ডিফল্ট প্রয়োগ
/hardware/interfaces/audio/aidl/default/ব্যবহার করুন।
AIDL-এর জন্য অডিও HAL ডিরেক্টরি স্ট্রাকচার দেখতে অডিও HAL README ফাইল দেখুন।
Core HAL
AIDL ব্যবহার করে, Core HAL-এর কিছু মূল ইন্টারফেস, নিচে দেওয়া হল:
IModule.aidlহল API-তে প্রবেশের পয়েন্ট।- স্ট্রিমগুলি একমুখী এবং
IStreamOut.aidlওIStreamIn.aidl-এর মাধ্যমে HAL-এ অডিও পাঠানো ও সেখান থেকে অডিও পাওয়ার জন্য AudioFlinger এগুলি ব্যবহার করে। ITelephony.aidlটেলিফোনি ফাংশনের জন্য নির্দিষ্ট কন্ট্রোল প্রদান করে।IBluetooth.aidlBT 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/-এ আছে।
এফেক্ট HAL
AIDL ব্যবহার করে, Effects HAL-এর কিছু মূল ইন্টারফেস নিচে দেওয়া হল:
IFactory.aidlহল API-তে প্রবেশের পয়েন্ট।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-এ আছে।
আরও তথ্যের জন্য অডিও এফেক্ট দেখুন ।
সাধারণ HAL
BT HAL, কোর এবং এফেক্ট অডিও HAL-এর মতো বিভিন্ন HAL-এর মধ্যে শেয়ার করা ডেটা স্ট্রাকচার এবং ইন্টারফেসগুলি কমন HAL-এ থাকে।
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/-এ আছে।
সাধারণ স্থিতিশীল ডেটার ধরন
HAL ও ফ্রেমওয়ার্ক, দু'টিই স্থিতিশীল ডেটা স্ট্রাকচার সংজ্ঞা ব্যবহার করে।
ডেভেলপমেন্ট পর্যায়ে থাকা স্টেবল ডেটা টাইপের লেটেস্ট ভার্সন হল
/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 ভার্সনে এমন কোনও পরিবর্তন নেই যা নিরাপত্তার উপর প্রভাব ফেলতে পারে।