1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
<chapter id="dcop">
<title
>Справочник по &DCOP;-командам</title>
<para
>&k3b; предоставляет, как и большинство других программ &kde;, интерфейс &DCOP;, позволяющий управлять частью функций программы извне (например, из сценария оболочки).</para>
<para
>Для использования функций &DCOP;, вы можее использовать консольную программу <command
>dcop</command
> или более удобное приложение <application
>Kdcop</application
>.</para>
<para
>Далее подразумевается, что вы используете <command
>dcop</command
>. Для начала, запустите &k3b; и введите что-то типа: <screen
><prompt
>#</prompt
> <command
>dcop</command
> <option
>k3b</option
> <option
>K3bInterface</option
> <replaceable
>[function]</replaceable
>
</screen>
</para>
<para
>Кроме стандартных &DCOP;-функций, &k3b; предоставляет следующие функции, которые разделены на две группы.</para>
<sect1>
<title
>Стандартный интерфейс K3b</title>
<para
>Стандартный интерфейс K3b предоставляет такую функциональность как copyCD, formatDVD, создание новых проектов.</para>
<programlisting
>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)
</programlisting>
<para
>Методы createXXXProject возвращают ссылку на созданный проект: <programlisting
>DCOPRef(k3b,K3bProject-0)</programlisting
> Также, проект можно создать из командной строки: <screen>
<prompt
>#</prompt
> <command
>k3b</command
> <replaceable
>--audiocd</replaceable>
</screen
> и получить ссылку на него так: <screen>
<prompt
>#</prompt
> <command
>dcop</command
> <option
>k3b</option
> <option
>K3bInterface</option
> <replaceable
>currentProject</replaceable>
</screen
> Далее, по полученной ссылке можно манипулировать проектом с помощью <link linkend="k3bprojectinterface"
>K3bProjectInterface</link
>.</para>
</sect1>
<sect1 id="k3bprojectinterface">
<title
>Интерфейс проекта K3b</title>
<programlisting
>void addUrls(KURL::List urls)
void addUrl(KURL url)
void burn()
</programlisting>
<para
>K3b предоставляет интерфейс K3bProjectInterface для всех типов проектов и K3bDataProjectInterface для проекта CD/DVD с данными: <programlisting
>void createFolder(TQString name)
void createFolder(TQString name,TQString parent)
void addUrl(KURL url,TQString parent)
void addUrls(KURL::List urls,TQString parent)
void removeItem(TQString path)
void renameItem(TQString path,TQString newName)
void setVolumeID(TQString id)
</programlisting>
</para>
<para
>Используя это можно автоматизировать добавление данных в проект. Следующий сценарий создаёт новый проект с данными, добавляет в него несколько папок, и добавляет файлы в последние: <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>
|