Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#101 Le 20/01/2009, à 20:43

vinc-mai

Re : [ZiK]Lecteur audio en développement

Bonsoir.

Mise à jour du dépôt git. Les nouveautés:
- ajout des bouttons aléatoire et répéter dans le menu Musique,
- édition des webradios existantes (via un clic droit),
- option pour trier par numéro de piste lors de l'ajout d'un répertoire,
- réordonner les répertoires maîtres dans les préférences par drag&drop,
- réordonner les chansons  par drag&drop dans la fenêtre "Éditer la liste de lecture".

Les bouttons aléatoire et répéter sont disponibles maintenant en 2 clics. Est-il nécessaire de les ajouter directement sur l'interface? Est-il nécessaire d'ajouter un boutton pour mélanger la liste de lecture (ce qui permettrait de lire en "aléatoire" tout en visualisant les chansons précédantes/suivantes)?
L'option "trier par piste" est enfin implémentée. Depuis le temps que Draco attend... Elle est cependant à tester.

Dernière modification par vinc-mai (Le 20/01/2009, à 20:46)


ZiK un lecteur audio et son blog.

Hors ligne

#102 Le 20/01/2009, à 21:01

Кຼزດ

Re : [ZiK]Lecteur audio en développement

ok, je teste ça tout de suite .
j'ai rajouté le script dans la page de la doc wink


dou

Hors ligne

#103 Le 21/01/2009, à 14:11

vinc-mai

Re : [ZiK]Lecteur audio en développement

vinc-mai a écrit :

Bonsoir.

Mise à jour du dépôt git. Les nouveautés:
- ajout des bouttons aléatoire et répéter dans le menu Musique,
- édition des webradios existantes (via un clic droit),
- option pour trier par numéro de piste lors de l'ajout d'un répertoire,
- réordonner les répertoires maîtres dans les préférences par drag&drop,
- réordonner les chansons  par drag&drop dans la fenêtre "Éditer la liste de lecture".

Les bouttons aléatoire et répéter sont disponibles maintenant en 2 clics. Est-il nécessaire de les ajouter directement sur l'interface? Est-il nécessaire d'ajouter un boutton pour mélanger la liste de lecture (ce qui permettrait de lire en "aléatoire" tout en visualisant les chansons précédantes/suivantes)?
L'option "trier par piste" est enfin implémentée. Depuis le temps que Draco attend... Elle est cependant à tester.

J'ai uploader un nouvelle version (la 0.8.1) afin que les personnes n'utilsant pas git puissent disposer de ces fonctions.

J'ai ajouter un nouveau module à la version git qui affiche brièvement un "pop-up" avec le titre de la chanson. Le code du module n'est pas très avancé pour l'instant. La manière de programmer un module n'est toujours pas fixée.  N'hésiter pas à faire pas de vos observations.

Ce module pourrait servir à afficher les pochettes. Cependant, l'affichage lors du survol de l'icône ou dans la fenêtre principale n'est pour l'instant pas abandonné.


ZiK un lecteur audio et son blog.

Hors ligne

#104 Le 21/01/2009, à 14:15

Кຼزດ

Re : [ZiK]Lecteur audio en développement

c'est pas mal la notification big_smile
est-ce qu'il y aura moyen de changer la location du truc , ainsi que sa couleur ? smile


dou

Hors ligne

#105 Le 21/01/2009, à 14:26

vinc-mai

Re : [ZiK]Lecteur audio en développement

Merci.
Les couleurs (pas top le noir sur rose), la position et le temps d'affichage seront prochainement paramétrables. Pour la position je pensais à donner le choix entre nord-est, Nord-ouest, sud-est ou sud-ouest.


ZiK un lecteur audio et son blog.

Hors ligne

#106 Le 21/01/2009, à 14:29

Кຼزດ

Re : [ZiK]Lecteur audio en développement

oui smile , je suis d'accord , mais je pense que spécifier ça comme "coin en haut/bas à gauche/droite" pourrait être plus compréhensible tongue
edit : par ailleurs chez moi la notification ne s'affiche que pendant 0.5 secondes

Dernière modification par mathieuI (Le 21/01/2009, à 14:42)


dou

Hors ligne

#107 Le 21/01/2009, à 20:04

Mouine89

Re : [ZiK]Lecteur audio en développement

Hier à 20:43 vinc-mai a écrit :

Mise à jour du dépôt git. Les nouveautés [...]

Bonsoir,
Il y a vraiment du nouveau, et du bon !
Ce truc commence à devenir énorme.
Grâce au script de l e . n o x (déjà sur la page de documentation grâce à MathieuI !), je me paye le luxe de la 0.8.1+git sans me poser de questions* et je viens de me jeter sur les dernières nouveautés.
C'est cool de pouvoir éditer les radios !
La généralisation du drag & drop est un vrai plus.
L'affichage dans la zone de notification aussi, d'autant plus que tu me dis :

vinc-mai a écrit :

Cependant, l'affichage lors du survol de l'icône ou dans la fenêtre principale n'est pour l'instant pas abandonné.

(Chic, parce que j'y tiens, à cette caresse de la souris sur l'icone de ZiK big_smile)

MathieuI a écrit :

la notification ne s'affiche que pendant 0.5 secondes

Oui, chez moi aussi.

Merci à tous, et surtout à vinc-mai !

