Posts Tagged ‘enqueue’

h1

Enqueue in audacious volume 2! anche i file in “system:/media/*”

febbraio 12, 2009

Grazie a TaTo sono riuscito a capire un bug ( chiamarlo bug è una parola grossa ) che affliggeva il primo metodo da me implementato in Kde, il “bug” consisteva :

Se mettevo in coda qualsiasi file che era nell mio hd con un path così:

/home/asd/musica/canzone.mp3

Allora audacious lo encodava ma questo non andava a buon fine se il file era encodato da una partizione montata come un hardisk esterno, una pendrive o qualsiasi altra cosa. dato che kde monta automaticamente tramite HAL il dispositivo, lo associa a un path del genere system:/media/<periferica/ quindi se noi encodavamo un file da quella cartella con quel path, audacious non lo riconosceva e lo “snobbava” infatti se andavamo a dare un mount vedevamo il mount-point d’origine e se accedevamo a quella cartella nonchè il mount-point da li riuscivamo a encodare, quindi era solo un problema di path.

Per ovviare a questa “falla” (stò usando termini catastrofici) ho creato questo scriptino:

#!/bin/bash
stringa=$1
echo $stringa > confr.txt
string="system:/"
confronto=`sed -n 's/media\/*.*//p' confr.txt`
#kdialog --msgbox $stringa
if [ $string == $confronto ];
then
#kdialog --msgbox ok!
echo $stringa > .1.txt #arriva la stringa con system
#kdialog --msgbox $stringa
sed -n 's/system:\/media\/*\///p' .1.txt > .2.txt #tolgo system:/media
file=`cat .2.txt`
#kdialog --msgbox $file #debug
brano=`sed -n 's/system:\/media\/[a-z A-Z 0-9]*//p' .1.txt` #nome canzone
#kdialog --msgbox $brano #debug
disp=`sed -n 's/\/[A-Za-z0-9]*.*//p' .2.txt` #variabile dispositivo
#kdialog --msgbox $disp #debug
mount |grep $disp > .4.txt
media=`cat .4.txt |awk '{ print $3 }'`
#kdialog --msgbox $media #debug
echo $media $brano > .5.txt
path=`sed -n 's/ /\//p' .5.txt`
#kdialog --msgbox $path #debug
audacious -e "$path" #ecco il mio path per audacious
rm .1.txt .2.txt .3.txt .4.txt .5.txt confr.txt
else
audacious -e "$stringa"
fi
#Version 0.2

SCARICATELO DA QUI–> audcoda <–
Copiatelo in /usr/bin/

In questo script non faccio altro che con qualche sed di prendermi tutti i path che mi servono e fixare il tutto e crearmi il path originale da andare a dare ad audacious.
Avevo pensato di farlo subito con un locate, ma alcune distribuzione non l’hanno come gentoo e bisognava scaricarlo,ma  pensandoci bene “SI PUÒ FARE!” viene più veloce e non devo aggiornare il db periodicamente se non sempre quando monto una pendrive e sono sicuro che funziona senza nessuno sbattimento.
Tornando a noi, adesso ci andiamo a creare nella solita cartella

~/.kde3.5/share/apps/konqueror/servicemenus

Vi create  o modificate se lo avete già creato il nostro file coda.desktop

[Desktop Entry]
Icon=cd
ServiceTypes=audio/x-mp3,audio/x-mod,audio/x-oggflac,audio/x-scpls,audio/x-vorbis,audio/x-waw
all/all
Actions=addAud
X-KDE-Priority=TopLevel
X-KDE-Submenu=&Aggiungi a Audacious
[Desktop Action addAud]
Name=Aggiungi in coda
Icon=audacious
Exec=audcoda %U

Come avete notato in grassetto c’è “per chi già l’avevo fatto” la stringhetta da cambiare.
E’ tutto se avete qualche consiglio su come migliorare lo script o su come implementarlo con altri programmi ecc fatemi sapere, per tutti le problematiche sono a vostra disposizione.

subrikk

Annunci