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

swyh-rs اصل Stream-What-You-Hear (SWYH) آئیڈیا کا MIT لائسنس یافتہ Rust میں دوبارہ نفاذ ہے: یہ Windows یا Linux PC پر اس وقت چل رہی آڈیو کو کیپچر کرتا ہے اور اسے نیٹ ورک میوزک پلیئرز تک اسٹریم کرتا ہے۔ مصنف نے اسے جزوی طور پر Rust سیکھنے کے لیے لکھا، اور اس لیے بھی کہ اصل ورژن صرف Windows کے لیے تھا، کچھ رینڈررز کے ساتھ مسائل تھے، اور اس میں پرانی .NET UPnP لائبریری سے میموری لیک تھی۔ یہ کیسے کام کرتا ہے: آغاز پر یہ منتخب کردہ سورس سے آڈیو کیپچر کرتا ہے (Windows پر WasApi، Linux پر ALSA) cpal لائبریری کے ذریعے، ایک بلٹ اِن HTTP اسٹریمنگ سرور کو قابلِ ترتیب پورٹ (ڈیفالٹ 5901) پر شروع کرتا ہے، LAN پر UPnP/DLNA/OpenHome رینڈررز تلاش کرنے کے لیے SSDP ڈسکوری چلاتا ہے، اور ہر دریافت شدہ رینڈرر کے لیے ایک بٹن دکھاتا ہے۔ بٹن پر کلک کرنے سے رینڈرر (OpenHome یا AVTransport) کو اسٹریم چلانے کی ہدایت دی جاتی ہے۔ ڈسکوری پس منظر میں وقفے وقفے سے دوبارہ چلتی رہتی ہے۔ 1.21.0 سے یہ SlimProto پروٹوکول بھی براہِ راست بولتا ہے، لہٰذا squeezelite کلائنٹس Logitech Media Server/Lyrion کی ضرورت کے بغیر دریافت اور کنٹرول کیے جاتے ہیں۔ اسٹریمنگ فارمیٹس صرف بغیر نقصان کے ہیں: 16/24-بٹ FLAC (ترجیحی)، WAV، RF64 اور LPCM (audio/l16)۔ کوئی lossy MP3/AAC دوبارہ انکوڈنگ نہیں۔ آڈیو سورس سیمپل ریٹ پر اسٹریم ہوتی ہے۔ اسٹریم مقامی انٹرنیٹ ریڈیو URL کے طور پر بھی قابلِ رسائی ہے جیسے http://{ip}:5901/stream/swyh.flac، جس میں بٹ ڈیپتھ اور اسٹریم سائز موڈ کے لیے کوئری پیرامیٹرز ہوتے ہیں۔ GUI (fltk-rs) میں Audio، Network، App اور Status ٹیبز ہیں۔ اختیارات میں آڈیو سورس اور سیمپل ریٹ، اسٹریمنگ فارمیٹ، 24-بٹ موڈ، پانچ HTTP چنکنگ/Content-Length موڈز، ابتدائی بفرنگ، 16-بٹ کے لیے TPDF ڈِدَرنگ، رینڈررز کو جڑے رکھنے کے لیے خاموشی انجیکٹ کرنا، نیٹ ورک انٹرفیس کا انتخاب، HTTP پورٹ، SSDP وقفہ (0 صرف سرور موڈ کے لیے ڈسکوری غیر فعال کرتا ہے)، دستی ڈسکوری ٹرگر، UI زبان اور تھیم، لاگ لیول، آٹو-ریزیوم، آٹو-ری کنیکٹ، RMS لیول مانیٹر، اور SlimProto فعال/غیر فعال شامل ہیں۔ رینڈرر بٹنز کو رائٹ کلک سے چھپایا جا سکتا ہے؛ سپورٹ ہونے پر والیوم سلائیڈر ظاہر ہوتا ہے، اور Shift-ڈریگ کرنے سے والیوم تمام فعال رینڈررز میں کاپی ہو جاتا ہے۔ متعدد انسٹینسز الگ کنفگ فائلوں کے ساتھ چل سکتے ہیں تاکہ بیک وقت مختلف سورسز کو مختلف ریسیورز تک اسٹریم کیا جا سکے۔ README میں مطابقت کے نوٹس میں MoOde، Volumio، Denon Heos، Sonos، Roon، Yamaha، Kef، Bubble UPnP کے ذریعے Chromecast، Squeezebox/squeezelite اور دیگر کے ساتھ جانچ کا ذکر ہے، ساتھ ہی ڈیوائس کے مخصوص فارمیٹ اور اسٹریم سائز کے انتباہات بھی۔ معلوم مسائل میں فائر وال/پورٹ کی ضروریات (HTTP کے لیے 5901، SlimProto کے لیے 3483)، Linux آڈیو مانیٹرنگ سیٹ اپ، MPD پر مبنی پلیئرز پر WAV/RF64/LPCM کے ساتھ 5 سیکنڈ کی FFMPEG تجزیہ تاخیر، اور نئی Windows انسٹالز پر VCRUNTIME140.dll کی ضرورت شامل ہیں۔ بائنریز Windows x86/64 اور Linux ایپ امیجز کے لیے فراہم کی گئی ہیں؛ ARM بلڈز کسی تیسرے فریق سے لنک کیے گئے ہیں۔ یہ پروجیکٹ وسائل کے استعمال میں چھوٹا ہے (تقریباً 8 MB سے کم RAM) اور اس میں ایک CLI بائنری اور ایک کمیونٹی Python ٹرے آئیکن شامل ہے۔