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