Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-08-2008, 09:57   #1
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
Ho creato questo registratore di radio internet, vi piace?

Ciao a tutti,
negli ultimi giorni ho creato questo script che permette di registrare le radio internet (anche quelle che non si trovano su shoutcast e simili tipo le radio rai, la bbc, radio deejey) in mp3.
Mi sono basato in parte su quanto esposto qui:
http://walkingtowel.org/2006/03/03/r...linux-part-ii/
modificandolo in modo da avere una sorta di interfaccia grafica (ho usato kdialog per cui penso sia utile solo per gli utenti kde) che permettesse di selezionare i vari parametri e di iniziare e terminare la registrazione.
Che ne pensate?
Come faccio a pubblicarlo per renderlo disponibile a tutti?
Se vedete lo script ho usato xterm perchè mplayer una volta che si è connesso alla radio si duplica diventando due processi.
Se faccio partire mplayer dentro xterm, uccidendo xterm uccido tutti i processi figli. Se lo avviao senza xterm conosco il pin solo del primo processo mplayer e il secondo rimane vivo.
Per me va anche bene così solo che se l'utente chiude la finestra di xterm non è previsto alcun controllo nel programma.
Insomma mancano ancora alcune cose da fare, ma gradirei un vostro aiuto e vostri pareri.
Grazie,
Xwang

Codice:
#!/bin/bash
# radioRecoder.sh
# v0.3.0 - 20080814
# Xwang <xwang1976@email.it>
# Released under GPL 2.0 and following (can you help me and tell if it is GPL3 compliant?)

# This script acts as a wizard enabling the user to select the URL to listen and eventually rip it after having specified
# the directory and the file name
# The cancel button is used to go to the previous page
# To exit the program press cancel in the URL page and follow the instruction


# TBD
# store inserted URL in external file and use them in a combobox
# check if parameter is passed or not
# modify parameters so that recording can be done without user iteration
# capture Ctrl-C in order to clean all temporary files and kill opened processes before closing
# give some indication on recording time and if possible file dimension
# put confirmation on registration stop
# open the directory where last file has been saved (maybe asking for it) at the end of the recording
# translate messanges
# 



# assign as default stream value the one passed ad first parameters if any (check TBD)
STREAM=$1

TEMPDIR=/tmp
# inizialize variables
LISTENERmode=0  # if 0 listener in separate window with xterm
		# if 1 listener without separate window

EXIT=1
STATE=1
if [ $LISTENERmode -eq 1 ]
then
	PIDlistener2=""
fi
PIDrecorder2=""

