Pour les développeurs

Le projet DaisyDuck se présente en deux projets distincts. L'interface graphique (DaisyDuck) est séparée de l'analyseur des fichiers Daisy (libduck). DaisyDuck est écrit en C++ tandis que libduck est écrit en C.

DaisyDuck

DaisyDuck est basé sur les bibliothèques Qt. A l'exception de la lecture audio qui est assurée par libVLC, et la gestion des fichiers Daisy 2.02, qui est réalisée par libduck. Ce logiciel est sous licence GPL3+.

libduck

L'analyse des fichiers Daisy 2.02, NCC et SMIL est réalisée entièrement par libduck. Cette bibliothèque est sous licence LGPL2.1+. Bien que tous les fichiers Daisy 2.02 devraient être lisibles, tous les aspects des spécifications ne sont pas supportés. Cette bibliothèque a été écrite principalement pour l'application graphique DaisyDuck. Ainsi les particularités comme le support des fichiers XHTML (balise <text> dans les fichiers SMIL) sont tout simplement ignorées.
Il est de même pour une partie des méta-données misent à dispositions par les différents fichiers Daisy 2.02. Seuls les champs utilisés par DaisyDuck (en principe) sont accessibles via l'API publique de la bibliothèque. Notez bien qu'il est aisé d'en rajouter, si nécessaire. L'analyse syntaxique est réalisée à l'aide de libxml2.

Le travail sur libduck est inspiré de la bibliothèque libdaisy du projet "The DaisyPlayer Project".

Les sources / Git

Les sources sont disponibles en ligne à l'aide de Git, un système de gestion de versions décentralisées, dont le but est similaire aux outils Hg, CVS, SCCS, SVN et Arch. Il est utilisé afin de suivre les changements réalisés dans les sources et pour aider les développeurs à combiner et manipuler des changements réalisés par plusieurs personnes à des instants différents.

Il y a actuellement deux moyens d'accéder à l'arborescence Git. Via la ligne de commande ou (pour voir un changement sur un fichier en particulier, par exemple) via l'interface web avec votre navigateur Internet :

daisyduck et libduck

Afin d'accéder à Git via la ligne de commande, procédez ainsi (assurez-vous d'avoir installé le paquet git).

Compilation

La compilation de libduck et de DaisyDuck se fait de façon traditionnelle via la commande `make` (aussi bien la compilation pour GNU/Linux que pour Windows). Bien que DaisyDuck soit basé sur Qt4, les Makefiles ne dépendent pas de `qmake` et celui-ci ne doit donc pas être utilisé.

 ./configure
 make
 make install 

Pour effectuer une compilation croisée, rien de plus simple (exemple pour la cible Windows):

 ./configure --cross-compile --cross-prefix=i586-mingw32msvc- --prefix=/usr/i586-mingw32msvc
 make
 make install 

Le script configure s'appuie fortement sur pkg-config. Dans le cas particulier de Qt4 avec DaisyDuck, veillez à ce que les fichiers .pc pour QtCore, QtGui, QtXml et QtNetwork soient disponibles. Dans le cas contraire, vous devrez passer tous les arguments nécessaires CXXFLAGS et LDFLAGS ou alors générer manuellement les fichiers pkg-config.
Selon la configuration de votre système, il peut être nécessaire de procéder ainsi (et spécialement dans le cas d'un compilation croisée pour Windows) :

 export PKG_CONFIG_PATH=/usr/i586-mingw32msvc/lib/pkgconfig
 export PKG_CONFIG_LIBDIR=/usr/i586-mingw32msvc/lib
 ./configure --cross-compile --cross-prefix=i586-mingw32msvc- --prefix=/usr/i586-mingw32msvc
 make
 make install 

Si le script configure échoue, consultez le fichier config.log généré à la racine des sources.

Feed-back

L'auteur de DaisyDuck et de libduck, Mathieu Schroeter, peut être contacté par e-mail.