<chapter id="dcop"> <title >L'interfaccia &DCOP; di &k3b;</title> <para >&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.</para> <para >Per usare queste funzioni di &DCOP; si può o utilizzare il programma <command >dcop</command > dalla riga di comando, oppure più convenientemente l'applicazione <application >Kdcop</application >. Entrambi hanno le medesime funzionalità, perciò è un fatto di gusto o di contesto decidere quale scegliere.</para> <para >Questo capitolo suppone che si stia utilizzando il programma <command >dcop</command > 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: <screen ><prompt >#</prompt > <command >dcop</command > <option >k3b</option > <option >K3bInterface</option > <replaceable >[funzione]</replaceable > </screen> </para> <para >Oltre alle funzioni generiche di &DCOP; disponibili per tutti i programmi di &kde;, l'interfaccia DCOP di &k3b; consiste di due parti descritte sotto.</para> <sect1> <title >L'interfaccia di K3b predefinita</title> <para >L'interfaccia DCOP di K3b predefinita fornisce funzionalità tipo copia CD, formatta CD, e metodi per creare nuovi progetti.</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 >Come risultato da uno dei metodi di createXXXProject si ottiene un riferimento DCOP al nuovo progetto creato: <programlisting >DCOPRef(k3b,K3bProject-0)</programlisting > In alternativa si può creare un progetto utilizzando la linea di comando: <screen> <prompt >#</prompt > <command >k3b</command > <replaceable >--audiocd</replaceable> </screen > e poi reperire un riferimento al progetto con <screen> <prompt >#</prompt > <command >dcop</command > <option >k3b</option > <option >K3bInterface</option > <replaceable >currentProject</replaceable> </screen > Utilizzando questo riferimento, è possibile manipolare il progetto attraverso <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 la K3bProjectInterface come elencata sopra oppure la più potente K3bDataProjectInterface per i progetti dati (CD e DVD): <programlisting >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) </programlisting> </para> <para >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. <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>