<chapter id="dcop">
  <title
>Podręcznik interfejsu &DCOP; programu &k3b;</title>
  <para
>&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.</para>
  <para
>Aby użyć funkcji interfejsu &DCOP; możesz wykorzystać program tekstowy <command
>dcop</command
> lub wygodniejszy, w trybie graficznym - <application
>Kdcop</application
>. Oba posiadają tą samą funkcjonalność, więc wybór zależy od Twoich upodobań i rodzaju pracy do wykonania.</para>
  <para
>W tym rozdziale założono, że używasz programu tekstowego <command
>dcop</command
> 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: <screen
><prompt
>#</prompt
> <command
>dcop</command
> <option
>k3b</option
> <option
>K3bInterface</option
> <replaceable
>[funkcja]</replaceable
>
</screen>
</para>

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

<sect1>
<title
>Domyślny interfejs K3bInterface</title>

<para
>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.</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
>W wyniku wykonania jednej z funkcji createXXXProject otrzymuje się referencję DCOP do nowo stworzonego projektu: <programlisting
>DCOPRef(k3b,K3bProject-0)</programlisting
>  Alternatywnie można utworzyć projekt za pomocą linii poleceń: <screen>
<prompt
>#</prompt
> <command
>k3b</command
> <replaceable
>--audiocd</replaceable>
</screen
> a następnie uzyskać referencję do tego projektu za pomocą <screen>
<prompt
>#</prompt
> <command
>dcop</command
> <option
>k3b</option
> <option
>K3bInterface</option
> <replaceable
>currentProject</replaceable>
</screen
> Za pomocą tej referencji można zarządzać projektem poprzez interfejs <link linkend="k3bprojectinterface"
>K3bProjectInterface</link
>.</para>

</sect1>

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

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

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

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

</para>

</sect1>
</chapter>