(*) @ l e . n o x : J'ai d'abord essayé la procédure "Mise à jour", mais après celle-ci l'entrée du menu Applications/Son et vidéo/ZiK ne répondait plus. J'ai donc désinstallé et réinstallé... Et en se fermant, le .sh ferme aussi le terminal, donc pas moyen de revenir sur la succession des opérations pour trouver le hic (enfin, si c'est possible, je n'ai pas trouvé).

Hors ligne

#108 Le 21/01/2009, à 20:18

Mouine89

Re : [ZiK]Lecteur audio en développement

Rebonsoir,

@ vinc-mai : pas de solution en vue pour le problème de l'esperluette dans les tags ?

Playing Fujiya & Miyagi - Pickpocket.
/usr/local/share/ZiK/gui/gui.rb: line 635
   Gtk-WARNING **:Failed to set text from markup due to error parsing markup:
Erreur à la ligne 1 : Le caractère «   » n'est pas valide au début d'un nom d'entité ;
le caractère & commence une entité ;si l'esperluette n'est pas supposée être
une entité, échappez-le comme &

(Ce n'est pas fondamental, c'est juste pour savoir wink)

Hors ligne

#109 Le 21/01/2009, à 20:22

vinc-mai

Re : [ZiK]Lecteur audio en développement

Remercions le.nox pour son script.

Mouine89 a écrit :
MathieuI a écrit :

la notification ne s'affiche que pendant 0.5 secondes

Oui, chez moi aussi.

Je pensais avoir régler la notification pour environ 3 secondes. L'affichage doit être une fonction asynchrome! Je vais essayer de régler ceci.


edit:

@ vinc-mai : pas de solution en vue pour le problème de l'esperluette dans les tags ?

Je viens de comprendre comment régler ce bug en relisant ton post!

Dernière modification par vinc-mai (Le 21/01/2009, à 20:31)


ZiK un lecteur audio et son blog.

Hors ligne

#110 Le 21/01/2009, à 21:50

Кຼزດ

Re : [ZiK]Lecteur audio en développement

j'en profite pour mettre ma version du script de l e . n o x ; c'est la même avec zenity, et probablement quelques bugs en plus (pour ceux qui préfèrent les clics tongue ) :

##################################
#
#
#
####################################################################
# wget http://ordiboy.free.fr/open/linux/Setup_ZikByGit_0.4.sh    ##
# chmod +x ./Setup_ZikByGit_0.4.sh                                ##
# ./Setup_ZikByGit_0.4.sh                                         ##
####################################################################
#
#
#http://forum.ubuntu-fr.org/viewtopic.php?id=154862&p=1

DEPENDANCES_Zik="git-core libmusicbrainz-ruby1.8 libtagc0-ruby libgst-ruby libgtk2-ruby libgettext-ruby*"
DEPENDANCES_Os="build-essential gstreamer0.10-plugins-base gstreamer0.10-plugins-ugly"
DEPOT=$HOME/.ZiK

reponse=`zenity --list   --radiolist --title="Choisissez l'action à réaliser"   --separator=" "   --column="" --column="" --column="Action"   \
	--hide-column=2 \
	FALSE  1  "Installer Zik" \
	FALSE  2  "Mettre à jour Zik"  \
	FALSE  3  "Désinstaller Zik :'o" `
#Install
case $reponse in
[iI]* | 1)

	zenity --info --text="Suppression des anciennes versions de Zik"
	gksudo true && apt-get remove zik -y
	cd $DEPOT/zik
	sudo make uninstall

	zenity --info --text="Installation des dépendances nécessaires"
	echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
	echo $DEPENDANCES_Zik $DEPENDANCES_Os
	echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"

	sudo apt-get install $DEPENDANCES_Zik $DEPENDANCES_Os -y

	zenity --info --text="Téléchargement et Installation de ZiK grâce au dépôt zik"
	cd $DEPOT

	   if [ -d $DEPOT/zik ]
	    then
	       cd $DEPOT/zik
	    else
		cd $DEPOT && git clone git://rubyforge.org/zik.git
	    fi

	cd $DEPOT/zik
	./configure
	make
	sudo make install

	echo "\nCréation du raccourci dans le Menu Principal"
	#Créer le lanceur
	echo "
	[Desktop Entry]
	Encoding=UTF-8
	Version=1.0
	Type=Application
	Terminal=false
	Icon[fr_FR]=/usr/local/share/ZiK/pix/ZiK.svg
	Categories=GTK;AudioVideo;Audio;
	Exec=/usr/local/bin/ZiK.rb
	Name[fr_FR]=ZiK
	Comment[fr_FR]=Lecteur audio
	Name=ZiK
	Comment=Lecteur Audio
	Icon=/usr/local/share/ZiK/pix/ZiK.svg" | sudo tee "/usr/share/applications/ZiK.desktop"
	clear
	zenity --info --text="Installation terminée"
	sleep 3

	#lance la nouvelle version de Zik
	ZiK.rb

#Mise à jour de la Version
;;
[mM]* | 2)
	   if [ -d $DEPOT/zik ]
	    then
	       	cd $DEPOT/zik
		gksudo true && sudo make uninstall
		make distclean
		git pull
		./configure && make
		sudo make install
		clear
		zenity --info --text="Mise à jour terminée"
		sleep 3
	    else
		cd $DEPOT && git clone git://rubyforge.org/zik.git
		cd $DEPOT/zik
		./configure
		make
		gksudo true && make install
		clear
		echo " -------------------------"
		echo " -------------------------"
		echo "  Installation dépôt zik  "
		echo " -------------------------"
		echo " -------------------------"
		sleep 3
	     fi

	#lance la nouvelle version de Zik
	ZiK.rb

