<chapter id="dcop">
  <title
>La interfaz &DCOP; de &k3b;</title>
  <para
>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>
  <para
>Para utilizar estas funciones de &DCOP; puede utilizar el programa de línea de órdenes <command
>dcop</command
> o la aplicación <application
>Kdcop</application
>. Ambos proporcionan la misma funcionalidad y elegir uno u otro no es más que una cuestión de gustos y de contexto.</para>
  <para
>Este capítulo asume que está utilizando el programa de línea de órdenes <command
>dcop</command
>. Para acceder a las funciones &DCOP; de &k3b;, debe asegurarse de haber iniciado &k3b; e introducir algo similar a ésto en una consola: <screen
><prompt
>#</prompt
> <command
>dcop</command
> <option
>k3b</option
> <option
>K3bInterface</option
> <replaceable
>[función]</replaceable
>
</screen>
</para>

<para
>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.</para>

<sect1>
<title
>La interfaz predeterminada de K3b</title>

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

<programlisting
>DCOPRef createDataCDProject()
DCOPRef createAudioCDProject()
DCOPRef createMixedCDProject()
DCOPRef createVideoCDProject()
DCOPRef createMovixCDProject()
DCOPRef createDataDVDProject()
DCOPRef createVideoDVDProject()
DCOPRef createMovixDVDProject()
DCOPRef openProject(KURL url)
QValueList&lt;DCOPRef&gt; projects()
DCOPRef currentProject()
void copyCd()
void copyDvd()
void eraseCdrw()
void formatDvd()
void burnCdImage(KURL url)
void burnDvdImage(KURL url)
</programlisting>

<para
>Como resultado de los métodos «createXXXProject» se obtiene una referencia DCOP al nuevo proyecto creado: <programlisting
>DCOPRef(k3b,K3bProject-0)</programlisting
> También puede crear un proyecto utilizando la línea de órdenes: <screen>
<prompt
>#</prompt
> <command
>k3b</command
> <replaceable
>--audiocd</replaceable>
</screen
> y recuperar una referencia a este proyecto con <screen>
<prompt
>#</prompt
> <command
>dcop</command
> <option
>k3b</option
> <option
>K3bInterface</option
> <replaceable
>proyectoActual</replaceable>
</screen
> Utilizando esta referencia es posible modificar el proyecto utilizando <link linkend="k3bprojectinterface"
>K3bProjectInterface</link
>.</para>

</sect1>

<sect1 id="k3bprojectinterface">
<title
>K3bProjectInterface</title>

<programlisting
>void addUrls(KURL::List urls)
void addUrl(KURL url)
void burn()
</programlisting>

<para
>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): <programlisting
>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)
</programlisting>
</para>

<para
>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: <programlisting
>#!/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
</programlisting>

</para>

</sect1>
</chapter>
