# La interfaz &DCOP; de &k3b;

Entre las características de &k3b;, al igual que en muchas otras aplicaciones de &kde; se encuentra la interfaz &DCOP; que permite controlar una parte de su funcionalidad como por ejemplo el intérprete de scritps.

Para utilizar estas funciones de &DCOP; puede utilizar el programa de línea de órdenes `dcop` o la aplicación Kdcop. Ambos proporcionan la misma funcionalidad y elegir uno u otro no es más que una cuestión de gustos y de contexto.

Este capítulo asume que está utilizando el programa de línea de órdenes `dcop`. Para acceder a las funciones &DCOP; de &k3b;, debe asegurarse de haber iniciado &k3b; e introducir algo similar a ésto en una consola:

    # dcop k3b K3bInterface [función]

Además de las funciones genéricas de &DCOP; disponibles para todas las aplicaciones de &kde;, la interfaz DCOP de &k3b; está formada por dos partes que se describen a continuación.

## La interfaz predeterminada de K3b

La interfaz predeterminada DCOP de K3b proporciona funcionalidades como la copia de CDs, formateo de DVDs y métodos para crear proyectos nuevos.

    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 los métodos «createXXXProject» se obtiene una referencia DCOP al nuevo proyecto creado:

    DCOPRef(k3b,K3bProject-0)

También puede crear un proyecto utilizando la línea de órdenes:

    # k3b --audiocd

y recuperar una referencia a este proyecto con

    # dcop k3b K3bInterface proyectoActual

Utilizando esta referencia es posible modificar el proyecto utilizando K3bProjectInterface.

## K3bProjectInterface

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

K3b ofrece la K3bProjectInterface tal y como se acaba de mostrar o la más potente K3bDataProjectInterface que solo se aplica a los proyectos de datos (CD y DVD):

    void createFolder(QString nombre)
    void createFolder(QString nombre,QString padre)
    void addUrl(KURL url,QString padre)
    void addUrls(KURL::List urls,QString padre)
    void removeItem(QString ruta)
    void renameItem(QString ruta,QString nuevoNombre)
    void setVolumeID(QString id)

Utilizando ésto es posible rellenar un proyecto de datos con archivos y carpetas desde un script. El siguiente script, por ejemplo, crea un nuevo proyecto de datos, añade varias carpetas al proyecto, y añade archivos a las carpetas recién creadas:

    #!/bin/bash
    PROJECT=$(dcop k3b K3bInterface createDataCDProject)
    dcop $PROJECT createFolder prueba
    dcop $PROJECT createFolder foo
    dcop $PROJECT createFolder bar /foo
    dcop $PROJECT addUrl /home/usuario/archivo.txt /foo/bar