while [ $EXIT -eq 1 ]
do
	case $STATE in 
	0)
		kdialog --title "RadioRecorder" --yesno "Do you want to exit the program?"
		EXIT=$?
		if [ $EXIT -eq 1 ]
		then
			STATE=1
		fi
	;;
	1) 
	# ask radio stream URL
		STREAM=`kdialog --title "RadioRecorder" --inputbox "Insert the radio stream url" $1 `
		STREAMBUTTON=$?
		if [ $STREAMBUTTON -eq 1 ]
		then
			STATE=0
		else
			# start mplayer in background to listen to the radio only if the ok button has been selected else exit 
			if [ $LISTENERmode -eq 1 ]
			then
				mplayer -vo null -vc null -cache 512 $STREAM&
			else
				xterm -e mplayer -vo null -vc null -cache 512 $STREAM&
			fi
			
			PIDlistener=$! # listener PID

			if [ $LISTENERmode -eq 1 ]
			then
				while [ -z $PIDlistener2 ]
				do
					#repeat the check till PIDlistener2 is correctly detected 
					PIDlistener2=`ps -ef| awk '$3 == '$PIDlistener' { print $2 }'`
				done
			fi
			STATE=2
		fi
	;;
	2)
	# select action to do
		ACTION=`kdialog --title "RadioRecorder" --menu "Select an action:" 1 "Change URL" 2 "Record stream"`
		ACTIONBUTTON=$?

		if [ $ACTIONBUTTON -eq 1 ]
		then
			ACTION=$ACTIONBUTTON # if cancel is selected go back to url dialog
		fi
		if [ $ACTION -eq 1 ]
		then
			#if Change URL or Cancel has been selected kill listener and go back to URL page 
			#kill listener processes
			if [ $LISTENERmode -eq 1 ]
			then
				kill -9 $PIDlistener2
			fi
			kill -9 $PIDlistener
			# reinitialize PID variables
			PIDlistener=""
			if [ $LISTENERmode -eq 1 ]
			then
				PIDlistener2=""
			fi
			STATE=1
		else
			STATE=3
		fi	
	;;
	3)
	# ask destination directory -- default home
		
		DIR=$HOME
		DIR=`kdialog --title "RadioRecorder - Select destination directory" --getexistingdirectory $DIR` #default destination directory is the user home
		DIRBUTTON=$?
		if [ $DIRBUTTON -eq 1 ]
		then
			#if Cancel has been selected go back to action page
			STATE=2
		else
			STATE=4
		fi
	;;
	4)
	# ask file name at which will be added the date and eventually record stream
		FILENAME="radio"
		FILENAME=`kdialog --title "RadioRecorder - Save as" --inputbox "Insert the file name (date will be automatically added)" $FILENAME`
		FILENAMEBUTTON=$?
		if [ $FILENAMEBUTTON -eq 1 ]
		then
			#if Cancel has been selected go back to action page
			STATE=3
		else
			#capture stream
			DATE=`date +%Y_%m_%d_%H%M%S`
			TEMPFILE=$TEMPDIR/$FILENAME-$DATE
			FILE=$DIR/$FILENAME-$DATE
			mkfifo $TEMPFILE.wav
			lame $TEMPFILE.wav $FILE.mp3>/dev/null&
			PIDconverter=$! #converter PIN
			mplayer -cache 512 -vo null -vc null -ao pcm:fast:file="$TEMPFILE.wav" $STREAM>/dev/null&
			PIDrecorder=$! #recorder PIN
			while [ -z $PIDrecorder2 ]
			do
				#repeat the check till PIDrecorder2 is correctly detected 
				PIDrecorder2=`ps -ef| awk '$3 == '$PIDrecorder' { print $2 }'`
			done			
			kdialog --msgbox "Press OK button to stop recording"
			#stop recording
			#kill converter
			kill -9 $PIDconverter
			#kill recorder processes
			kill -9 $PIDrecorder2
			kill -9 $PIDrecorder
			# reinitialize PID variables
			PIDconverter=""
			PIDrecorder=""
			PIDrecorder2=""
			#removing temporary file
			rm $TEMPFILE.wav
			#go back to action page
			STATE=2
		fi
	;;
	esac
done

kdialog --title "RadioRecorder" --msgbox "Thank you for using radioRecorder"
echo "Bye Bye"
exit
Allegati
File Type: zip radioRecorder.sh.zip (1.9 KB, 0 visite)
__________________
ASUS N752VX Arch AMD64 + KDE

Ultima modifica di xwang : 14-08-2008 alle 12:55. Motivo: 2008-08-14: New script version
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2008, 10:03   #2
masand
Moderatore
 
L'Avatar di masand
 
Iscritto dal: Feb 2003
Città: Anagni/Firenze
Messaggi: 9133
Non mi sembra niente male...

Complimenti!!!!

Non mi esprimo sulla parte "codice" perché non ne sono in grado... Pensi di fare anche un'interfaccia GTK?

P.S. Tralasciando il discorso "pesantezza" hai pensato magari ad usare Java come GUI in modo che sia portabile?

Un saluto a tutti..
masand
masand è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2008, 10:17   #3
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
Quote:
Originariamente inviato da masand Guarda i messaggi
Non mi sembra niente male...

Complimenti!!!!

Non mi esprimo sulla parte "codice" perché non ne sono in grado... Pensi di fare anche un'interfaccia GTK?

P.S. Tralasciando il discorso "pesantezza" hai pensato magari ad usare Java come GUI in modo che sia portabile?

Un saluto a tutti..
masand
Per quanto riguarda java, non penso di usarla perchè non ho tanto tempo da dedicare a questa cosa e per usare java dovrei andarmi a vedere troppe cose. Per le gtk se ci fosse un qualcosa di analogo a kdialog si potrbbe, forse, modificare lo script per essere utilizzato con l'uno o l'altro programma. Il fatto è che uso kde quindi se qualcuno con gnome ha voglia di cimentarsi in questa cosa sono d'accordo.
Per il momento vorrei fare in modo che lo script esca correttamente anche premendo ctrl-c e vorrei vedere se si può evitare di chiamare xterm in modo che non mi debba preoccupare del caso in cui l'utente chiuda le finestre di xterm.
Xwang

PS se qualcuno ha voglia di trasformarlo in un'applicazione java, ovviamente è liberissimo di farlo
__________________
ASUS N752VX Arch AMD64 + KDE
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2008, 12:13   #4
Fil9998
Senior Member
 
