Tout d’abord exaile est un lecteur de musique ecrit en python,gtk/glade, il utilise gstreamer pour la lecture des medias.
Dans ce post je vais vous apprendre comment écrire un plugin complet pour exaile avec une interface de configuration.
Pour commencer vous devez créer un répertoire dans lequel va se trouver votre code en python exemple : exaile/plugins/monplugi
Puis remplir le fichier d’infos du plugin PLUGINFO:
Version=”0.1.2″
Authors=['monnom <monmail@mail.com>']
Name=”Alarm Clock”
Description=”Plays music at a specific time.\n\nNote that when the specified time arrives, Exaile will just act like you pressed the play button, so be sure you have the music you want to hear in your playlist”
Ensuite il vous faut écrire un fichier __init__.py
import acpref
def enable(exaile):
“”"
le plugin est activé
“”"
global ALARM
ALARM=Alarmclock(exaile)
ALARM.enable_alarm()
def disable(exaile):
“”"
le plugin est désactivé
“”"
ALARM.disable_alarm()
def get_prefs_pane():
“”"
le panneau de configuration est appelé
“”"
ALARM.enable_alarm()
return acprefs
Pour le panneau de configuration vous devez écrire un fichier prefs_pane.glade avec glade-3 ou gazpacho … un éditeur glade quoi !
et il vous faudra ecrire un fichier acprefs.py qui correspond aux differents widgets utilisés dans l’interface de configuration.
exemple :
import os
from xlgui.prefs import widgets
from xl import xdg
name = ‘Alarmclock’
basedir = os.path.dirname(os.path.realpath(__file__))
glade = os.path.join(basedir, “acprefs_pane.glade”)
class HourPreference(widgets.SpinPrefsItem):
default = “12″
name = ‘plugin/alarmclock/hour’
Ici on voit bien le widget qui permet de régler l’heure dans une spinbox et qui hérite de la classe SpinPrefsItem. Cette classe permet d’écrire dans le fichier de configuration settings.ini toutes les valeurs des widgets (icipour une SpinPref). Donc très pratique car il n’est pas utile d’écrire des fonctions de sauvegarde de paramètre pour votre plugin c’est fait automatiquement. Pour plus d’information allez voir le fichier exaile/xlgui/prefs/widgets.py
Voilà vous savez maintenant écrire un plugin pour exaile si vous avez des questions … postez des commentaires.