2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
4
<refentry id="RBStaticPlaylistSource">
6
<refentrytitle role="top_of_page" id="RBStaticPlaylistSource.top_of_page">RBStaticPlaylistSource</refentrytitle>
7
<manvolnum>3</manvolnum>
8
<refmiscinfo>RHYTHMBOX Library</refmiscinfo>
12
<refname>RBStaticPlaylistSource</refname>
13
<refpurpose>Manually defined playlist class</refpurpose>
16
<refsynopsisdiv id="RBStaticPlaylistSource.synopsis" role="synopsis">
17
<title role="synopsis.title">Synopsis</title>
20
<link linkend="RBStaticPlaylistSource-struct">RBStaticPlaylistSource</link>;
21
<link linkend="RBStaticPlaylistSourceClass">RBStaticPlaylistSourceClass</link>;
22
<link linkend="RBSource">RBSource</link> * <link linkend="rb-static-playlist-source-new">rb_static_playlist_source_new</link> (<link linkend="RBShell">RBShell</link> *shell,
23
const <link linkend="char">char</link> *name,
24
const <link linkend="char">char</link> *sorting_name,
25
<link linkend="gboolean">gboolean</link> local,
26
<link linkend="RhythmDBEntryType">RhythmDBEntryType</link> entry_type);
27
<link linkend="RBSource">RBSource</link> * <link linkend="rb-static-playlist-source-new-from-xml">rb_static_playlist_source_new_from_xml</link>
28
(<link linkend="RBShell">RBShell</link> *shell,
29
<link linkend="xmlNodePtr">xmlNodePtr</link> node);
30
<link linkend="void">void</link> <link linkend="rb-static-playlist-source-load-from-xml">rb_static_playlist_source_load_from_xml</link>
31
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
32
<link linkend="xmlNodePtr">xmlNodePtr</link> node);
33
<link linkend="void">void</link> <link linkend="rb-static-playlist-source-add-entry">rb_static_playlist_source_add_entry</link> (<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
34
<link linkend="RhythmDBEntry">RhythmDBEntry</link> *entry,
35
<link linkend="gint">gint</link> index);
36
<link linkend="void">void</link> <link linkend="rb-static-playlist-source-remove-entry">rb_static_playlist_source_remove_entry</link>
37
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
38
<link linkend="RhythmDBEntry">RhythmDBEntry</link> *entry);
39
<link linkend="void">void</link> <link linkend="rb-static-playlist-source-add-location">rb_static_playlist_source_add_location</link>
40
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
41
const <link linkend="char">char</link> *location,
42
<link linkend="gint">gint</link> index);
43
<link linkend="void">void</link> <link linkend="rb-static-playlist-source-add-locations">rb_static_playlist_source_add_locations</link>
44
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
45
<link linkend="GList">GList</link> *locations);
46
<link linkend="void">void</link> <link linkend="rb-static-playlist-source-remove-location">rb_static_playlist_source_remove_location</link>
47
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
48
const <link linkend="char">char</link> *location);
49
<link linkend="void">void</link> <link linkend="rb-static-playlist-source-move-entry">rb_static_playlist_source_move_entry</link>
50
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
51
<link linkend="RhythmDBEntry">RhythmDBEntry</link> *entry,
52
<link linkend="gint">gint</link> index);
56
<refsect1 id="RBStaticPlaylistSource.object-hierarchy" role="object_hierarchy">
57
<title role="object_hierarchy.title">Object Hierarchy</title>
59
<link linkend="GObject">GObject</link>
60
+----<link linkend="GInitiallyUnowned">GInitiallyUnowned</link>
61
+----<link linkend="GtkObject">GtkObject</link>
62
+----<link linkend="GtkWidget">GtkWidget</link>
63
+----<link linkend="GtkContainer">GtkContainer</link>
64
+----<link linkend="GtkBox">GtkBox</link>
65
+----<link linkend="GtkHBox">GtkHBox</link>
66
+----<link linkend="RBSource">RBSource</link>
67
+----<link linkend="RBPlaylistSource">RBPlaylistSource</link>
68
+----RBStaticPlaylistSource
69
+----<link linkend="RBPlayQueueSource">RBPlayQueueSource</link>
75
<refsect1 id="RBStaticPlaylistSource.implemented-interfaces" role="impl_interfaces">
76
<title role="impl_interfaces.title">Implemented Interfaces</title>
78
RBStaticPlaylistSource implements
79
<link linkend="AtkImplementorIface">AtkImplementorIface</link>, <link linkend="GtkBuildable">GtkBuildable</link> and <link linkend="GtkOrientable">GtkOrientable</link>.</para>
86
<refsect1 id="RBStaticPlaylistSource.description" role="desc">
87
<title role="desc.title">Description</title>
89
Static playlists are not defined by a query, but instead by manually selected
93
This class is used for static playlists built from the user's library, and is
94
also a base class for the play queue and for playlists on devices and network
98
It has some ability to track locations that are not yet present in the database
99
and to add them to the playlist once they are added.</para>
104
<refsect1 id="RBStaticPlaylistSource.details" role="details">
105
<title role="details.title">Details</title>
106
<refsect2 id="RBStaticPlaylistSource-struct" role="struct">
107
<title>RBStaticPlaylistSource</title>
108
<indexterm zone="RBStaticPlaylistSource-struct"><primary sortas="RBStaticPlaylistSource">RBStaticPlaylistSource</primary></indexterm><programlisting>typedef struct _RBStaticPlaylistSource RBStaticPlaylistSource;</programlisting>
111
<refsect2 id="RBStaticPlaylistSourceClass" role="struct">
112
<title>RBStaticPlaylistSourceClass</title>
113
<indexterm zone="RBStaticPlaylistSourceClass"><primary sortas="RBStaticPlaylistSourceClass">RBStaticPlaylistSourceClass</primary></indexterm><programlisting>typedef struct {
114
RBPlaylistSourceClass parent;
115
} RBStaticPlaylistSourceClass;
119
<refsect2 id="rb-static-playlist-source-new" role="function">
120
<title>rb_static_playlist_source_new ()</title>
121
<indexterm zone="rb-static-playlist-source-new"><primary sortas="rb_static_playlist_source_new">rb_static_playlist_source_new</primary></indexterm><programlisting><link linkend="RBSource">RBSource</link> * rb_static_playlist_source_new (<link linkend="RBShell">RBShell</link> *shell,
122
const <link linkend="char">char</link> *name,
123
const <link linkend="char">char</link> *sorting_name,
124
<link linkend="gboolean">gboolean</link> local,
125
<link linkend="RhythmDBEntryType">RhythmDBEntryType</link> entry_type);</programlisting>
127
Creates a new static playlist source.</para>
129
</para><variablelist role="params">
130
<varlistentry><term><parameter>shell</parameter> :</term>
131
<listitem><simpara> the <link linkend="RBShell"><type>RBShell</type></link>
132
</simpara></listitem></varlistentry>
133
<varlistentry><term><parameter>name</parameter> :</term>
134
<listitem><simpara> the playlist name
135
</simpara></listitem></varlistentry>
136
<varlistentry><term><parameter>sorting_name</parameter> :</term>
137
<listitem><simpara> the sorting name for the playlist (GConf key friendly)
138
</simpara></listitem></varlistentry>
139
<varlistentry><term><parameter>local</parameter> :</term>
140
<listitem><simpara> if <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, the playlist is local to the library
141
</simpara></listitem></varlistentry>
142
<varlistentry><term><parameter>entry_type</parameter> :</term>
143
<listitem><simpara> type of database entries that can be added to the playlist.
144
</simpara></listitem></varlistentry>
145
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> new playlist.
146
</simpara></listitem></varlistentry>
147
</variablelist></refsect2>
148
<refsect2 id="rb-static-playlist-source-new-from-xml" role="function">
149
<title>rb_static_playlist_source_new_from_xml ()</title>
150
<indexterm zone="rb-static-playlist-source-new-from-xml"><primary sortas="rb_static_playlist_source_new_from_xml">rb_static_playlist_source_new_from_xml</primary></indexterm><programlisting><link linkend="RBSource">RBSource</link> * rb_static_playlist_source_new_from_xml
151
(<link linkend="RBShell">RBShell</link> *shell,
152
<link linkend="xmlNodePtr">xmlNodePtr</link> node);</programlisting>
154
Constructs a new playlist from the given XML document node.</para>
156
</para><variablelist role="params">
157
<varlistentry><term><parameter>shell</parameter> :</term>
158
<listitem><simpara> the <link linkend="RBShell"><type>RBShell</type></link>
159
</simpara></listitem></varlistentry>
160
<varlistentry><term><parameter>node</parameter> :</term>
161
<listitem><simpara> XML node containing playlist entries
162
</simpara></listitem></varlistentry>
163
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> playlist read from XML
164
</simpara></listitem></varlistentry>
165
</variablelist></refsect2>
166
<refsect2 id="rb-static-playlist-source-load-from-xml" role="function">
167
<title>rb_static_playlist_source_load_from_xml ()</title>
168
<indexterm zone="rb-static-playlist-source-load-from-xml"><primary sortas="rb_static_playlist_source_load_from_xml">rb_static_playlist_source_load_from_xml</primary></indexterm><programlisting><link linkend="void">void</link> rb_static_playlist_source_load_from_xml
169
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
170
<link linkend="xmlNodePtr">xmlNodePtr</link> node);</programlisting>
172
Loads the playlist contents from the specified XML document node.</para>
174
</para><variablelist role="params">
175
<varlistentry><term><parameter>source</parameter> :</term>
176
<listitem><simpara> an <link linkend="RBStaticPlaylistSource"><type>RBStaticPlaylistSource</type></link>
177
</simpara></listitem></varlistentry>
178
<varlistentry><term><parameter>node</parameter> :</term>
179
<listitem><simpara> XML node to load from
180
</simpara></listitem></varlistentry>
181
</variablelist></refsect2>
182
<refsect2 id="rb-static-playlist-source-add-entry" role="function">
183
<title>rb_static_playlist_source_add_entry ()</title>
184
<indexterm zone="rb-static-playlist-source-add-entry"><primary sortas="rb_static_playlist_source_add_entry">rb_static_playlist_source_add_entry</primary></indexterm><programlisting><link linkend="void">void</link> rb_static_playlist_source_add_entry (<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
185
<link linkend="RhythmDBEntry">RhythmDBEntry</link> *entry,
186
<link linkend="gint">gint</link> index);</programlisting>
188
Adds the specified entry to the playlist.</para>
190
</para><variablelist role="params">
191
<varlistentry><term><parameter>source</parameter> :</term>
192
<listitem><simpara> an <link linkend="RBStaticPlaylistSource"><type>RBStaticPlaylistSource</type></link>
193
</simpara></listitem></varlistentry>
194
<varlistentry><term><parameter>entry</parameter> :</term>
195
<listitem><simpara> entry to add to the playlist
196
</simpara></listitem></varlistentry>
197
<varlistentry><term><parameter>index</parameter> :</term>
198
<listitem><simpara> position at which to add it (-1 to add at the end)
199
</simpara></listitem></varlistentry>
200
</variablelist></refsect2>
201
<refsect2 id="rb-static-playlist-source-remove-entry" role="function">
202
<title>rb_static_playlist_source_remove_entry ()</title>
203
<indexterm zone="rb-static-playlist-source-remove-entry"><primary sortas="rb_static_playlist_source_remove_entry">rb_static_playlist_source_remove_entry</primary></indexterm><programlisting><link linkend="void">void</link> rb_static_playlist_source_remove_entry
204
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
205
<link linkend="RhythmDBEntry">RhythmDBEntry</link> *entry);</programlisting>
207
Removes the specified entry from the playlist.</para>
209
</para><variablelist role="params">
210
<varlistentry><term><parameter>source</parameter> :</term>
211
<listitem><simpara> an <link linkend="RBStaticPlaylistSource"><type>RBStaticPlaylistSource</type></link>
212
</simpara></listitem></varlistentry>
213
<varlistentry><term><parameter>entry</parameter> :</term>
214
<listitem><simpara> the entry to remove
215
</simpara></listitem></varlistentry>
216
</variablelist></refsect2>
217
<refsect2 id="rb-static-playlist-source-add-location" role="function">
218
<title>rb_static_playlist_source_add_location ()</title>
219
<indexterm zone="rb-static-playlist-source-add-location"><primary sortas="rb_static_playlist_source_add_location">rb_static_playlist_source_add_location</primary></indexterm><programlisting><link linkend="void">void</link> rb_static_playlist_source_add_location
220
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
221
const <link linkend="char">char</link> *location,
222
<link linkend="gint">gint</link> index);</programlisting>
224
If the location matches an entry in the database, the entry is added
225
to the playlist. Otherwise, if it identifies a directory, the contents
226
of that directory are added.</para>
228
</para><variablelist role="params">
229
<varlistentry><term><parameter>source</parameter> :</term>
230
<listitem><simpara> an <link linkend="RBStaticPlaylistSource"><type>RBStaticPlaylistSource</type></link>
231
</simpara></listitem></varlistentry>
232
<varlistentry><term><parameter>location</parameter> :</term>
233
<listitem><simpara> location (URI) to add to the playlist
234
</simpara></listitem></varlistentry>
235
<varlistentry><term><parameter>index</parameter> :</term>
236
<listitem><simpara> position at which to add the location (-1 to add at the end)
237
</simpara></listitem></varlistentry>
238
</variablelist></refsect2>
239
<refsect2 id="rb-static-playlist-source-add-locations" role="function">
240
<title>rb_static_playlist_source_add_locations ()</title>
241
<indexterm zone="rb-static-playlist-source-add-locations"><primary sortas="rb_static_playlist_source_add_locations">rb_static_playlist_source_add_locations</primary></indexterm><programlisting><link linkend="void">void</link> rb_static_playlist_source_add_locations
242
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
243
<link linkend="GList">GList</link> *locations);</programlisting>
245
Adds the locations specified in <parameter>locations</parameter> to the playlist.
246
See <parameter>rb_static_playlist_source_add_location</parameter> for details.</para>
248
</para><variablelist role="params">
249
<varlistentry><term><parameter>source</parameter> :</term>
250
<listitem><simpara> an <link linkend="RBStaticPlaylistSource"><type>RBStaticPlaylistSource</type></link>
251
</simpara></listitem></varlistentry>
252
<varlistentry><term><parameter>locations</parameter> :</term>
253
<listitem><simpara> a <link linkend="GList"><type>GList</type></link> of strings to add
254
</simpara></listitem></varlistentry>
255
</variablelist></refsect2>
256
<refsect2 id="rb-static-playlist-source-remove-location" role="function">
257
<title>rb_static_playlist_source_remove_location ()</title>
258
<indexterm zone="rb-static-playlist-source-remove-location"><primary sortas="rb_static_playlist_source_remove_location">rb_static_playlist_source_remove_location</primary></indexterm><programlisting><link linkend="void">void</link> rb_static_playlist_source_remove_location
259
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
260
const <link linkend="char">char</link> *location);</programlisting>
262
Removes the specified location from the playlist. This affects both
263
the location map and the query model, whether an entry exists for the
264
location or not.</para>
266
</para><variablelist role="params">
267
<varlistentry><term><parameter>source</parameter> :</term>
268
<listitem><simpara> an <link linkend="RBStaticPlaylistSource"><type>RBStaticPlaylistSource</type></link>
269
</simpara></listitem></varlistentry>
270
<varlistentry><term><parameter>location</parameter> :</term>
271
<listitem><simpara> location to remove
272
</simpara></listitem></varlistentry>
273
</variablelist></refsect2>
274
<refsect2 id="rb-static-playlist-source-move-entry" role="function">
275
<title>rb_static_playlist_source_move_entry ()</title>
276
<indexterm zone="rb-static-playlist-source-move-entry"><primary sortas="rb_static_playlist_source_move_entry">rb_static_playlist_source_move_entry</primary></indexterm><programlisting><link linkend="void">void</link> rb_static_playlist_source_move_entry
277
(<link linkend="RBStaticPlaylistSource">RBStaticPlaylistSource</link> *source,
278
<link linkend="RhythmDBEntry">RhythmDBEntry</link> *entry,
279
<link linkend="gint">gint</link> index);</programlisting>
281
Moves an entry within the playlist.</para>
283
</para><variablelist role="params">
284
<varlistentry><term><parameter>source</parameter> :</term>
285
<listitem><simpara> an <link linkend="RBStaticPlaylistSource"><type>RBStaticPlaylistSource</type></link>
286
</simpara></listitem></varlistentry>
287
<varlistentry><term><parameter>entry</parameter> :</term>
288
<listitem><simpara> the entry to move
289
</simpara></listitem></varlistentry>
290
<varlistentry><term><parameter>index</parameter> :</term>
291
<listitem><simpara> new location for the entry
292
</simpara></listitem></varlistentry>
293
</variablelist></refsect2>