# &DCOP;-gränssnittet i &k3b;

&k3b; erbjuder, som många andra &kde;-program, ett &DCOP;-gränssnitt som gör det möjligt att styra en del av dess funktioner t.ex. från ett skalskript.

För att använda &DCOP;-funktionerna, kan du antingen använda kommandoradsprogrammet `dcop`, eller det bekvämare programmet Kdcop. Båda tillhandahåller samma funktioner, så det är mest en fråga om smak och användningsområde vilket som väljes.

Det här kapitlet antar att du använder kommandoradsprogrammet `dcop`. För att komma åt &k3b;s &DCOP;-funktioner, försäkra dig om att &k3b; har startats och skriv därefter in någonting som liknar detta i en terminal:

    # dcop k3b K3bInterface [funktion]

Förutom de allmänna &DCOP;-funktionerna som är tillgängliga i alla &kde;-program, består DCOP-gränssnittet i &k3b; i huvudsak av två delar som beskrivs nedan.

## Det förvalda K3bInterface

Det förvalda K3b DCOP-gränssnittet tillhandahåller funktioner som copyCD, formatDVD och metoder för att skapa nya projekt.

    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)

Som resultat från någon av metoderna createXXXProject, får man en DCOP-referens till det nyskapade projektet:

    DCOPRef(k3b,K3bProject-0)

Som ett alternativ kan du skapa ett projekt från kommandoraden:

    # k3b --audiocd

och därefter hämta en referens till projektet med

    # dcop k3b K3bInterface currentProject

Genom att använda referensen är det möjligt att manipulera projektet med K3bProjectInterface.

## K3bProjectInterface

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

K3b erbjuder K3bProjectInterface som listas ovan eller det kraftfullare K3bDataProjectInterface, som bara gäller dataprojekt (cd och 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)

Genom att använda det är det möjligt att fylla ett dataprojekt med filer och kataloger från ett skript. Följande skript skapar till exempel ett nytt dataprojekt, lägger till flera kataloger i projektet, och lägger till filer i de nyskapade katalogerna.

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