# A Interface &DCOP; do &k3b;

Os recursos do &k3b;, como o de diversos outros aplicativos &kde;, fornecem uma interface &DCOP; que torna possível controlar um parte de suas funcionalidades a partir de ⪚ um script shell.

Para usar estas funções &DCOP; você pode tanto usar o programa de linha de comando `dcop` ou o mais conveniente aplicativo Kdcop. Ambos fornecem a mesma funcionalidade de modo que o que importa é a preferência ou contexto de uso ao decidir qual usar.

Este capítule considera que você está usando o programa de linha de comando `dcop`. Para acessar as funções &DCOP; do &k3b;, certifique-se de que o &k3b; foi iniciado e então insira em um console algo como isto:

    # dcop k3b K3bInterface [função]

Além das funções &DCOP; genéricas disponíveis em todos os programas do &kde;, o &k3b; consiste em duas partes principais, como é descrito abaixo.

## A interface padrão do K3b

A interface de DCOP padrão do DCOP oferece funcionalidades do tipo 'copyCD', 'formatDVD', bem como métodos para criar projetos novos.

    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)

Como resultado de um dos métodos 'createXXXProject', obtém-se uma referência de DCOP ao projeto recém criado:

    DCOPRef(k3b,K3bProject-0)

Em alternativa, poderá criar um projeto com a linha de comando:

    # k3b --audiocd

e então obter uma referência para este projeto com

    # dcop k3b K3bInterface currentProject

Se usar esta referência, é possível manipular o projeto com a K3bProjectInterface.

## K3bProjectInterface

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

O K3b oferece a K3bProjectInterface listada acima, ou então a K3bDataProjectInterface, mais poderosa, que só se aplica aos projetos de dados (CD e DVD):

    void createFolder(QString nome)
    void createFolder(QString nome,QString pai)
    void addUrl(KURL url,QString pai)
    void addUrls(KURL::List urls,QString pai)
    void removeItem(QString localização)
    void renomeItem(QString localização,QString novoNome)
    void setVolumeID(QString id)

Usando estes métodos, é possível preencher um projeto de dados com os arquivos e pastas de um programa. O exemplo a seguir cria um novo projeto de dados, adiciona várias pastas ao projeto e adiciona arquivos às pastas acabadas de criar:

    #!/bin/bash
    PROJECT=$(dcop k3b K3bInterface createDataCDProject)
    dcop $PROJECT createFolder teste
    dcop $PROJECT createFolder xpto
    dcop $PROJECT createFolder xpto2 /xpto
    dcop $PROJECT addUrl /home/jose/arquivo.txt /xpto/xpto2