# Інтерфейс &DCOP; для &k3b;

&k3b;, як і інші програми &kde; має підтримку інтерфейсу &DCOP;, який дає змогу керувати деякою її функціональністю з іншої програми, напр., скрипту оболонки.

Для використання цих функцій &DCOP; можна вживати або програму командного рядка `dcop`, або зручнішу програму Kdcop. Обидва шляхи надають доступ до однакової функціональності, тому рішення яку з них вживати залежатиме тільки від ваших вподобань і контексту використання.

Цей розділ припускає, що ви користуєтесь програмою командного рядка `dcop`. Щоб отримати доступ до функцій &k3b; через &DCOP;, переконайтесь, що &k3b; запущено і тоді введіть в консолі щось подібне до цього:

    # dcop k3b K3bInterface [функція]

Окрім загальних функцій &DCOP; доступних для всіх програм &kde;, інтерфейс DCOP для &k3b; в основному складається з двох частин, які описані нижче.

## Типовий інтерфейс K3bInterface

Типовий інтерфейс до K3b через DCOP надає функціональність копіювання компакт-дисків (copyCD), форматування DVD (formatDVD) і методів для створення нових проектів.

    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)

Результат з будь-якого методу createXXXProject отримує посилання DCOP до новоствореного проекту:

    DCOPRef(k3b,K3bProject-0)

Також, можна створити проект за допомогою командного рядка:

    # k3b --audiocd

а потім отримати посилання до цього проекту за допомогою

    # dcop k3b K3bInterface поточнийПроект

Через це посилання можна маніпулювати проект, користуючись K3bProjectInterface.

## K3bProjectInterface

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

K3b надає інтерфейс K3bProjectInterface або більш потужний інтерфейс K3bDataProjectInterface, який застосовується тільки для проектів з даними (КД і 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)

За його допомогою можна через скрипт наповнити проект з даними різними файлами і теками. Наступний скрипт, наприклад, створює новий проект з даними, додає до нього декілька тек і додає файли у новостворені теки:

    #!/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/якийсьфайл.txt /foo/bar