<chapter id="dcop">
  <title
>&k3b; &DCOP;-liidese seletused</title>
  <para
>&k3b; pakub sarnaselt paljude muude &kde; rakendustega &DCOP;-liidest, mis võimaldab seda osaliselt juhtida &eg; shelliskriptiga.</para>
  <para
>&DCOP;-funktsioonide kasutamiseks võib tarvitada käsureaprogrammi <command
>dcop</command
> või mugavamat rakendust <application
>Kdcop</application
>. Mõlemad pakuvad ühesuguseid võimalusi, nii et ühe või teise eelistamine sõltub rohkem sinust enda maitsest.</para>
  <para
>Käesolevas peatükis eeldatakse, et kasutad käsureaprogrammi <command
>dcop</command
>. &k3b; &DCOP;-funktsioonide pruukimiseks kontrolli, et &k3b; oleks käivitatud ja siis kirjuta käsureale midagi sellist: <screen
><prompt
>#</prompt
> <command
>dcop</command
> <option
>k3b</option
> <option
>K3bInterface</option
> <replaceable
>[funktsioon]</replaceable
>
</screen>
</para>

<para
>Lisaks üldistele &DCOP;-funktsioonidele, mis on saadavad kõigis &kde; rakendustes, pakub &k3b; järgmisi spetsiifilisi funktsioone.</para>

<sect1>
<title
>Vaikimisi K3bInterface</title>

<para
>K3b vaikimisi DCOP-liides pakub mitmelaadset funktsionaalsust, näiteks copyCD, formatDVD ning uute projektide loomise meetodid.</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
>Ühe createXXXProject meetodi tulemusena saadakse DCOP-viide äsja loodud projektile: <programlisting
>DCOPRef(k3b,K3bProject-0)</programlisting
> Teine võimalus on luua projekt käsurealt: <screen>
<prompt
>#</prompt
> <command
>k3b</command
> <replaceable
>--audiocd</replaceable>
</screen
> ja seejärel luua viide projektile käsuga <screen>
<prompt
>#</prompt
> <command
>dcop</command
> <option
>k3b</option
> <option
>K3bInterface</option
> <replaceable
>currentProject</replaceable>
</screen
> Seda viidet kasutades on võimalik projekti juhtida <link linkend="k3bprojectinterface"
>K3bProjectInterface</link
> abil.</para>

</sect1>

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

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

<para
>K3b pakub välja K3bProjectInterface, nagu eespool näidatud, või veelgi võimsama K3bDataProjectInterface, mis käib küll ainult andmeprojektide kohta (CD ja DVD): <programlisting
>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)
</programlisting>
</para>

<para
>Seda kasutades saab andmeporjekti täita failide ja kataloogidega otse skriptist. Järgnev skript loob näiteks uue andmeprojekti, lisab sellele mitu kataloogi ning failid äsja loodud kataloogidesse: <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>
