منصوبے کے بارے میں

FAudio مائیکروسافٹ کی DirectX Audio رن ٹائم لائبریریوں کی اوپن سورس دوبارہ تشکیل ہے، جو FNA پروجیکٹ کے لیے تیار کی گئی ہے۔ اس کا بیان کردہ مقصد محض ایک مطابقت پذیر API سطح فراہم کرنا نہیں بلکہ مکمل رویے کی درستگی ہے، تاکہ اصل لائبریریوں کے لیے لکھا گیا سافٹ ویئر اوپن پلیٹ فارمز پر بھی یکساں طور پر کام کرے۔ دائرہ کار The project covers several related audio APIs: - XAudio2، نچلی سطح کی آڈیو مکسنگ اور پلے بیک API - X3DAudio، مقامی آڈیو معاون لائبریری - XAPO، کراس پلیٹ فارم آڈیو پروسیسنگ آبجیکٹ انٹرفیس - XACT3، اعلیٰ سطح کی آڈیو تخلیق ٹول رن ٹائم مطلوبہ استعمال FAudio کو FNA کے Audio اور Media namespaces کی پشت پناہی کے لیے لکھا گیا تھا۔ ایپلیکیشنز اس تک 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 پر میزبانی کی جاتی ہے۔