<chapter id="dcop"> <title >L'interface &DCOP; de &k3b;</title> <para >&k3b; propose, comme beaucoup d'autres applications &kde;, une interface &DCOP; qui rend possible le contrôle d'une partie de ses fonctionnalités depuis un script shell.</para> <para >Pour utiliser ces fonctions &DCOP;, vous pouvez utiliser le programme en ligne de commande <command >dcop</command > ou l'application <application >Kdcop</application > plus facile à utiliser. Les deux proposent les mêmes fonctionnalités, c'est donc une question de goût et de contexte d'utilisation qui vous fera décider du programme à utiliser.</para> <para >Ce chapitre estime que vous utilisez le programme <command >dcop</command > en ligne de commande. Pour accéder au fonctions &DCOP; de &k3b;, assurez-vous que &k3b; est lancé et saisissez quelque chose comme cela dans la console : <screen ><prompt >#</prompt > <command >dcop</command > <option >k3b</option > <option >K3bInterface</option > <replaceable >[function]</replaceable > </screen> </para> <para >En plus des fonctions génériques de &DCOP; disponibles pour tous les programmes de &kde;, l'interface DCOP de &k3b; est constituée de deux parties décrites ci-dessous.</para> <sect1> <title >L'interface par défaut K3bInterface</title> <para >L'interface DCOP par défaut de k3b fournit des fonctionnalités comme copyCD, formatDVD et des méthodes pour créer de nouveaux projets.</para> <programlisting >DCOPRef createDataCDProject() DCOPRef createAudioCDProject() DCOPRef createMixedCDProject() DCOPRef createVideoCDProject() DCOPRef createMovixCDProject() DCOPRef createDataDVDProject() DCOPRef createVideoDVDProject() DCOPRef createMovixDVDProject() DCOPRef openProject(KURL url) QValueList<DCOPRef> projects() DCOPRef currentProject() void copyCd() void copyDvd() void eraseCdrw() void formatDvd() void burnCdImage(KURL url) void burnDvdImage(KURL url) </programlisting> <para >Comme résultat d'une des méthodes createXXXProject, on obtient une référence DCOP pour l'objet nouvellement créé : <programlisting >DCOPRef(k3b,K3bProject-0)</programlisting > Vous pouvez également créer un projet avec la ligne de commande : <screen> <prompt >#</prompt > <command >k3b</command > <replaceable >--audiocd</replaceable> </screen > et ensuite retrouver une référence à ce projet avec <screen> <prompt >#</prompt > <command >dcop</command > <option >k3b</option > <option >K3bInterface</option > <replaceable >currentProject</replaceable> </screen > En utilisant cette référence, il est possible de manipuler le projet en utilisant l'interface <link linkend="k3bprojectinterface" >K3bProjectInterface</link >.</para> </sect1> <sect1 id="k3bprojectinterface"> <title >K3bProjectInterface</title> <programlisting >void addUrls(KURL::List urls) void addUrl(KURL url) void burn() </programlisting> <para >K3b offre l'interface K3bProjectInterface comme montré ci-dessus ou l'interface plus puissante K3bDataProjectInterface qui ne s'applique qu'aux projets de données (CD et DVD) : <programlisting >void createFolder(TQString name) void createFolder(TQString name,TQString parent) void addUrl(KURL url,TQString parent) void addUrls(KURL::List urls,TQString parent) void removeItem(TQString path) void renameItem(TQString path,TQString newName) void setVolumeID(TQString id) </programlisting> </para> <para >En utilisant ceci, il est possible de remplir un projet de données avec des fichiers et de sdossiers à partir d'un script. Le script d'exemple suivant crée un nouveau projet de données, ajoute plusieurs dossiers au projet, et ajoute des fichiers dans les dossiers nouvellement créés : <programlisting >#!/bin/bash PROJECT=$(dcop k3b K3bInterface createDataCDProject) dcop $PROJECT createFolder test dcop $PROJECT createFolder foo dcop $PROJECT createFolder bar /foo dcop $PROJECT addUrl /home/trueg/somefile.txt /foo/bar </programlisting> </para> </sect1> </chapter>