# L'interface &DCOP; de &k3b;

&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.

Pour utiliser ces fonctions &DCOP;, vous pouvez utiliser le programme en ligne de commande `dcop` ou l'application Kdcop 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.

Ce chapitre estime que vous utilisez le programme `dcop` 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 :

    # dcop k3b K3bInterface [function]

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.

## L'interface par défaut K3bInterface

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.

    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)

Comme résultat d'une des méthodes createXXXProject, on obtient une référence DCOP pour l'objet nouvellement créé :

    DCOPRef(k3b,K3bProject-0)

Vous pouvez également créer un projet avec la ligne de commande :

    # k3b --audiocd

et ensuite retrouver une référence à ce projet avec

    # dcop k3b K3bInterface currentProject

En utilisant cette référence, il est possible de manipuler le projet en utilisant l'interface K3bProjectInterface.

## K3bProjectInterface

    void addUrls(KURL::List urls)
    void addUrl(KURL url)
    void burn()

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) :

    void createFolder(QString name)
    void createFolder(QString name,QString parent)
    void addUrl(KURL url,QString parent)
    void addUrls(KURL::List urls,QString parent)
    void removeItem(QString path)
    void renameItem(QString path,QString newName)
    void setVolumeID(QString id)

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 :

    #!/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