# &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(TQString name)
    void createFolder(TQString name,TQString parent)
    void addUrl(KURL url,TQString parent)
    void addUrls(KURL::List urls,TQString parent)
    void removeItem(TQString path)
    void renameItem(TQString path,TQString newName)
    void setVolumeID(TQString 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