প্রকল্প সম্পর্কে

FAudio হলো Microsoft-এর DirectX Audio রানটাইম লাইব্রেরিগুলোর একটি ওপেন-সোর্স পুনর্বাস্তবায়ন, যা FNA প্রকল্পের জন্য তৈরি করা হয়েছে। এর ঘোষিত লক্ষ্য হলো শুধু একটি সামঞ্জস্যপূর্ণ API সারফেস দেওয়া নয়, বরং সম্পূর্ণ আচরণগত নির্ভুলতা নিশ্চিত করা, যাতে মূল লাইব্রেরিগুলোর জন্য লেখা সফটওয়্যার ওপেন প্ল্যাটফর্মেও একইভাবে কাজ করে। পরিধি প্রকল্পটি কয়েকটি সম্পর্কিত অডিও API কভার করে: - XAudio2, নিম্ন-স্তরের অডিও মিক্সিং ও প্লেব্যাক API - X3DAudio, স্পেশিয়াল অডিও সহায়ক লাইব্রেরি - XAPO, ক্রস-প্ল্যাটফর্ম অডিও প্রসেসিং অবজেক্ট ইন্টারফেস - XACT3, উচ্চতর-স্তরের অডিও ক্রিয়েশন টুল রানটাইম ব্যবহারের উদ্দেশ্য FAudio লেখা হয়েছে FNA-এর Audio এবং Media নেমস্পেসগুলোকে সমর্থন করার জন্য। অ্যাপ্লিকেশনগুলো এটি ব্যবহার করে FAudio#-এর মাধ্যমে, যা রিপোজিটরির csharp/ ডিরেক্টরিতে থাকা একটি C# বাইন্ডিং, এবং এটি .NET-ভিত্তিক গেম কোড থেকে ব্যবহারযোগ্য করে তোলে। নির্ভরতা FAudio শুধুমাত্র SDL 3.2.0 বা তার নতুন সংস্করণের উপর নির্ভর করে। README-তে উল্লেখ করা হয়েছে যে এটি কখনোই স্পষ্টভাবে C রানটাইম ব্যবহার করে না, যা নির্ভরতার পরিসর ছোট রাখে এবং প্ল্যাটফর্মজুড়ে আচরণকে আরও পূর্বানুমেয় করে তোলে। বিল্ড বিল্ড নির্দেশনা লক্ষ্য অনুযায়ী ভিন্ন: - ইউনিক্স-সদৃশ সিস্টেমে, প্রকল্পটি CMake ব্যবহার করে: একটি বিল্ড ডিরেক্টরি তৈরি করুন, সোর্স ট্রিতে cmake চালান, তারপর make করুন। - উইন্ডোজে, বিল্ড ফাইলগুলো visualc/ ডিরেক্টরিতে দেওয়া আছে। - Xbox GDK-এর জন্য, visualc-gdk/ দেখুন। - iOS, tvOS এবং macOS ইউনিভার্সাল বাইনারির জন্য, Xcode/ ডিরেক্টরি দেখুন। পরীক্ষা FAudio-এর সাথে ইউনিট টেস্ট আসে যা XAudio2-এর আচরণ নথিভুক্ত করে এবং FAudio-এর বিরুদ্ধে চালানোর জন্য তৈরি, যাতে মিলে যাওয়া আচরণ নিশ্চিত করা যায়। এই টেস্টগুলো ডিফল্টভাবে বিল্ড হয় না; BUILD_TESTS=1 সেট করলে সেগুলো সক্রিয় হয়, এরপর faudio_tests বাইনারি চালানো যায়। tests/ ডিরেক্টরিতে একটি আলাদা Makefile একটি উইন্ডোজ এক্সিকিউটেবল বিল্ড করে (mingw-w64 প্রয়োজন), যাতে একই টেস্ট প্রকৃত XAudio2 বাস্তবায়নের বিরুদ্ধে তুলনার জন্য চালানো যায়। লাইসেন্স ও কমিউনিটি FAudio zlib লাইসেন্সের অধীনে প্রকাশিত। ইস্যু ও প্যাচ প্রকল্পের GitHub রিপোজিটরির মাধ্যমে পরিচালিত হয়, এবং প্রকল্পের ওয়েবসাইট fna-xna.github.io-তে হোস্ট করা হয়েছে।