L'Avatar di Fil9998
 
Iscritto dal: Sep 2004
Città: Padova
Messaggi: 11757
fiko, non appena ho tempo ci gioco.
__________________
mac user = hai soldi da buttare; linux user = hai tempo da buttare; windows user = hai soldi e tempo da buttare
Fil9998 è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2008, 13:01   #5
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
Qualcuno sa come ottenere la lista dei pid dei sottoprocessi conoscendo il pid del genitore?
Potrei eliminare xterm
Xwang
__________________
ASUS N752VX Arch AMD64 + KDE
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 08-08-2008, 15:10   #6
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
Ho fatto delle modifiche eliminando xterm.
Manca ancora di detectare il ctrl-C e se possibile di prevedere la pausa della registrazione (ma non saprei proprio come fare ... idee?)
Xwang

PS che dite lo pubblico?
KDEdev o direttamente in sourceforge?
__________________
ASUS N752VX Arch AMD64 + KDE

Ultima modifica di xwang : 14-08-2008 alle 13:20. Motivo: Eliminato il codice - L'ultima versione sarà sempre presente nel primo post
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:00   #7
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
Pensavo che sarebbe bello poter memorizzare le URL inserite dal'utente e riproporle in un capo tipo tendina (da cui poter eventualmente inserire anche nuove url).
Come faccio a gestire questi dati? Devo usare un file esterno che devo parsare, giusto? Qualcuno mi può aiutare?
Xwang

PS metto nel primo post la versione attuale
__________________
ASUS N752VX Arch AMD64 + KDE
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:02   #8
Fil9998
Senior Member
 
L'Avatar di Fil9998
 
Iscritto dal: Sep 2004
Città: Padova
Messaggi: 11757
per favore, ogni tanto quando aggiorni lo uppi 'sto tread, mi interessa molto, come utente... non so programmare...

fra qualche giono di ritorno dalle ferie lo proverò,

intanto grazie.
__________________
mac user = hai soldi da buttare; linux user = hai tempo da buttare; windows user = hai soldi e tempo da buttare
Fil9998 è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:07   #9
masand
Moderatore
 
L'Avatar di masand
 
Iscritto dal: Feb 2003
Città: Anagni/Firenze
Messaggi: 9133
Quote:
Originariamente inviato da xwang Guarda i messaggi
Pensavo che sarebbe bello poter memorizzare le URL inserite dal'utente e riproporle in un capo tipo tendina (da cui poter eventualmente inserire anche nuove url).
Come faccio a gestire questi dati? Devo usare un file esterno che devo parsare, giusto? Qualcuno mi può aiutare?
Xwang

PS metto nel primo post la versione attuale
Ciao,
il tuo progetto non è niente male...

Potresti pubblicarlo su www.kde-apps.org, se non lo conosci, è organizzato grosso modo come un forum, dove i thread sono i programmi proposti e ognuno poi posta le sue impressioni e/o eventuali suggerimenti.

Potresti impostare il tuo post mettendo l'elenco delle caratteristiche e una lista delle cose che vorresti implementare... vedrai che troverai sicuramente chi ti potrà aiutare.

L'unico limite, se limite lo vogliamo chiamare, è di usare obbligatoriamente la lingua inglese.

Un saluto a tutti...
masand
masand è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:59   #10
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
Quote:
Originariamente inviato da masand Guarda i messaggi
Ciao,
il tuo progetto non è niente male...

Potresti pubblicarlo su www.kde-apps.org, se non lo conosci, è organizzato grosso modo come un forum, dove i thread sono i programmi proposti e ognuno poi posta le sue impressioni e/o eventuali suggerimenti.

Potresti impostare il tuo post mettendo l'elenco delle caratteristiche e una lista delle cose che vorresti implementare... vedrai che troverai sicuramente chi ti potrà aiutare.

L'unico limite, se limite lo vogliamo chiamare, è di usare obbligatoriamente la lingua inglese.

Un saluto a tutti...
masand
Effettivamente è quello che pensavo di fare.
Tuttavia, poichè ho scoperto che c'è in gnome un programma simile a kdialog, lo vorrei trasformare in uno script indipendente dal window manager utilizzato, o meglio, che capisca se è in esecuzione gnome o kde e si adegui. In quest'ottica, forse è preferibile metterlo in un sito "neutrale" come può essere sourceforge. Sei d'accordo?
Il tutto a ferie finite perchè, a parte lo slancio iniziale, tutte queste aggiunte e abbellimenti, le farò con calme nei ritagli di tempo del dopolavoro.
Xwang
__________________
ASUS N752VX Arch AMD64 + KDE

