# &DCOP;-grænsefladen i &k3b;

&k3b; tilbyder, som mange andre &kde;-programmer, en &DCOP;-grænseflade som gør det muligt at styre den del af dets funktioner fra f.eks. et skalscript.

For at bruge &DCOP;-funktionerne, kan du enten bruge kommandolinjeprogrammet `dcop`, eller det bekvemmere program Kdcop. Begge sørger for samme funktioner, så det er mest et spørgsmål om smag og brugsområde hvad der vælges.

Dette kapitel antager at du bruger kommandolinjeprogrammet `dcop`. For at få adgang til &k3b;s &DCOP;-funktioner, skal du sørge for at &k3b; er startet og skriv derefter noget i retning af dette i en terminal:

    # dcop k3b K3bInterface [funktion]

Foruden de generelle &DCOP;-funktioner som er tilgængelige i alle &kde;-programmer, består DCOP-grænsefladen i &k3b; hovedsageligt af to dele som beskrives nedenfor.

## Standard K3bInterface

Standard K3b DCOP-grænsefladen sørger for funktioner såsom copyCD, formatDVD og metoder til at oprette nye projekter.

    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 fra en af metoderne createXXXProject, får man en DCOP-reference til det nyoprettede projekt:

    DCOPRef(k3b,K3bProject-0)

Som et alternativ kan du oprette et projekt fra kommandolinjen:

    # k3b --audiocd

og derefter hente en reference til projektet med

    # dcop k3b K3bInterface currentProject

Ved at bruge referencen er det muligt at manipulere projektet med K3bProjectInterface.

## K3bProjectInterface

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

K3b tilbyder K3bProjectInterface som listes ovenfor eller det kraftfuldere K3bDataProjectInterface, som kun gælder dataprojekter (cd og 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)

Ved at bruge det er det muligt at fylde et dataprojekt med filer og mapper fra et script. Følgende script laver for eksempel et nyt dataprojekt, tilføjer flere mapper til projektet, og tilføjer filer i de nyoprettede mapper.

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