# &k3b; &DCOP;-liidese seletused

&k3b; pakub sarnaselt paljude muude &kde; rakendustega &DCOP;-liidest, mis võimaldab seda osaliselt juhtida ⪚ shelliskriptiga.

&DCOP;-funktsioonide kasutamiseks võib tarvitada käsureaprogrammi `dcop` või mugavamat rakendust Kdcop. Mõlemad pakuvad ühesuguseid võimalusi, nii et ühe või teise eelistamine sõltub rohkem sinust enda maitsest.

Käesolevas peatükis eeldatakse, et kasutad käsureaprogrammi `dcop`. &k3b; &DCOP;-funktsioonide pruukimiseks kontrolli, et &k3b; oleks käivitatud ja siis kirjuta käsureale midagi sellist:

    # dcop k3b K3bInterface [funktsioon]

Lisaks üldistele &DCOP;-funktsioonidele, mis on saadavad kõigis &kde; rakendustes, pakub &k3b; järgmisi spetsiifilisi funktsioone.

## Vaikimisi K3bInterface

K3b vaikimisi DCOP-liides pakub mitmelaadset funktsionaalsust, näiteks copyCD, formatDVD ning uute projektide loomise meetodid.

    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)

Ühe createXXXProject meetodi tulemusena saadakse DCOP-viide äsja loodud projektile:

    DCOPRef(k3b,K3bProject-0)

Teine võimalus on luua projekt käsurealt:

    # k3b --audiocd

ja seejärel luua viide projektile käsuga

    # dcop k3b K3bInterface currentProject

Seda viidet kasutades on võimalik projekti juhtida K3bProjectInterface abil.

## K3bProjectInterface

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

K3b pakub välja K3bProjectInterface, nagu eespool näidatud, või veelgi võimsama K3bDataProjectInterface, mis käib küll ainult andmeprojektide kohta (CD ja 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)

Seda kasutades saab andmeporjekti täita failide ja kataloogidega otse skriptist. Järgnev skript loob näiteks uue andmeprojekti, lisab sellele mitu kataloogi ning failid äsja loodud kataloogidesse:

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