# Podręcznik interfejsu &DCOP; programu &k3b;

&k3b; oferuje, tak jak wiele innych programów dla &kde;, interfejs &DCOP;, dzięki któremu możliwe jest kontrolowanie części jego funkcji np. przez skrypty dla konsoli.

Aby użyć funkcji interfejsu &DCOP; możesz wykorzystać program tekstowy `dcop` lub wygodniejszy, w trybie graficznym - Kdcop. Oba posiadają tą samą funkcjonalność, więc wybór zależy od Twoich upodobań i rodzaju pracy do wykonania.

W tym rozdziale założono, że używasz programu tekstowego `dcop` Aby dostać się do funkcji interfejsu &DCOP; dla &k3b;, upewnij się, że &k3b; jest uruchomiony, a następnie wpisz w konsoli mniej więcej coś takiego:

    # dcop k3b K3bInterface [funkcja]

Poza standardowymi funkcjami interfejsu &DCOP;, obecnymi w każdym programie &kde;, interfejs DCOP składa się z dwóch części, opisanych poniżej.

## Domyślny interfejs K3bInterface

Domyślny interfejs DCOP K3b udostępnia funkcje takie jak kopiowanie płyt CD czy formatowanie płyt DVD, oraz funkcje do tworzenia nowych projektów.

    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)

W wyniku wykonania jednej z funkcji createXXXProject otrzymuje się referencję DCOP do nowo stworzonego projektu:

    DCOPRef(k3b,K3bProject-0)

Alternatywnie można utworzyć projekt za pomocą linii poleceń:

    # k3b --audiocd

a następnie uzyskać referencję do tego projektu za pomocą

    # dcop k3b K3bInterface currentProject

Za pomocą tej referencji można zarządzać projektem poprzez interfejs K3bProjectInterface.

## K3bProjectInterface

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

K3b oferuje interfejs K3bProjectInterface, jak opisano powyżej, oraz mający więcej możliwości interfejs K3bDataProjectInterface, który odnosi się tylko do projektów z danymi (CD i DVD):

    void createFolder(QString nazwa)
    void createFolder(QString nazwa,QString katalogNadrzędny)
    void addUrl(KURL url,QString katalogNadrzędny)
    void addUrls(KURL::List urle,QString katalogNadrzędny)
    void removeItem(QString ścieżka)
    void renameItem(QString ścieżka,QString nowaNazwa)
    void setVolumeID(QString identyfikator)

Za jego pomocą można wypełnić projekt z danymi plikami i katalogami ze skryptu. Następujący skrypt tworzy, przykładowo, nowy projekt z danymi, dodaje do niego kilka katalogów, a następnie dodaje pliki do nowo utworzonych katalogów:

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