Originariamente inviato da
UnixMan
Pensando a come gestire al meglio un setup in cui ci sono / ci possono essere più dispositivi di uscita diversi e quindi è necessario avere più istanze diverse di Squeezeliye(-R2), mi è venuta un'idea... che è l'uovo di Colombo.
L'idea è semplicissima, comodissima e può risolvere un mucchio di problemi diversi: in sostanza... il "Plug&Play"! Non so perché non mi sia venuto in mente prima.
In pratica, anziché far avviare una istanza di R2 all'avvio (come un servizio "statico"), si tratterebbe di utilizzare
udev per avviare automaticamente una istanza di squeezelite nel momento in cui il sistema identifica la presenza di un dato dispositivo di uscita audio.
Devo ancora elaborare i dettagli ma, per sommi capi, potrebbe funzionare grosso modo così:
udev permette di definire delle "regole" che associano una azione (ad es. l'esecuzione di uno script) ad un dato "evento", quale tipicamente il rilevamento da parte del sistema di un dato dispositivo.
Si potrebbe quindi creare una lista di dispositivi (anche "tutte" le interfacce audio conosciute e supportate), ed a ciascuno di questi associare una azione (che, direttamente o indirettamente, avvia una istanza di squeezelite-R2 con le opzioni adatte a quel dispositivo).
Volendo, si può anche fare in modo che tale istanza di squeezelite venga fermata (eliminata) automaticamente nel momento in cui la relativa interfaccia audio dovesse essere spenta/scollegata dal sistema.
In questo modo si potrebbe creare un sistema "preconfezionato" che, con tutti i dispositivi supportati (ed inclusi nell'elenco delle regole di udev) funziona in modo completamente automatico, senza bisogno di alcun intervento né configurazione da parte dell'utente.
Un altro dei tanti vantaggi è che un setup del genere permette di gestire "n" diverse interfacce, anche contemporaneamente (con "n" diverse istanze di R2) in modo del tutto "naturale" ed automatico, senza alcuna ulteriore complicazione.
Se poi Marco fosse interessato, una futura versione di "Falcon" potrebbe essere riadattata per installare e gestire una configurazione di questo genere in modo da fornire una comoda interfaccia per aggiungere, aggiornare, modificare o eventualmente eliminare le "regole" di udev (definizioni delle interfacce), i corrispondenti set di opzioni di Squeezelite(-R2), ecc...
Pro-memoria:
https://www.linux.com/news/udev-intr...n-linux-system
https://duckduckgo.com/?t=lm&q=udev+rule+start+process
https://unix.stackexchange.com/quest...v-event#110476
https://unix.stackexchange.com/quest...in/28711#28711