Ultima modifica di xwang : 14-08-2008 alle 13:21.
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 13:19   #11
masand
Moderatore
 
L'Avatar di masand
 
Iscritto dal: Feb 2003
Città: Anagni/Firenze
Messaggi: 9133
Quote:
Originariamente inviato da xwang Guarda i messaggi
Effettivamente è quello che pensavo di fare.
Tuttavia, poichè ho scoperto che c'è in gnome un programma simile a kdialog, lo vorrei trasformare in uno script indipendente dal window manager utilizzato, o meglio, che capisca se è in esecuzione gnome o kde e si adegui. In quest'ottica, forse è preferibile metterlo in un sito "neutrale" come può essere sourceforge. Sei d'accordo?
Il tutto a ferie finite perchè, a parte lo slancio iniziale, tutte queste aggiunte e abbellimenti, le farò con calme nei ritagli di tempo del dopolavoro.
Xwang
Xwang
Anche... io ti ho proposto quel sito perché ho visto che molti si danno anche gli aiuti e sicuramente potresti trovare persone competenti che ti possono aiutare rispondendo alle tue domande, inoltre molti postano i loro stessi lavori sia su KDE-Apps che su GTK-Apps, ma ovviamente, scegli tu come muoverti.

Hai pensato di postare il tuo lavoro anche nella sezione "Programmazione" di questo forum?

In bocca al lupo per il tuo progetto

Un saluto a tutti...
masand
masand è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 13:26   #12
xwang
Senior Member
 
L'Avatar di xwang
 
Iscritto dal: Oct 2003
Messaggi: 2987
Quote:
Originariamente inviato da masand Guarda i messaggi
... Hai pensato di postare il tuo lavoro anche nella sezione "Programmazione" di questo forum?

In bocca al lupo per il tuo progetto

Un saluto a tutti...
masand
Grazie per i consigli.
Non l'ho postata in programmazione perchè temevo che potesse essere considerata una forma di cross-posting. Inoltre ho pensato che trattandosi di script bash, gli utenti linux fossero il "pubblico" migliore (oltre che i fruitori del programma che di certo non ho intenzione di portare su win).
Xwang
__________________
ASUS N752VX Arch AMD64 + KDE
xwang è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 13:48   #13
masand
Moderatore
 
L'Avatar di masand
 
Iscritto dal: Feb 2003
Città: Anagni/Firenze
Messaggi: 9133
Quote:
Originariamente inviato da xwang Guarda i messaggi
Grazie per i consigli.
Non l'ho postata in programmazione perchè temevo che potesse essere considerata una forma di cross-posting. Inoltre ho pensato che trattandosi di script bash, gli utenti linux fossero il "pubblico" migliore (oltre che i fruitori del programma che di certo non ho intenzione di portare su win).
Xwang
Beh, lo scripting in fin dei conti è sempre una forma di programmazione no?

E comunque non la vedo come una forma di cross posting in realtà, in fin dei cnti qui cerchi pareri prettamente "linuxiani" dall'altra parte cercheresti consigli sul "come" e "in che maniera"... almeno dal mio punto di vista

Un saluto a tutti...
masand
masand è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 14:23   #14
gash
Senior Member
 
L'Avatar di gash
 
Iscritto dal: Jan 2008
Messaggi: 424
Per le gtk credo tu possa usare buc http://buc.intilinux.com/wiki/index....ina_principale
gash è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Windows 11 25H2: Microsoft rilascia le I...
Milano, dal 15 settembre via alle multe ...
IFA 2025: BLUETTI continua a innovare co...
Un 55 pollici 4K con Fire TV a un prezzo...
TSMC avvia la produzione interna di pell...
Come cambia la gamma iPhone con l'arrivo...
Anker lancia nuovi caricabatterie e powe...
IFA 2025: FRITZ! tra rebranding, Wi-Fi 7...
Sono prezzi super: MacBook Pro con chip ...
Huawei non si ferma: è leader del...
AirPods Pro 3 già disponibili su Amazon:...
Battlefield 6: modalità Battle Royale gi...
Microsoft cambia rotta sul lavoro ibrido...
Una power station portatile da 1075Wh e ...
PayPal porta in Italia i pagamenti a rat...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v