#Desinstaller
;;
[dD]* | 3)

	cd $DEPOT/zik
	gksudo true && sudo make uninstall
	sudo apt-get remove $DEPENDANCES_Zik -y 
	rm -Rf $DEPOT/* 
	sudo rm /usr/share/applications/ZiK.desktop

	clear
	zenity --info --text="Désintallation effectuée"
	sleep 3

#Non
;;
[aA]* | 4)
	clear
	echo "\nInstallation annulée, au revoir ;O)  ..."
	sleep 3
	clear

#Essayer à nouveau
;;
*)
	clear
esac
#exit 0

edit: j'en profite également pour faire un feedback tongue ; problème avec les wma :

 
Cannot read (blabla).wma's tag.
/usr/local/share/ZiK/gui/gui.rb:608:in `[]': no implicit conversion from nil to integer
	 from /usr/local/share/ZiK/gui/gui.rb:608:in `play'
	 from /usr/local/share/ZiK/gui/gui.rb:445:in `initialize'
	 from /usr/local/bin/ZiK.rb:222:in `call'
	 from /usr/local/bin/ZiK.rb:222:in `main'
	 from /usr/local/bin/ZiK.rb:222
Player stopped.
Player stopped.
Player stopped.

et j'ai à peu près les mêmes erreurs avec le drag'n drop ...
hop , problème auto-résolu dans la minute , il y avait quelques paquets mal réinstallés tongue

Dernière modification par mathieuI (Le 21/01/2009, à 22:06)


dou

Hors ligne

#111 Le 21/01/2009, à 22:02

l e . n o x

Re : [ZiK]Lecteur audio en développement

Bonsoir @ tous les FanaZik wink

@Vinc-mai :
a) Retour sur le Bug KDE

@ordikubuntu:~$ ./Ziktest.rb
#<Gst::ElementCdioCddaSrc:0xb7ce5128 ptr=0x8e1a0d0>
nil
#<Gst::ElementVolume:0xb7ce2004 ptr=0x8e22000>
#<Gst::Pipeline:0xb7ce1fb4 ptr=0x8e25000>
"bus watch:"
2
"add el:"
nil
nil
./Ziktest.rb:12:in `add': Gst::Element expected (TypeError)
        from ./Ziktest.rb:12

b) Durée de la notification : J'ai noté que les 3-4 premiers click apres un demarrage de ZiK sur un fichier musical la notification etait tres proche des 5 sec. C'est apres que cela devient aléatoire 0,5 1 2 sec ou rien par moment.

c) heee, ben en "c)" rien seulement, chapeau bas pour tout ce boulot, T'es un chef Mr Vinc-mai cool

@Mouine89 : Script - Problème avec la "Mise à jour" essaye de lancer le script dans un terminal directement avec :

./Setup_ZikByGit_0.4.sh

Assures toi d'être dans le dossier ou se trouve le script avant de le lancer.

@draco31.fr & MathieuI : Votre doc c'est pas de la gnognote wink

Dernière modification par l e . n o x (Le 21/01/2009, à 22:34)


Zik Fan : " Vous seul savez mieux que quiconque comment organiser votre bibliothèque musicale ! "

Linux, y a moins bien.
Mais c'est plus cher. ;O)

Hors ligne

#112 Le 21/01/2009, à 22:09

Кຼزດ

Re : [ZiK]Lecteur audio en développement

sinon l e . n o x , je verrai bien une option qui permet de préserver sa configuration de Zik ( si ça ne crée pas d'incompatibilité bien sur tongue )
edit : et j'ai toujours le problème "Cannot read (...).wma's tag" mais ça plante plus alors c'est pas trop grave big_smile

Dernière modification par mathieuI (Le 21/01/2009, à 22:12)


dou

Hors ligne

#113 Le 21/01/2009, à 22:32

Mouine89

Re : [ZiK]Lecteur audio en développement

l e . n o x a écrit :

b) Durée de la notification : J'ai noté que les 3-4 premiers click apres un demarrage de ZiK sur un fichier musical la notification etait tres proche des 5 sec. C'est apres que cela devient aléatoire 0,5 1 2 sec ou rien par moment.

Je confirme, c'est exactement ça.

l e . n o x a écrit :

T'es un chef Mr Vinc-mai cool

Je confirme également wink

l e . n o x a écrit :

@Mouine89 : Script - Problème avec la "Mise à jour" essaye de lancer le script dans un terminal

Merci d'avance, je tenterai... lorsqu'il y aura une nouvelle mise à jour à faire (ça devrait pas traîner, vu l'effervescence)

l e . n o x a écrit :

@MathieuI : Ta doc, c'est pas de la gnognote wink

Je confirme aussi, sans oublier draco31.fr, à l'origine de la doc.

Hors ligne

#114 Le 21/01/2009, à 22:37

vinc-mai

Re : [ZiK]Lecteur audio en développement

Le bug KDE:
Je vois d'où le dernier problème (en date) vient. Je vais chercher la solution.

La version ubuntu et la version officielle de taglib ne permet pas de lire les tags des fichiers wma sad. Un patch est disponible sur le net mais je n'ai pas essayé de l'installer car j'utilse pas ce format.


ZiK un lecteur audio et son blog.

Hors ligne

#115 Le 21/01/2009, à 22:41

Кຼزດ

Re : [ZiK]Lecteur audio en développement

je pensais aussi les convertir en ogg cool , c'est pas trop grave tongue
je télécharge et compile, pour voir si ça marche hmm (pour les gens soucieux de leurs wma tongue )
edit: ajout d'un paragraphe taglib dansla doc, mais j'ai l'impression que c'est un peu de trop, non ?

Dernière modification par mathieuI (Le 21/01/2009, à 22:53)


dou

Hors ligne

#116 Le 21/01/2009, à 23:12

vinc-mai

Re : [ZiK]Lecteur audio en développement

ZiK admet plusieurs paramètres lorsqu'il est lancé en ligne de commande.
La liste des options n'est pas disponible dans un manuel ou via –help
Les paramètres ne sont décrit pour l'instant que sur le forum de Rubyforge

Je viens de m'apercevoir d'un bug!
ZiK.rb -h marche correctment alors de ZiK.rb --help affiche l'aide de gst-ruby (??).


ZiK un lecteur audio et son blog.

Hors ligne

#117 Le 21/01/2009, à 23:14

l e . n o x

Re : [ZiK]Lecteur audio en développement

Rebonsoir, big_smile

@vinc-mai : Penses tu que conserver les fichiers de config de Zik d'une version sur l'autre peu créer des problèmes de compatibilité dans le futur ?

@mathieuI : Cool ta modif Zenity wink
Je me suis permis de commenter dans le code les "clear" pour permettre de suivre les traces en mode terminal si besoin.

Voici donc la version avec Zenity : "ZikByGitZenity.sh"

wget http://ordiboy.free.fr/open/Linux/ZikByGitZenity.sh
chmod +x ./ZikByGitZenity.sh
./ZikByGitZenity.sh

et ici la version console "Setup_ZikByGit_0.4.sh" :

wget http://ordiboy.free.fr/open/Linux/Setup_ZikByGit_0.4.sh
chmod +x ./Setup_ZikByGit_0.4.sh
./Setup_ZikByGit_0.4.sh

Voici en lecture directe le code de "ZikByGitZenity.sh"

##################################
##     Auteurs : La ZikTeam ;o) ##
##     Version: 0.1     	##
##     Licence: GNU		##
##################################
#
# Vinc-mai
# mathieuI
# Mouine89
# draco31.fr
# le.nox
#
####################################################################
# wget http://ordiboy.free.fr/open/Linux/ZikByGitZenity.sh        ##
# chmod +x ./ZikByGitZenity.sh                                    ##
# ./ZikByGitZenity.sh                                             ##
####################################################################
#
# Site Web : http://zik.rubyforge.org/index.html
# Forum : http://forum.ubuntu-fr.org/viewtopic.php?id=154862&p=1

DEPENDANCES_Zik="git-core libmusicbrainz-ruby1.8 libtagc0-ruby libgst-ruby libgtk2-ruby libgettext-ruby*"
DEPENDANCES_Os="build-essential gstreamer0.10-plugins-base gstreamer0.10-plugins-ugly"
DEPOT=$HOME/.ZiK

reponse=`zenity --list   --radiolist --title="Choisissez l'action à réaliser"   --separator=" "   --column="" --column="" --column="Action"   \
    --hide-column=2 \
    FALSE  1  "Installer Zik" \
    FALSE  2  "Mettre à jour Zik"  \
    FALSE  3  "Désinstaller Zik" `
#Install
case $reponse in
[iI]* | 1)

    zenity --info --text="Suppression des anciennes versions de Zik"
    gksudo true && apt-get remove zik -y
    cd $DEPOT/zik
    sudo make uninstall

    zenity --info --text="Installation des dépendances nécessaires"
    echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
    echo $DEPENDANCES_Zik $DEPENDANCES_Os
    echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"

    sudo apt-get install $DEPENDANCES_Zik $DEPENDANCES_Os -y

    zenity --info --text="Téléchargement et Installation de ZiK grâce au dépôt zik"
    cd $DEPOT

       if [ -d $DEPOT/zik ]
        then
           cd $DEPOT/zik
        else
        cd $DEPOT && git clone git://rubyforge.org/zik.git
        fi

    cd $DEPOT/zik
    ./configure
    make
    sudo make install

    echo "\nCréation du raccourci dans le Menu Principal"
    #Créer le lanceur
    echo "
    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Type=Application
    Terminal=false
    Icon[fr_FR]=/usr/local/share/ZiK/pix/ZiK.svg
    Categories=GTK;AudioVideo;Audio;
    Exec=/usr/local/bin/ZiK.rb
    Name[fr_FR]=ZiK
    Comment[fr_FR]=Lecteur audio
    Name=ZiK
    Comment=Lecteur Audio
    Icon=/usr/local/share/ZiK/pix/ZiK.svg" | sudo tee "/usr/share/applications/ZiK.desktop"
    #clear
    zenity --info --text="Installation terminée"
    sleep 3

    #lance la nouvelle version de Zik
    ZiK.rb

#Mise à jour de la Version
;;
[mM]* | 2)
       if [ -d $DEPOT/zik ]
        then
               cd $DEPOT/zik
        gksudo true && sudo make uninstall
        make distclean
        git pull
        ./configure && make
        sudo make install
        #clear
        zenity --info --text="Mise à jour terminée"
        sleep 3
        else
        cd $DEPOT && git clone git://rubyforge.org/zik.git
        cd $DEPOT/zik
        ./configure
        make
        gksudo true && make install
        #clear
        echo " -------------------------"
        echo " -------------------------"
        echo "  Installation dépôt zik  "
        echo " -------------------------"
        echo " -------------------------"
        sleep 3
         fi

    #lance la nouvelle version de Zik
    ZiK.rb

#Desinstaller
;;
[dD]* | 3)

    cd $DEPOT/zik
    gksudo true && sudo make uninstall
    sudo apt-get remove $DEPENDANCES_Zik -y 
    rm -Rf $DEPOT/* 
    sudo rm /usr/share/applications/ZiK.desktop

    #clear
    zenity --info --text="Désintallation effectuée"
    sleep 3

#Non
;;
[aA]* | 4)
    #clear
    echo "\nInstallation annulée, au revoir ;O)  ..."
    sleep 3
    clear

#Essayer à nouveau
;;
*)
    clear
esac
#exit 0

Demande Aide : Si quelqu'un sait comment contrôler si le dépôt Git est à jour, nous serions preneur du bout de code smile

Dernière modification par l e . n o x (Le 23/01/2009, à 02:00)


Zik Fan : " Vous seul savez mieux que quiconque comment organiser votre bibliothèque musicale ! "

Linux, y a moins bien.
Mais c'est plus cher. ;O)

Hors ligne

#118 Le 21/01/2009, à 23:19

draco31.fr

Re : [ZiK]Lecteur audio en développement

mathieuI a écrit :

edit: ajout d'un paragraphe taglib dansla doc, mais j'ai l'impression que c'est un peu de trop, non ?

Merci pour ta contribution à la doc !
Je pense que ce paragraphe sur taglib a son utilité ... mais pas forcément placé ici !
Je verrai plus une section en fin de page avec les "problèmes rencontrés" (à voir pour le titre de la section).
C'est dans ce genre de section que je mettrai ton paragraphe sur taglib ...
En effet, j'ai peur que les utilisateurs de ZiK, en lisant la doc de haut en bas, commence dès le départ par installer taglib 1.5
Or cela n'est pas nécessaire pour l'installation/utilisation de ZiK. De plus, il est peu recommandé de "pousser" à l'installation de logiciel depuis les sources dans les pages de la doc Ubuntu (qui se veut accessible à tous).
Voilà pour mon point de vue.

Ensuite pour la partie du script de  l e . n o x
Je trouve l'explication très bien, mais il me semble important d'insister sur le fait que cela installe la version GIT.
Cette version pourrait être instable ou non fonctionnelle selon les mise-à-jour/évolution ...
Je verrai donc bien une note entre la section "installation depuis le paquet" et la section "installation depuis le script", pour avertir l'utilisateur des "dangers" de prendre la version GIT, même si cette version apporte son lot de nouveauté.

@ vinc-mai

Merci pour les paramètres aléatoire et répétition : y a du mieux.
Je ne suis pas friand du mélange de playliste ... mais je ne serai pas obligé de l'utiliser non plus !

Le projet est très actif (merci encore vincent !) et je suis content d'avoir déterré ce topic lolcool

PS : Je viens enfin de comprendre comment on se place en mode "radio" ou "CD" !!!

Dernière modification par draco31.fr (Le 21/01/2009, à 23:20)

Hors ligne

#119 Le 21/01/2009, à 23:42

Кຼزດ

Re : [ZiK]Lecteur audio en développement

voilà, doc mise à jour wink


dou

Hors ligne

#120 Le 21/01/2009, à 23:43

vinc-mai

Re : [ZiK]Lecteur audio en développement

l e . n o x a écrit :

@vinc-mai : Penses tu que conserver les fichiers de config de Zik d'une version sur l'autre peu créer des problèmes de compatibilité dans le futur ?

J'essaye au maximum de garder une compatibilité de fichiers. Depuis le début, seul une version à modifier le format utilisé. Je pense que je vais continuer avec ce format même si il ne respecte pas le format rc. Cependant, ZiK est toujours dans un stade de développement...
Pour la version 1.0, j'écrirai peut-être un script pour transformer les anciennes configuration au formtat rc. Elle supporterait donc le format actuel et le foramt rc. Puis un abandon du format actuel dans la version suivante (2.0(?)).

draco31.fr a écrit :

@ vinc-mai

Merci pour les paramètres aléatoire et répétition : y a du mieux.
Je ne suis pas friand du mélange de playliste ... mais je ne serai pas obligé de l'utiliser non plus !

Le projet est très actif (merci encore vincent !) et je suis content d'avoir déterré ce topic lolcool

PS : Je viens enfin de comprendre comment on se place en mode "radio" ou "CD" !!!

Mdr! C'est pas trop tôt!!
Plus sérieusement, il faut peut-être que j'explique mieux ceci dans la documentation!
Draco, as-tu essayer l'option "sort by track" (onglet liste de lecture des préférences). Celà fonctionne-t-il comme tu l'entendais lorsqu'un dossier est peuplé de piste dont le numéro est renseigné dans les tags?Qules inconvénients remarques-tu lorsque les numéros ne sont pas renseignés?

Merci à vous tous pour ces tests.


ZiK un lecteur audio et son blog.

Hors ligne

#121 Le 21/01/2009, à 23:47

Кຼزດ

Re : [ZiK]Lecteur audio en développement

pour la compatibilité, il n'y a que des entrées dans le Zikrc qui sont ajoutées ou changent, non ?


dou

Hors ligne

#122 Le 21/01/2009, à 23:57

vinc-mai

Re : [ZiK]Lecteur audio en développement

En ce moment pas de grand changement dans ZiKrc. Une entrée est parfois ajoutée (fichier reste compatible). Cependant le fichier, bein que humainement lisible (texte)), est un vrai foutoir. L'ordonner et le commenter ne devrait pas modifier la compatibilité.

Le format rc est de la forme

[section1]
entrée1=valeur1
entrée2=valeur2
[section2]
...

alors que ZiK est de la forme

entrée1
valeur1
entrée2
valeur2
...

.
Le code pour écrire/lire ZiKrc est 10 fois plus compact. Mais faudrait que je modifie çà avant la sortie de la 1.0.0.

Dernière modification par vinc-mai (Le 21/01/2009, à 23:58)


ZiK un lecteur audio et son blog.

Hors ligne

#123 Le 22/01/2009, à 00:42

l e . n o x

Re : [ZiK]Lecteur audio en développement

Bonsoir,

En cherchent comment importer automatiquement toute une liste de Radio, style Exail avec les shoutcast.
Voici ce qui m'ai arrivé neutral

x@ordiportable:~$ ZiK.rb 
/home/x/.ZiK/ZiKrc read.
Add /home/x/.ZiK/ZiK.m3u to playlist.
/home/x/.ZiK/radio read.
Refreshing tree view...done.
[Notify]: module loaded.
[Trayicon]: module loaded.
Add /home/x/Bureau/concordemodial-media.m3u to playlist.
/usr/local/share/ZiK/playlist/song.rb:30:in `initialize': /home/x/Bureau/http://concordemondial.ifrance.com/CDM.m3u not found.
	 from /usr/local/share/ZiK/playlist/common.rb:72:in `new'
	 from /usr/local/share/ZiK/playlist/common.rb:72:in `add_file'
	 from /usr/local/share/ZiK/playlist/common.rb:122:in `add_m3u'
	 from /usr/local/share/ZiK/playlist/common.rb:53:in `add'
	 from /usr/local/share/ZiK/gui/gui.rb:897:in `list_add_uris'
	 from /usr/local/share/ZiK/gui/gui.rb:897:in `each'
	 from /usr/local/share/ZiK/gui/gui.rb:897:in `list_add_uris'
	 from /usr/local/share/ZiK/gui/gui.rb:289:in `initialize'
	 from /usr/local/bin/ZiK.rb:222:in `call'
	 from /usr/local/bin/ZiK.rb:222:in `main'
	 from /usr/local/bin/ZiK.rb:222
Player stopped.
Player stopped.
Player stopped.

un autre petit crash :

ordiportable:~$ ZiK.rb 
/home/x/.ZiK/ZiKrc read.
Add /home/x/.ZiK/ZiK.m3u to playlist.
/home/x/.ZiK/radio read.
Refreshing tree view...done.
[Notify]: module loaded.
[Trayicon]: module loaded.
Could not read packet header: Succès
Playing mms://live.france24.com/france24_en.wsx    .
Gst error
Player stopped.
/usr/local/share/ZiK/player/radioplayer.rb:82: [BUG] Segmentation fault
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
Abandon

Encore et toujours du boulot pour le papa de Zik (desolé big_smile )

Dernière modification par l e . n o x (Le 22/01/2009, à 01:34)


Zik Fan : " Vous seul savez mieux que quiconque comment organiser votre bibliothèque musicale ! "

Linux, y a moins bien.
Mais c'est plus cher. ;O)

Hors ligne

#124 Le 22/01/2009, à 02:08

l e . n o x

Re : [ZiK]Lecteur audio en développement

Hello,

A force de googler depuis quelques heures, je pense que la prochaine grosse étape pour ZiK sera les plugins.

Je m'explique, le lecteur parfais n'existe pas et n'existera jamais.

Cependant les plugins permettent à chacun de se faire avec très peu de compétence techniques SON propre player parfait.

Pourquoi ne pas donner à ZiK la capacité d'intégrer des plugins développés pour d'autres players comme Exaile ou Listen.

Je pense que cela donnera un énorme coup de pub à Zik, et le rendra très attrayant pour le plus grand nombre.

Zik le lecteur "Simple", "Ergonomique de base" et en plus tres complet car accepte tous les plugins et greffons de Exaile et Listen.

il lui faudrait un module de conversion de plugin pour le connecter au Zik actuel.

Voici un plugin en Python qui permet de récupérer la liste des Shoutcasts en auto :
Ecrit par Adam Olsen <arolsen@gmail.com>

#!/usr/bin/env python
# Copyright (C) 2006 Adam Olsen <arolsen@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

from gettext import gettext as _
import xl.common, urllib, os, re, gobject, xl.panels, gtk
from xl import xlmisc, media, common
from xl.panels import radio
from xl.gui import playlist as trackslist
import xl.plugins as plugins
import xl.path

PLUGIN_ID = 'Shoutcast Radio'
PLUGIN_NAME = _("Shoutcast Radio")
PLUGIN_AUTHORS = ['Adam Olsen <arolsen@gmail.com>']
PLUGIN_VERSION = '0.4.6'
PLUGIN_DESCRIPTION = _(r"""Allows you to browse the Shoutcast Streaming Radio
network""")
PLUGIN_ENABLED = False
PLUGIN_ICON = None

PLUGIN = None

PLS = re.compile("<a href=\"(/sbin/shoutcast-playlist\.pls\?rn=\d+&file="
    "filename\.pls)\">.*?<a.*?href=\"[^\"]*\">([^<]*)</a>.*?Now Playing:</font>"
    "([^<]*)</font>.*?size=\"2\" color=\"\#FFFFFF\">(\d+/\d+)</font>.*?"
    "size=\"2\" color=\"#FFFFFF\">(\d+)</font>")

NEXT = re.compile("startat=(\d+)\">\[ Next")

def parse_genre(genre, stations, url=None, func=None, s_term='sgenre'):
    """
        Parses a genre for all streams
    """
    if url == None:
        url = "http://www.shoutcast.com/directory/" \
            "index.phtml?%s=%s&numresult=500" % (s_term, 
            urllib.quote_plus(str(genre)))
    h = urllib.urlopen(url)
    data = h.read().replace("\n", " ")
    h.close()
    xlmisc.log('read url %s' % url)

    tup = re.findall(PLS, data)
    for station in tup:
        new = []
        check = True
        # make sure the track information is unicode worthy (I have found that
        # not all are)
        for a in station:
            try:
                new.append(unicode(a))
            except:
                check = False

        if not check: continue
        station = new
        s = dict()
        s['loc'] = "http://www.shoutcast.com%s" % station[0]
        s['album'] = station[1]
        s['album'] = station[1]
        s['title'] = station[2]
        s['bitrate'] = station[4]

        s['artist'] = s['loc']

        stations.append(s)
        if func:
            gobject.idle_add(func, s)

    if len(stations) >= 100:
        return
    m = NEXT.search(data)
    if m != None:
        # check the next page
        parse_genre(genre, stations,
            "http://www.shoutcast.com/directory/index.phtml" \
            "?startat=%s&%s=%s&numresult=500" % (m.group(1), s_term, genre), func)

class ShoutcastDriver(radio.RadioDriver):
    """
        Shoutcast Streaming Radio Driver
    """
    def __init__(self, panel):
        self.model = panel.model
        self.folder_icon = panel.folder
        self.note_icon = panel.track
        self.tree = panel.tree
        self.panel = panel
        self.add = []
        self.count = 0

    def load_cache(self, cache_file):
        return open(cache_file).readlines()

    def save_cache(self, cache_file, lines):
        h = open(cache_file, 'w')
        for line in lines:
            h.write("%s\n" % line)

        h.close()

    @xl.common.threaded
    def load_streams(self, node, load_node, use_cache=True):
        """
            Loads the shoutcast streams
        """
        cache_file = xl.path.get_cache(PLUGIN_ID + '_radio_plugin.cache')
        if use_cache and os.path.isfile(cache_file):
            lines = self.load_cache(cache_file)
        else:
            reg = re.compile(r'<OPTION VALUE="TopTen">-=\[Top 25 Streams\]=-(.*?)</SELECT>', re.DOTALL)

            data = urllib.urlopen('http://www.shoutcast.com').read()

            m = reg.search(data)
            lines = m.group(1).split('\n')
            self.save_cache(cache_file, lines)

        gobject.idle_add(self.show_streams, lines, node, load_node)

    def get_menu(self, item, menu):
        menu.append(_('Search'), self.on_search, 'gtk-find')
        return menu

    def show_streams(self, lines, node, load_node):
        """
            Actually displays the stream information
        """

        self.model.remove(load_node)
        self.last_node = None
        for line in lines:
            m = re.search(r'<OPTION VALUE="(.*?)">( - )?', line)
            if m:
                genre = m.group(1)
                subgenre_prefix = m.group(2)
                if not subgenre_prefix: 
                    self.add_function(node, genre)
                else:
                    self.add_function(self.last_node, genre,
                        True)

        self.tree.expand_row(self.model.get_path(node), False)

    def load_genre(self, genre, rel=False):
        """
            Loads the genre specified
        """
        if rel or not APP.tracks.load(genre, PLUGIN_ID):
            self.fetch_genre(genre)

    def on_search(self, *e):
        dialog = common.MultiTextEntryDialog(self.panel.exaile.window,
            _("Search Stations"))
        dialog.add_field(_("Search:"))
        result = dialog.run()
        dialog.hide()
        if result == gtk.RESPONSE_OK:
            values = dialog.get_values()
            self.genre = None
            tracks = trackslist.TracksListCtrl(self.panel.exaile)
            self.panel.exaile.playlists_nb.append_page(tracks,
                xlmisc.NotebookTab(self.panel.exaile, values[0],
                    tracks))
            self.panel.exaile.playlists_nb.set_current_page(
                self.panel.exaile.playlists_nb.get_n_pages() - 1)
            self.panel.exaile.tracks = tracks
            self.tracks = tracks
            self.do_search(values[0]) 

    @xl.common.threaded
    def do_search(self, value):
        stations = []
        parse_genre(value, stations, None, self.update, 's')
        gobject.idle_add(self.update, None)

        xlmisc.log("%d stations were found."  % len(stations))

    @xl.common.threaded
    def fetch_genre(self, genre):
        """
            Fetches the specified genre from shoutcast
        """
        self.genre = genre
        print "genre = ", str(genre)
        stations = []
        parse_genre(self.genre, stations, None, self.update)
        gobject.idle_add(self.update, None)

        xlmisc.log("%d stations were found." % len(stations))

    def update(self, track):
        """
            Updates the RadioTracksList with found tracks
        """
        if not track:
            if len(self.add):
                songs = self.tracks.songs
                for track in self.add:
                    if not track['loc'] in songs.paths:
                        tr = media.Track()
                        tr.set_info(**track)
                        tr.type = 'stream'
                        songs.append(tr)
                self.tracks.set_songs(songs)
            self.tracks.exaile.status.set_first(None)
            if self.genre:
                self.tracks.save(self.genre, PLUGIN_ID)
            self.tracks.playlist_songs = self.tracks.songs
        elif self.count <= 60:
            if not track['loc'] in self.tracks.songs.paths:
                tr = media.Track()
                tr.set_info(**track)

                tr.type = 'stream'
                self.tracks.append_song(tr)
        else:
            self.add.append(track)

        self.count += 1

    def add_function(self, node, genre, note_icon=False):
        icon = self.folder_icon
        item = urllib.unquote(genre)
        item = radio.RadioGenre(item, self)
        if note_icon: 
            icon = self.note_icon
        node = self.model.append(node, [icon, item])
        if not note_icon:
            self.last_node = node

        return False

    def __str__(self):
        return PLUGIN_NAME

def initialize():
    """
        Sets up the shoutcast driver
    """
    global PLUGIN

    PLUGIN = ShoutcastDriver(APP.pradio_panel)
    APP.pradio_panel.add_driver(PLUGIN, plugins.name(__file__))

    return True


def destroy():
    global PLUGIN

    if PLUGIN:
        APP.pradio_panel.remove_driver(PLUGIN)

    PLUGIN = None

Qu'en pensez vous et qu'en pense Mr Vinc est-ce au moins possible ?

Oups !! faut se coucher la @ demain wink

Dernière modification par l e . n o x (Le 22/01/2009, à 02:13)


Zik Fan : " Vous seul savez mieux que quiconque comment organiser votre bibliothèque musicale ! "

Linux, y a moins bien.
Mais c'est plus cher. ;O)

Hors ligne

#125 Le 22/01/2009, à 21:36

vinc-mai

Re : [ZiK]Lecteur audio en développement

Bonjour.

1) bug mms://live.france24.com/france24_en.wsx
Je n'arrive pas lire cette url, ni avce totem, ni avec vlc mais il me semble qu'il s'agit d'un flux video et non audio!

2) liste de Radio
Je ne connaissais pas les liste de radio. Si tu l'ajoute comme radio, ZiK devrai lire la première url qui fonctionne. Il faudrait que je modifie le fonctionnement afin de pouvoir passer à la radio suivante.
Au niveau interface 3 choix semble s'offrir:
-ne proposait qu'une seule entrée pour l'ensemble de la liste,
-ajouter autant d'entrées que nécesaire lors de l'ajout de la liste,
-utiliser un arbre à la place d'une simple liste.
Quel choix vous semble le meilleur?

3) plug-ins
À treme, les modules devrait fonctionner comme des plug-ins. J'aurai peut être du utiliser ce terme. Chacun poura développer son propre module.
Par contre, je ne pense pas qu'on puisse importer un plugin écrit en python (à moins que des compilateur python->ruby existe hmm). À la rigueur, un plug-in écrit en C, à condition que le mon interface pour les modules soit compatible. Je ne suis pas informaticien. J'ai un peu de mal à mettre en route cette interface. J'ai déjà prévu des changements mais je ne connais pas les règles qui dicte l'écriture de telle interface (ZiK<->modules). Lorsque j'aurais modifier l'interface, l'écriture d'un module devrait être relativement simple. Seules quelques connaissances en ruby seront nécessaires (ruby-gtk pour la partie graphique). Ruby est très simple à apprendre. ZiK est ma première application (mon hello_world à moi!).

4) plugin (module) liste des shoutcasts

Que fais ce plug-in? Il pourrait être recodé en ruby d'ici la sortie de la 1.0.0 ou après...

5) ZikByGitZenity
-i)Installation

zenity --info --text="Suppression des anciennes versions de Zik"
    gksudo true && apt-get remove zik -y
    cd $DEPOT/zik
    sudo make uninstall

Que se passe-t-il si $DEPOT/zik n'existe-pas? Même question si apt-get ne trouuve pas ZiK. Toujours la même question si il n'y a pas de Makefile dans le dossier $DEPOT/zik.

-ii)Installation

Le script ne test pas l'existence de ce dossier. Je propose de remplacer

if [ -d $DEPOT/zik ]
        then
           cd $DEPOT/zik
        else
        cd $DEPOT && git clone git://rubyforge.org/zik.git
fi

par

if ! [ -e $DEPOT]
then
 mkdir $DEPOT
fi
if [ -d $DEPOT/zik ]
then
  cd $DEPOT/zik && git pull
else
 cd $DEPOT && git clone git://rubyforge.org/zik.git
end

J'ai ajouter la mise à jour de git au cas où $DEPOT/zik existe.
-iii)Désinstallation
La désinstalltion doit-elle supprimer les source et la configuration? (sûrement)

rm -Rf $DEPOT/*

La variable DEPOT est fixé à $HOME/.ZiK (pourquoi pas à près tout). le rm supprime donc les sources et le dépôt local zik (dossier $DEPOT/zik) mais aussi la configuration garder dans $HOME/.ZiK.

-iv)Amélioration possible
Proposer un choix sur les dépendances à désinstaller avec un choix par défaut pour l'utilisateur de base.


ZiK un lecteur audio et son blog.

Hors ligne