# L'interfaccia &DCOP; di &k3b;

&k3b; caratterizza, come pure molte altre applicazioni di &kde;, una interfaccia &DCOP; che permette di controllare parte delle proprie funzionalità per esempio con uno script di shell.

Per usare queste funzioni di &DCOP; si può o utilizzare il programma `dcop` dalla riga di comando, oppure più convenientemente l'applicazione Kdcop. Entrambi hanno le medesime funzionalità, perciò è un fatto di gusto o di contesto decidere quale scegliere.

Questo capitolo suppone che si stia utilizzando il programma `dcop` dalla riga di comando. Per accedere alle funzionalità &DCOP; di &k3b;, assicurasi che &k3b; sia avviato e poi inserire un comando tipo questo in una console:

    # dcop k3b K3bInterface [funzione]

Oltre alle funzioni generiche di &DCOP; disponibili per tutti i programmi di &kde;, l'interfaccia DCOP di &k3b; consiste di due parti descritte sotto.

## L'interfaccia di K3b predefinita

L'interfaccia DCOP di K3b predefinita fornisce funzionalità tipo copia CD, formatta CD, e metodi per creare nuovi progetti.

    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)

Come risultato da uno dei metodi di createXXXProject si ottiene un riferimento DCOP al nuovo progetto creato:

    DCOPRef(k3b,K3bProject-0)

In alternativa si può creare un progetto utilizzando la linea di comando:

    # k3b --audiocd

e poi reperire un riferimento al progetto con

    # dcop k3b K3bInterface currentProject

Utilizzando questo riferimento, è possibile manipolare il progetto attraverso K3bProjectInterface.

## K3bProjectInterface

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

K3b offre la K3bProjectInterface come elencata sopra oppure la più potente K3bDataProjectInterface per i progetti dati (CD e 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)

Usando questo è possibile riempire un progetto con file e cartelle da uno script. Lo script che segue, per esempio, crea un nuovo progetto, aggiunge numerose cartelle al progetto e file alle nuove cartelle.

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